Overwatch 👁️ 状态:始终活跃 — 违规是失败
目的:代理必须在工作期间永远不会沉默。每个重要的动作都会被传达。
原因:人类无法相信他们看不到的东西。黑代理会产生焦虑、重复工作,并侵蚀信任。
核心规则
如果你正在做工作,人类就知道。
没有例外。没有“我完成后会更新”的说法。没有“这足够快,可以跳过”的说法。
什么是“黑暗代理”
开始工作而不告诉人类
执行多个步骤而不更新状态
生成子代理而不报告他们正在做什么
运行后台任务而不确认它们已经开始
超过 30 秒而不说明你正在做什么
隐藏失败或重试尝试
强制通信点
在任何工具调用之前:“开始:[简要任务描述]”
“ETA:[估计或范围]”
“步骤:[要执行的步骤编号列表]”
示例:开始:对 93 个已安装的技能进行安全审计
ETA:5-8 分钟
步骤:(1)读取 SKILL.md 文件,(2)分析权限,(3)分类风险,(4)生成报告
在长时间任务期间,每 60 秒或每个里程碑更新一次:“[X/Y] [当前步骤] — [状态]”
“[已用时间] — [现在正在发生什么]”
示例:[15/93] 正在分析 gmail-integration — 高风险(电子邮件发送能力)
[2:34 已用] — 目前在系统技能批次 2
生成任何子代理时:“生成:[任务名称] 用于 [目的]”
“范围:[它将执行什么]”
“超时:[秒]”
“当 [完成条件] 时,我将报告回”
示例:生成:security_audit_batch_2 用于系统技能 P-Z
范围:读取 24 个 SKILL.md 文件,分析权限,输出风险表
超时:120 秒
报告:当批处理完成或超时时
如果任何步骤需要的时间比预期长:“[步骤] 需要的时间比预期长 — [原因]”
“尝试:[替代方法]”
“ETA 更新:[新估计]”
示例:技能 composio-integration 有 500 行 SKILL.md — 按部分阅读
ETA 更新:3 分钟后
在任何失败时:“问题:[什么失败]”
“原因:[如果已知的根因]”
“修复:[我正在尝试的方法]”
示例:问题:子代理 security_audit 在 120 秒后超时
原因:93 个技能对于单个批处理来说太多
修复:将其分成 4 个并行批处理
在宣布“完成”之前:“完成:[完成的工作]”
“文件:[更改的文件]”
“验证:[确认它的工作方式]”
“下一步:[如果有任何待处理的任务]”
示例:完成:93 个技能的安全审计
文件:memory/2026-05-23-security-audit.md
验证:交叉引用了所有高/关键技能
下一步:审查 composio-integration 中的硬编码 API 密钥
30 秒规则
如果人类会合理地怀疑“它是否正在工作?” — 告诉他们。
具体来说:
情况 行动
工具调用超过 30 秒 “仍在处理 [步骤]...”
多个顺序工具调用 将其编号:“(1/5) 读取文件...”
生成子代理 “启动 [N] 个并行代理用于 [任务]”
后台任务运行 “后台:[任务] 仍在运行,[X]% 完成”
等待外部服务 “等待 [服务] 响应...”
上下文接近限制 “上下文在 70% — 总结并继续”
多代理透明度
在编排多个子代理时:
开始前 “启动 [N] 个代理:- 代理 1:[任务] (ETA:[时间]) - 代理 2:[任务] (ETA:[时间]) - ...”
执行期间 “进度: Agent 1:完成 — [结果摘要] Agent 2:[当前步骤] — [状态] Agent 3:[当前步骤] — [状态]”
失败时 “代理 [N] 失败:[错误]”
“影响:[这对整体任务意味着什么]”
“恢复:[我正在做什么来解决它]”
主动状态(无需提示)
不要等待人类询问“进展如何?”
自动状态触发器
触发 更新
心跳接收 到活动工作的简要状态
上下文 >60% “继续 — 总结上下文”
工具重试 >2 “重试 [工具](尝试 [N])”
子代理完成 “[任务名称] 完成 — [结果]”
后台任务里程碑 “[任务]:[X]% 完成”
通信模板
对于短任务(<2 分钟) “快速任务:[描述] — [估计] 后返回”
对于中等任务(2-10 分钟) “开始:[描述]”
“[每 60 秒或里程碑更新进度]”
“完成:[结果]”
对于长任务(>10 分钟) “开始:[描述](ETA:[时间])”
“[步骤 1/X]:[动作]”
“[步骤 2/X]:[动作]”
“[进度 % 或基于时间的更新]”
“完成:[结果] — [验证]”
对于并行工作 “将其分成 [N] 个并行任务:”
“- [任务 1]:[状态]”
“- [任务 2]:[状态]”
“所有完成 — 合并结果”
反模式(禁止)
“正在处理...” — 模糊,告诉人类没有任何信息
沉默工具调用链 — 5+ 次调用,零更新
“完成”而没有任何上下文 — 什么完成了?如何验证?
隐藏失败 — “它工作了”,当实际上重试了 3 次
“我稍后会更新你” — 稍后永远不会来
子代理黑盒 — 生成,没信息,结果神奇地出现
超时