概述

监控与定时任务涵盖 Agent 生态中的自动化健康检查机制。包括 Watchdog 心跳监控(通过 cron 定期检查子任务状态和服务器可用性)以及基础设施健康检查定时任务 infra-alert-check(每 6 小时巡检站点、服务器、模型端点等)。

Watchdog 心跳监控是 fries-mac Agent 的核心健康检查机制,每 15 分钟定期检查子任务状态并将结果投递到用户频道。infra-alert-check 是 research agent 管理的基础设施巡检任务,在 prism-foundry 403 认证故障后将模型端点检查合并进来,实现了全面的基础设施监控。

关键事件

  • 2026-03-03: 初始配置心跳检查规则,确认为永久性(非一次性)
  • 2026-03-05: 将心跳频率调整为每 15 分钟一次
  • 2026-03-10: 发现 watchdog 应自动检查所有子任务而非单个任务
  • 2026-03-10: 排查密码不正确的问题,建议通过 watchdog 自动重置
  • 2026-03-15: 讨论内容提取逻辑:根据什么标准判断信息是否需要存储
  • 2026-03-16: 修复任务结果投递问题——需要配置投递目标频道
  • 2026-04-04: prism-foundry 403 错误触发建立模型端点健康检查需求
  • 2026-04-04: 创建 nightly-health-check,随后优化合并进 infra-alert-check(每 6h)

技术要点

Watchdog 心跳监控

  • 频率: 每 15 分钟执行一次
  • 检查范围: 所有子任务(非单个特定任务)
  • 投递机制: 检查结果需要投递到用户的 Mattermost 频道
  • 内容提取: 根据预定义规则判断哪些信息值得长期记录

infra-alert-check 基础设施巡检

  • 频率: 每 6 小时
  • 执行者: research agent
  • 原有检查项: 站点 HTTP、服务器 SSH、磁盘监控、Cron 错误检测
  • 新增检查项: prism-foundry / github-copilot / my-azure 模型端点、Gateway 进程、Docker 容器状态
  • 异常通知: 自动发 DM 给管理员

Healthbot 康复提醒定时任务

health agent 通过 cron + edge-tts 实现术后康复的语音+文字定时提醒:

时间内容方式
8:00早上吃药语音+文字
9:00早上换药语音+文字
13:00中午吃药语音+文字
15:00散步提醒语音+文字
19:00晚上吃药语音+文字
20:00腹部按摩操语音+文字
21:30睡前换药语音+文字
  • 脚本: workspace-health/scripts/remind.sh
  • 发送: openclaw message send --account health --channel mattermost
  • TTS: edge-tts(微软晓晓语音)
  • Heartbeat: 每2小时(8:00-23:00)

Uptime Kuma 报警通知

2026-04-02 配置 Uptime Kuma 报警通知到 @dora DM,通过 healthbot 中转:

  • 🔴 DOWN 通知:URL + 错误信息 + 时间
  • 🟢 UP 恢复通知:URL + Ping 延迟 + 时间

现有定时任务清单

任务时间Agent说明
infra-alert-check每6hresearch基础设施巡检(已合并模型检查)
research-daily-report21:00research每日研究报告
research-work-cycle9:00/17:00research工作周期
misse-daily-lesson18:00miss-e每日英语课
health-remind每日7次health术后康复提醒(吃药/换药/运动)
health-heartbeat每2hhealth健康 agent 主动检查

经验教训

  • 心跳任务必须配置投递目标,否则结果丢失
  • watchdog 应全面覆盖所有子任务,不能遗漏
  • 密码失效等常见问题应加入自动修复流程
  • 15 分钟间隔是合理的平衡点(太频繁浪费资源、太稀疏发现问题晚)
  • 职责相近的定时任务应合并,避免重叠(如 nightly-health-check → infra-alert-check)
  • 合并后从”每天一次”升级为”每 6 小时一次”,更及时发现问题

相关主题

BiBot 定期健康检查

以下信息来源于 bibot 的 Mattermost DM 聊天记录(2026-03-17 ~ 2026-03-24)。

BiBot 通过 Cron 任务定期执行两类自动化检查:

站点健康检查

  • 频率:约每 6 小时
  • 目标https://bi.dora.restry.cn/https://bi.dev.dora.restry.cn/
  • 检查项:HTTP 状态码、后端 uvicorn 进程、前端静态服务、Caddy 配置
  • 归档状态:项目已归档后 502 为预期状态,BiBot 能正确识别并标注”无需修复”

sync.mjs 工作区维护

  • 检查项:CONTEXT.md 新鲜度、tasks.json 完成状态、会话活动数、记忆归档需求
  • 自修复:发现 dev-bi PM2 进程消失后自动重启

Nexora / Uptime Kuma 监控

以下信息来源于 nexora 的 Mattermost DM 聊天记录(2026-03-31)。

Nexora 在 claw-bot 服务器通过 Uptime Kuma 配置了 7 项持续监控:

监控项类型间隔备注
GitLabHTTPS60s
Outline WikiHTTPS60s
PortainerHTTPS60s
Uptime KumaHTTPS60s自监控
MattermostHTTPS60s延迟较高 (~1300ms)
PostgreSQLTCP60s改用容器 DNS 名 postgres
FRP ServerTCP 18888120sICMP 被拦截,改 TCP

告警通知:通过 Mattermost Incoming Webhook 推送到团队频道,任何服务 DOWN 自动通知。

Uptime Kuma 支持的监控类型包括:HTTP(S)、TCP 端口、Ping (ICMP)、DNS、Docker 容器、数据库连接、gRPC、MQTT 等。告警渠道支持 Telegram、Webhook、邮件、Discord、Slack 等几十种。

Uptime Kuma 监控扩容(2026-04-10)

MySQL 合并 后,对监控项进行了一次全面更新:

  • 停用 2 条过期监控(Gitea→已迁移至 GitLab、旧 Mattermost→已停用)
  • 新增 12 条监控(GitLab、4 套 ERP/商城、门户、Deployer、Research Fleet Portal、4 个 MySQL 端口)
  • 修复 GitLab 监控故障(Docker 内部 DNS 劫持 → 改走宿主机端口映射,设 maxredirects=0 避免 302→HTTPS 握手失败)
  • 当前活跃监控:17 条

Prism PM 定时任务

以下信息来源于 bnef 的 Mattermost DM 聊天记录(2026-03-15)。

BNEF Bot(prism-pm)为 Hackathon 配置了 3 个 Cron Job,使用 openclaw cron add CLI 创建:

JobCron (UTC)CST用途
morning-standup0 1 * * *每天 09:00读 tasks/active.json → 汇总昨日完成 → 列出今日计划 → 标记逾期/阻塞 → 发到 prism-standup
afternoon-progress0 8 * * *每天 16:00检查逾期任务 → 阻塞预警 → 有问题通知 @dora
evening-summary0 13 * * *每天 21:00日报总结 → 发到 prism-general

最初设为仅工作日(* * 1-5),后改为每天运行(Hackathon 冲刺阶段周末也需跟进)。创建过程中 openclaw cron CLI 遇到 gateway closed 1000 WebSocket 握手断开问题,最终通过配置 tools.elevatedtools.exec 权限后解决。

Work Assistant Cron 全量清单

以下信息来源于 work_assistant 的 Mattermost DM 聊天记录(2026-03-10)。

Work Assistant 展示了完整的 OpenClaw 定时任务列表及执行者分配:

由 main (Dora/Miss E) 执行

任务频率说明
memory-lane-server每 2 小时检查 memory-lane server.js 进程
miss-e-random-pingUTC 2:00/7:00/12:00随机英语选择题
AI Daily DigestUTC 2:00/14:00技术博客摘要 Top 3
check_126_email每 30 分钟检查 126 邮箱新邮件
Evening ReflectionCST 21:30晚间系统自省报告
Miss E Daily QuizCST 10:00/12:00/14:00/16:00/19:00英语测验题

由 work (工作助手) 执行

任务频率说明
Labor Hour Reminder工作日 UTC 09:00工时填报计划生成与提醒

由 research (研究助手) 执行

任务频率说明
research-work-cycleUTC 1:00/5:00/9:00/13:00推进研究项目
research-daily-reportUTC 13:00研究进展日报

系统级

任务频率说明
bot-daily-standupUTC 15:30在 bots-home 频道发布日报汇总

Agent Portal 内置健康监控

以下信息来源于 portalbot 的 Mattermost DM 聊天记录(2026-04-03)。

Agent Portal 在 server.cjs 中内置了 HTTP 健康检查器:

  • 频率:每 5 分钟自动拨测
  • 目标:12-13 个开发环境 HTTP 服务
  • 记录:写入 AP_site_checks 表,包含 response_ms
  • 告警:连续 2 次检查失败 → 自动 DM Dad,恢复时也通知
  • 清理AP_site_checks 保留 7 天

监控改造历程

  1. 原有 38 个监控项(含 15 台 SSH、7 个代理节点),无实际检查器在跑
  2. 精简到 12 个有意义的 HTTP 监控
  3. 在 server.cjs 内置 setInterval 主动拨测
  4. 去掉了 AP_container_checksAP_cron_checks 等无数据源的表
  5. 前端 MonitorPanel 简化为 HTTP 监控 + 故障记录

Rabbit 心跳与健康报告(ottor-laptop)

以下信息来源于 Rabbit 的 Mattermost DM 聊天记录。

HEARTBEAT.md 心跳文件

Rabbit 通过 HEARTBEAT.md 文件定义每小时自动检查的项目:

  1. Gateway 日志检查 — 过滤 error/fail/crash 关键词
  2. Agent 连接状态 — 检查 quokka/axolotl/kids 等 Agent 的 Mattermost 在线状态
  3. GrowLog AI 服务 — curl 探测后端 4000 端口和前端 3001 端口
  4. Motion Detector 服务 — 检查 systemd 服务运行状态
  5. 自动修复 — GrowLog 挂了自动 fuser -k + 重启;Motion Detector 挂了自动重启
  6. 报告汇总 — 生成文字报告 + 触发 growlog_report.js 发送监控截图

Rabbit 心跳定时任务

任务频率说明
Rabbit-Heartbeat-Pulse每 10 分钟(初始)后改为整点
hourly-health-report0 * * * *健康报告 + GrowLog 截图
daily-vpn-check0 23 * * * CSTVPN 节点巡检(委托 axolotl)

“幽灵任务”排查经验

多次出现”每半小时健康报告”无法清除的问题,排查过程:

  • 删除了 OpenClaw 内部 Rabbit-Heartbeat-Pulse 幽灵任务
  • 删除了旧会话缓存中的心跳提示词
  • 重启 Gateway 系统进程
  • 最终发现可能是其他服务器(eagle/wolf)上的旧 OpenClaw 实例在发消息

MM Daily Digest 增量采集

任务频率
L0 采集 + L1 提取每 15 分钟
全量 digest(L1.5+L2+项目匹配+推送)每 30 分钟

详见 mm-daily-digest

2026-04-11 更新

来源:research agent 基础设施巡检与模型可用性测试

基础设施巡检报告(23:48 CST)

research agent 执行了一次完整的基础设施巡检,包含以下检查项:

1. 站点检查 (AP_site_checks) ✅

  • 所有生产站点 HTTP 200:ClawCraft、Agent Portal、Agentic BI、Gateway、Client Web
  • Dev 站 warnings(不打扰):Channel H5 (dev) 404、BI 后端 API (dev) 502、Supabase (dev) 401(预期)

2. 服务器快照 (AP_server_snapshots) ✅

  • 所有核心服务器 SSH 可达,磁盘均 <80%
  • 最高磁盘:eagle 79%, paperclip 78%, dify-host 71%
  • SSH 不可达节点均为代理节点(proxy-mantis/kr/hydra/jaguar/shark/bison)+ packhorizon — 非核心

3. Cron 检查 ⚠️ 跳过

  • AP_cron_checks 表在 Supabase 中不存在(未创建)

4. 模型端点健康 ✅

端点模型状态
sweden-extgpt-5.4✅ 可达(400=max_tokens 限制,端点正常)
sweden-extgpt-4o✅ 200 OK
us2gpt-5.4✅ 可达
github-copilotclaude-opus-4.6✅ 当前会话使用中

注:prism-foundry (prism.dora.restry.cn) 连接失败 (HTTP 000),但未在 OpenClaw providers 中配置,不影响实际调用。

Provider 可用性测试

research agent 对所有 5 个 Azure provider 进行了 gpt-5.4 模型可用性测试:

Providergpt-5.4状态备注
us2❌ 404🟡 URL 格式问题Azure 原生 endpoint 需要 deployment URL
clawfood❌ 400🟡 参数问题需用 max_completion_tokens 代替 max_tokens
sweden-ext❌ 400🟡 参数问题同上
eaips-sweden✅ OK (2.7s)🟢 可用
eaips-eastus2✅ OK (1.8s)🟢 可用

关键发现:所有 5 个 provider 实际都可用,测试脚本使用了旧参数 max_tokens 导致 400 错误。新 EAIPS 网关完全正常。

待办:模型可用性 Cron 任务

  • 当前没有关于测试模型可用性的 cron 任务
  • 建议创建每日定时测试所有 provider 的模型可用性任务