这是一个用于“主动监控会话”的技能(Skill),即由模型启动流式监视线程,按时间向用户汇报,对到达的事件进行分类,派发子智能体修复可逆问题,逐一验证修复并最终汇报。该技能与具体主题无关:无论是数据导入 CLI、Bun 构建、日志 tail 还是 CI 流水线,都使用同一套操作循环。它不是被动的日志查看器,而是让用户信任其代为处理其本会亲自处理事件的副驾驶。
适用场景:用户明确说“监控 X”“盯着 X”“看护 X”“tail X”“留意 X”,或说“运行 X,出问题告诉我”“有失败就修”;操作耗时超过约 2 分钟且结果不可预测;过程中错误可能出现且部分可逆。不适用:只需一次状态检查(如“构建完成了吗”)、调试已结束的进程、30 秒内可预期的单条快速命令。
辅助脚本命令(保留原样):
根据近期日志错误生成 grep 模式
npx tsx .agents/skills/monitor/scripts/monitor-suggest-filter.ts /path/to/log 500
对单行日志分类
echo "ERROR connect ECONNREFUSED 127.0.0.1:3001"
| npx tsx .agents/skills/monitor/scripts/monitor-classify-error.ts
在派发子智能体前认领文件锁
npx tsx .agents/skills/monitor/scripts/monitor-dispatch-queue.ts
--claim "lib/db.ts,lib/cache.ts" --agent-id agent_42
操作循环共 9 步:1)在真值源上启动流式监视,过滤器须覆盖人类会处理的所有行,若被监控进程此刻崩溃过滤器应能输出内容,否则放宽;抑制事件过多说明过滤过松,需收紧。2)约每 20 秒一次心跳,一句话说明变化,无变化也须明说,并粘贴实际日志行。3)用 TodoWrite 跟踪进行中的修复。4)新错误分类为三类:崩溃/阻塞(可逆则自主修复)、持续告警(标记,涉及共享状态不修)、瞬态(观察一轮自愈)。5)决定自主修复还是上报:可逆本地变更可派子智能体;共享状态(生产数据库、公共服务、共享基础设施、破坏性操作)不动,上报等待;不确定时倾向上报。6)给子智能体写自包含简报,包含逐字错误、路径、已排除项、成功标准、禁触范围、提交规范、自验证步骤与汇报契约;避免两个子智能体并行处理重叠文件。7)不轻信子智能体的“完成”,须独立确认错误消失、功能路径可用、提交 SHA 存在、类型检查与 lint 通过。8)停止条件:用户明确要求、底层操作自然结束、或遇到需用户授权的硬失败。9)结束时给出统一报告,区分我修复的、子智能体修复的、等待用户授权的,并包含耗时与前后指标。
关键概念包括:静默会被理解为“休眠”或“卡住”,心跳必须持续;子智能体报告的是意图而非结果;快速 502(毫秒级)意味着上游已死,慢速 502(接近超时)意味着上游繁忙,修复方式不同;并行子智能体写同一分支会冲突,需串行或用文件白名单锁;应按严重性分级,并非所有错误都需要立即派发;监控须有明确结束条件与超时。
阻塞性约束:未经用户本轮明确确认,不得对共享状态变更采取行动;不得跳过心跳;不得在未独立验证情况下宣布子智能体修复成功;不得凭记忆重建 Shell 命令、CLI 参数或安装步骤,须先阅读相关脚本源码或参考文件;不得在未认领锁的情况下并行处理重叠文件。
故障排查:出现“输出速率过高”说明过滤过松,需收紧;认领总是返回 BLOCK 可能是上个智能体崩溃未释放锁,需手动删除 .tmp/monitor-dispatch-queue/*.lock 与孤立 .claim 文件;报告各段为 none 可能是会话日志路径错误;分类器对已知错误返回 unknown 说明规则缺失,需补充规则或手工分诊;本地验证通过但流上错误重现,说明只修了症状,需放宽过滤并派发更深入调试。
该技能还附有配套技能模式:更深入的调试技能(用于反复失败需根因诊断)和专家领域委派技能(针对特定工具族)。若未安装则回退到普通子智能体简报。此外提供监控质量检查表,涵盖启动前(目标、来源、成败标准)、进行中(心跳、错误分类、派发隔离、验证计划)与收尾(超时/结束条件)。