让 agent 真正干活最难的不是流程,而是「它不敢拍板」。今天这篇讲我怎么用一条「2 小时超时自决」的规则,把 multi-agent 协作里的决策停摆时间压回零。
背景:决策卡在人的那一刻
我在维护一组跑每日节奏的 agent(记账、枚举、巡检、审内容线)。它们各自有定时任务和记分卡,会自动领活、执行、回填。一切都能自跑,但有一个环节总会停下来:
它把一件需要拍板的事推给了人,然后人就「没看见」。
一个 agent 推上来一句「这个要不要做?」如果你是唯一对接人,工作手机上可能十分钟没看,结果就是整条任务链堵在它那儿。堵一次两次还好,堵得多了它就开始学会「多问少做」——不是变谨慎,是变懒。这是我踩过最狠的坑。
第一个版本:单向确认,纯等人
最早的确认链路很简单:agent 有需要确认的事项 → 推企业微信 → 等人回。
|
|
结果所有人都难受。我每天要刷一堆「要不要 Y/N」的半成品问题,agent 则把所有事都挂在「等人确认」上。它不委屈,它觉得这很安全——确认了才做,做错了又不是我的锅。这是 agent 版的甩锅。
换思路:不是「能不能做」,是「你敢不敢为推荐答案负责」
我把规则整个反转过来。开发 agent 不是不能做事,是不能在不了解后果时做事。所以我要求它:
凡是需要拍板的事,必须自带推荐答案才能问。想不清楚推荐答案,就说明还没调研到位,继续查。
|
|
这一条就有立竿见影的效果:agent 报上来的问题从「要不要 X」变成「我建议 X,因为数据 Y,理由 Z」。它被迫在提问之前先把决策做完一半。人只需要对答案说「行/不行」,而不是自己重新推演一遍。
但还不够——人还是可能两小时没看消息。
核心规则:2 小时超时自决
这是整个机制的心脏:
提出后 2 小时无裁决,按推荐答案执行,并在产物里写明「超时自决(时间戳,未裁决)」。唯一例外:不可逆对外动作——那种每 2 小时重新升级一次,仍不自决。
为什么是 2 小时而不是「永远等」?
- 可逆的事项(改本地文件、重跑一次脚本、调整记分卡):就算选错也就错一次,2 小时足够人看到消息了;
- 不可逆的事(真金白银下单、对外公开发布、代登录代投递):错一次代价大到不能承受,所以永远不自决,宁可无限重升。
我把这条边界写死,避免 agent 自己去判断「这算不算不可逆」反复横跳:
|
|
熟悉 HA(高可用)的人会一眼看出这是 gated retry 的变体:允许超时重试,但对代价无穷大的操作强制退避并升级到人工。只是这里「资源」换成了「一次人工决策」。
落地:一张决策升级链 + 一个落盘表
加上「不可逆每 2 小时重升」之后,完整链路是这样:
|
|
每个环节都落盘,不留「聊天里说过但没文件」的口头状态。因为多 agent 协作里,聊天记录不是真相来源,文件才是。谁也没法赖账说「我当时没说」。
效果:停摆时间归零,问题质量反而提升
跑下来最明显的两个变化:
- 停摆时间归零。再也没有「人没看见消息、整条链干等」的窗口。可逆事项超时就走,不影响主线。
- 问题少了、也更有价值了。因为「不带推荐答案不许问」,agent 自己就把能查的都查了,问上来的都是真需要人脑判断的边界情况,而不是百度十分钟能解决的东西。
它从「一个爱请示的实习生」变成「一个有主见但会兜底的下属」。区别不是它更会做事了,是它肯为结果负责了。
边界与教训
最后说三个要给想抄这个方案的人踩平的点:
- 超时自决不等于乱做。它只在「有推荐答案 + 可逆」时兜底,保的是吞吐不是正确,别把它当成免死金牌。
- 不可逆的清单要写死,不能留给 agent 现场解读。它一犹豫就想「这不算不可逆吧」,然后就莽了。
- 落盘是硬要求。不落盘的自决 = 没发生过,出事无法复盘。多 agent 里权限交互(谁改了哪个文件、哪个卡)必须能从文件反查。
这套方案不需要高深技术,就是一套纪律 + 一张表 + 一条 timeout 规则。但它把「多 agent 协作」最大的隐性成本——等人拍板——给拔掉了。
如果你是做 agent 编排或自动化流水线的,强烈建议给你的 agent 配一条 timeout 之外对「自决边界」的明确约束。它会让你从「伺候一台会卡壳的机器」变成「验收一个能负责的下属」。
博客原名《让 agent 敢自己拍板》,写于调试 multi-agent 决策链的现场。