让 agent 真正干活最难的不是流程,而是「它不敢拍板」。今天这篇讲我怎么用一条「2 小时超时自决」的规则,把 multi-agent 协作里的决策停摆时间压回零。

背景:决策卡在人的那一刻

我在维护一组跑每日节奏的 agent(记账、枚举、巡检、审内容线)。它们各自有定时任务和记分卡,会自动领活、执行、回填。一切都能自跑,但有一个环节总会停下来:

它把一件需要拍板的事推给了人,然后人就「没看见」。

一个 agent 推上来一句「这个要不要做?」如果你是唯一对接人,工作手机上可能十分钟没看,结果就是整条任务链堵在它那儿。堵一次两次还好,堵得多了它就开始学会「多问少做」——不是变谨慎,是变懒。这是我踩过最狠的坑。

第一个版本:单向确认,纯等人

最早的确认链路很简单:agent 有需要确认的事项 → 推企业微信 → 等人回。

1
2
3
- 发现判据差距需要重新领取 → 推「要不要领?」
- 遇到代码块缺语言标记 → 推「要不要修?」
- 验收没过 → 推「再试一次还是放弃?」

结果所有人都难受。我每天要刷一堆「要不要 Y/N」的半成品问题,agent 则把所有事都挂在「等人确认」上。它不委屈,它觉得这很安全——确认了才做,做错了又不是我的锅。这是 agent 版的甩锅。

换思路:不是「能不能做」,是「你敢不敢为推荐答案负责」

我把规则整个反转过来。开发 agent 不是不能做事,是不能在不了解后果时做事。所以我要求它:

凡是需要拍板的事,必须自带推荐答案才能问。想不清楚推荐答案,就说明还没调研到位,继续查。

1
2
3
4
[待确认] Q: <一句话问题>
推荐答案: <具体到可执行的做法>
理由: <为什么这么建议,带数据最好>
影响: <不裁决会卡住什么>

这一条就有立竿见影的效果:agent 报上来的问题从「要不要 X」变成「我建议 X,因为数据 Y,理由 Z」。它被迫在提问之前先把决策做完一半。人只需要对答案说「行/不行」,而不是自己重新推演一遍。

但还不够——人还是可能两小时没看消息。

核心规则:2 小时超时自决

这是整个机制的心脏:

提出后 2 小时无裁决,按推荐答案执行,并在产物里写明「超时自决(时间戳,未裁决)」。唯一例外:不可逆对外动作——那种每 2 小时重新升级一次,仍不自决。

为什么是 2 小时而不是「永远等」?

  • 可逆的事项(改本地文件、重跑一次脚本、调整记分卡):就算选错也就错一次,2 小时足够人看到消息了;
  • 不可逆的事(真金白银下单、对外公开发布、代登录代投递):错一次代价大到不能承受,所以永远不自决,宁可无限重升。

我把这条边界写死,避免 agent 自己去判断「这算不算不可逆」反复横跳:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 决策自决等级(写死在配置里,不是让 agent 现场判断)
可逆内部动作:
  - 改本地文件
  - 重跑脚本
  - 调整记分卡/看板
  timeout: 120分钟   # 超时按推荐答案执行
不可逆对外动作:
  - 下单/转账
  - 对外公开发布
  - 代登录/代投递
  timeout: forever   # 永不自决,每 120 分钟重新升级

熟悉 HA(高可用)的人会一眼看出这是 gated retry 的变体:允许超时重试,但对代价无穷大的操作强制退避并升级到人工。只是这里「资源」换成了「一次人工决策」。

落地:一张决策升级链 + 一个落盘表

加上「不可逆每 2 小时重升」之后,完整链路是这样:

1
2
3
4
5
6
7
8
agent 遇到需拍板事项
  │  1. 先调研,想清楚推荐答案(Q/推荐/理由/影响)
  │  2. 落盘到 PENDING_DECISIONS.md 决策表
  │  3. 提交给唯一裁决方
  ├─ 2 小时内裁决 → 按裁决执行,回填状态
  └─ 2 小时未裁决
       ├─ 若是可逆内部动作 → 按推荐答案执行,标注「超时自决」
       └─ 若是不可逆对外动作 → 不执行,每 2 小时重升一次

每个环节都落盘,不留「聊天里说过但没文件」的口头状态。因为多 agent 协作里,聊天记录不是真相来源,文件才是。谁也没法赖账说「我当时没说」。

效果:停摆时间归零,问题质量反而提升

跑下来最明显的两个变化:

  1. 停摆时间归零。再也没有「人没看见消息、整条链干等」的窗口。可逆事项超时就走,不影响主线。
  2. 问题少了、也更有价值了。因为「不带推荐答案不许问」,agent 自己就把能查的都查了,问上来的都是真需要人脑判断的边界情况,而不是百度十分钟能解决的东西。

它从「一个爱请示的实习生」变成「一个有主见但会兜底的下属」。区别不是它更会做事了,是它肯为结果负责了。

边界与教训

最后说三个要给想抄这个方案的人踩平的点:

  • 超时自决不等于乱做。它只在「有推荐答案 + 可逆」时兜底,保的是吞吐不是正确,别把它当成免死金牌。
  • 不可逆的清单要写死,不能留给 agent 现场解读。它一犹豫就想「这不算不可逆吧」,然后就莽了。
  • 落盘是硬要求。不落盘的自决 = 没发生过,出事无法复盘。多 agent 里权限交互(谁改了哪个文件、哪个卡)必须能从文件反查。

这套方案不需要高深技术,就是一套纪律 + 一张表 + 一条 timeout 规则。但它把「多 agent 协作」最大的隐性成本——等人拍板——给拔掉了。

如果你是做 agent 编排或自动化流水线的,强烈建议给你的 agent 配一条 timeout 之外对「自决边界」的明确约束。它会让你从「伺候一台会卡壳的机器」变成「验收一个能负责的下属」。

博客原名《让 agent 敢自己拍板》,写于调试 multi-agent 决策链的现场。