跳转至

AgentOps 健康采集

本文是 AgentOps 健康采集的详细说明。全部定时任务的总览见 调度系统。

每天 07:45 自动采集 8 种系统健康信号,写入 ledger 供晨间四签(morning-triage-v2)消费。

采集的信号

信号 检测方式 阈值(可配置)
容器近期重启 docker compose ps --format json 解析运行时间 < 2h 内重启
备份新鲜度 读 backup-cron 写的心跳(~/.myagentdata/agentops/backup-heartbeat.json);读不到才退回扫快照目录名 > 24h 未更新
磁盘使用率 df -P /System/Volumes/Data > 85%
网关错误循环 scripts/check-gateway-errors.sh --json 检测到重复错误
容器健康状态 docker compose ps JSON 中的 (unhealthy) 状态 任何 unhealthy
tirith 安全扫描器不可用 读 ~/.hermes/bin/tirith* 前 4 字节魔数 非 \x7fELF(如 macOS 二进制)即告警
issue-watcher 停滞/取数失败/全量失败 ~/.myagentdata/repo-scanner/watcher-status.json 状态文件缺失、last_poll_epoch > max(30min, 3×轮询间隔)、error_repos > 0、repos == 0、oldest_success_at > max(1h, 6×轮询间隔)、daily_sync 昨日未完成/今日 10:00 后仍未完成
issue-notifier 停滞/发送失败/积压/死信/示例配置 ~/.myagentdata/issue-notifier/status.json 状态缺失、last_success_epoch > max(5min, 3×轮询间隔)、send_failed > 0、pending > 0 且 oldest_pending_age > max(15min, 10×轮询间隔)、dead > 0、placeholder_config == true

调度

通过宿主机 launchd 每天 07:45(Asia/Shanghai)自动触发,早于晨间四签(07:50):

# 安装定时任务
./scripts/launchd/install-collect-agentops.sh

# 手动触发
launchctl start ai.myopenclaw.collect-agentops

# 查看日志
tail -f logs/collect-agentops.log

输出

采集结果写入 ~/.myagentdata/agentops/inbox.md。start.sh 启动时会创建该目录,避免 Docker 只读挂载缺少 agentops/ 子目录。自动采集项(source: auto)每次覆盖刷新,手动添加的条目保留不变。

## 容器 hermes 近期重启
- date: 2026-07-20
- source: auto | docker compose ps
- status: watch
- owner: owen
- evidence: 容器 hermes 运行时间: Up 30 minutes(< 2h 阈值)
- why_it_matters: 容器 hermes 在最近 2 小时内重启过,可能发生过崩溃或被手动重启
- suggested_next_action: 检查 docker compose logs hermes --tail 50 确认重启原因
- needs_human_decision: no

在晨间四签中的使用

morning-triage-v2 直接读 inbox.md(见 skills/morning-triage-v2/SKILL.md 的第 0 步)来消费 AgentOps 信号,不经过 TDAI 关键词搜索。当采集到异常信号时,晨间四签报告会包含系统健康小结。

配置

通过环境变量覆盖默认阈值:

变量 默认值 说明
AGENTOPS_RESTART_THRESHOLD 2 容器重启检测窗口(小时)
AGENTOPS_BACKUP_STALE_HOURS 24 备份过期阈值(小时)
AGENTOPS_DISK_THRESHOLD 85 磁盘使用率告警阈值(百分比)
AGENTOPS_DATA_DIR ~/.myagentdata/agentops 输出目录
AGENTOPS_BACKUP_ROOT ~/Google Drive/.../myopenclaw-backups 备份目录路径

手动运行

# 采集并写入 ledger
python3 scripts/collect_agentops.py

# 预览模式(不写入)
python3 scripts/collect_agentops.py --dry-run

故障排查

采集未触发

# 检查 launchd 任务
launchctl list | grep collect-agentops

# 查看上次运行日志
tail -50 logs/collect-agentops.log

inbox.md 不存在 / Daily Command Center 报 AgentOps 未部署

start.sh 会创建 ~/.myagentdata/agentops/。若宿主机 launchd 未安装,目录在但 inbox.md 不会自动生成 —— macOS 上 start.sh 会检测 ai.myopenclaw.collect-agentops.plist 缺失并主动打印警告,按提示安装即可:

./scripts/launchd/install-collect-agentops.sh

morning-triage-v2 在 inbox.md 缺失时视为系统正常(不再当作「未部署」)。

输出文件为空

采集脚本在系统正常时不会写入内容(无异常 = 无条目)。手动运行 --dry-run 查看检测结果。