运行状态监控与可观测性

让 Agent 在后台运行命令 实现的是一次性通知:job 结束后推一条 <task-notification>。「跑完告诉我一声」的任务很适合这套机制,sub agent 也复用了这条通知通道。

但有一类需求它实现不了,比如用户要求 agent:帮我盯着日志,一出现 ERROR 就告诉我。

对应的命令是 tail -n 0 -F app.log | grep ERROR,这条命令永远不会结束。挂成后台任务的话,完成通知遥遥无期,模型一条消息也收不到。

问题出在通知的次数上:你要的不是「命令结束时通知一次」,而是「每出现一次符合条件的输出,就通知一次」。

Claude Code 的 Monitor 工具就是解决这类问题的,这一篇我们给 My Claude Code 加上相同的能力:把命令的非空输出行记成事件,持续推送给模型。

更准确地说,后台 job 推送的只是「任务结束了」这个信号,具体结果仍由模型从日志文件中按需读取;而 monitor 推送的则是所有符合条件的事件。事件也可以主动激活 Agent,不需要等用户发消息。