概述
监控与定时任务涵盖 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 | 每6h | research | 基础设施巡检(已合并模型检查) |
| research-daily-report | 21:00 | research | 每日研究报告 |
| research-work-cycle | 9:00/17:00 | research | 工作周期 |
| misse-daily-lesson | 18:00 | miss-e | 每日英语课 |
| health-remind | 每日7次 | health | 术后康复提醒(吃药/换药/运动) |
| health-heartbeat | 每2h | health | 健康 agent 主动检查 |
经验教训
- 心跳任务必须配置投递目标,否则结果丢失
- watchdog 应全面覆盖所有子任务,不能遗漏
- 密码失效等常见问题应加入自动修复流程
- 15 分钟间隔是合理的平衡点(太频繁浪费资源、太稀疏发现问题晚)
- 职责相近的定时任务应合并,避免重叠(如 nightly-health-check → infra-alert-check)
- 合并后从”每天一次”升级为”每 6 小时一次”,更及时发现问题
相关主题
- motion-detection-surveillance
- openclaw-config
- lancedb-memory-system
- ssh-server-ops
- prism-foundry-auth-issue
- model-provider-config
- daily-systems
- multi-agent-architecture
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-biPM2 进程消失后自动重启
Nexora / Uptime Kuma 监控
以下信息来源于 nexora 的 Mattermost DM 聊天记录(2026-03-31)。
Nexora 在 claw-bot 服务器通过 Uptime Kuma 配置了 7 项持续监控:
| 监控项 | 类型 | 间隔 | 备注 |
|---|---|---|---|
| GitLab | HTTPS | 60s | |
| Outline Wiki | HTTPS | 60s | |
| Portainer | HTTPS | 60s | |
| Uptime Kuma | HTTPS | 60s | 自监控 |
| Mattermost | HTTPS | 60s | 延迟较高 (~1300ms) |
| PostgreSQL | TCP | 60s | 改用容器 DNS 名 postgres |
| FRP Server | TCP 18888 | 120s | ICMP 被拦截,改 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 创建:
| Job | Cron (UTC) | CST | 用途 |
|---|---|---|---|
| morning-standup | 0 1 * * * | 每天 09:00 | 读 tasks/active.json → 汇总昨日完成 → 列出今日计划 → 标记逾期/阻塞 → 发到 prism-standup |
| afternoon-progress | 0 8 * * * | 每天 16:00 | 检查逾期任务 → 阻塞预警 → 有问题通知 @dora |
| evening-summary | 0 13 * * * | 每天 21:00 | 日报总结 → 发到 prism-general |
最初设为仅工作日(* * 1-5),后改为每天运行(Hackathon 冲刺阶段周末也需跟进)。创建过程中 openclaw cron CLI 遇到 gateway closed 1000 WebSocket 握手断开问题,最终通过配置 tools.elevated 和 tools.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-ping | UTC 2:00/7:00/12:00 | 随机英语选择题 |
| AI Daily Digest | UTC 2:00/14:00 | 技术博客摘要 Top 3 |
| check_126_email | 每 30 分钟 | 检查 126 邮箱新邮件 |
| Evening Reflection | CST 21:30 | 晚间系统自省报告 |
| Miss E Daily Quiz | CST 10:00/12:00/14:00/16:00/19:00 | 英语测验题 |
由 work (工作助手) 执行
| 任务 | 频率 | 说明 |
|---|---|---|
| Labor Hour Reminder | 工作日 UTC 09:00 | 工时填报计划生成与提醒 |
由 research (研究助手) 执行
| 任务 | 频率 | 说明 |
|---|---|---|
| research-work-cycle | UTC 1:00/5:00/9:00/13:00 | 推进研究项目 |
| research-daily-report | UTC 13:00 | 研究进展日报 |
系统级
| 任务 | 频率 | 说明 |
|---|---|---|
| bot-daily-standup | UTC 15:30 | 在 bots-home 频道发布日报汇总 |
- healthbot
- post-surgery-recovery
- bnef — BNEF Bot(Prism PM 定时任务的宿主)
- work-assistant — 工时提醒定时任务的执行代理
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 天
监控改造历程
- 原有 38 个监控项(含 15 台 SSH、7 个代理节点),无实际检查器在跑
- 精简到 12 个有意义的 HTTP 监控
- 在 server.cjs 内置
setInterval主动拨测 - 去掉了
AP_container_checks、AP_cron_checks等无数据源的表 - 前端 MonitorPanel 简化为 HTTP 监控 + 故障记录
- portalbot — 健康监控的实现者
- agent-portal — 监控面板所在平台
Rabbit 心跳与健康报告(ottor-laptop)
以下信息来源于 Rabbit 的 Mattermost DM 聊天记录。
HEARTBEAT.md 心跳文件
Rabbit 通过 HEARTBEAT.md 文件定义每小时自动检查的项目:
- Gateway 日志检查 — 过滤 error/fail/crash 关键词
- Agent 连接状态 — 检查 quokka/axolotl/kids 等 Agent 的 Mattermost 在线状态
- GrowLog AI 服务 — curl 探测后端 4000 端口和前端 3001 端口
- Motion Detector 服务 — 检查 systemd 服务运行状态
- 自动修复 — GrowLog 挂了自动
fuser -k+ 重启;Motion Detector 挂了自动重启 - 报告汇总 — 生成文字报告 + 触发
growlog_report.js发送监控截图
Rabbit 心跳定时任务
| 任务 | 频率 | 说明 |
|---|---|---|
| Rabbit-Heartbeat-Pulse | 每 10 分钟(初始) | 后改为整点 |
| hourly-health-report | 0 * * * * | 健康报告 + GrowLog 截图 |
| daily-vpn-check | 0 23 * * * CST | VPN 节点巡检(委托 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-ext | gpt-5.4 | ✅ 可达(400=max_tokens 限制,端点正常) |
| sweden-ext | gpt-4o | ✅ 200 OK |
| us2 | gpt-5.4 | ✅ 可达 |
| github-copilot | claude-opus-4.6 | ✅ 当前会话使用中 |
注:
prism-foundry(prism.dora.restry.cn) 连接失败 (HTTP 000),但未在 OpenClaw providers 中配置,不影响实际调用。
Provider 可用性测试
research agent 对所有 5 个 Azure provider 进行了 gpt-5.4 模型可用性测试:
| Provider | gpt-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 的模型可用性任务