很多团队已经接受了多智能体编排,却仍把最关键的人工审批留在系统外面:有人在飞书里点头、有人在邮件里回复“可以继续”、有人在周会上口头放行。表面上这是一层安全阀,实际上它把控制流切成了两半,系统不知道任务为什么暂停、谁批准了继续、也不知道审批后应该恢复到哪个节点。
一旦流程开始包含拆解、路由、并行调查、结果会合和跨系统写入,人工审批就不该再是系统外的补丁,而应该成为编排器中的正式节点。AutoGen、CAMEL 和 MetaGPT 都说明了多角色协作的价值,但它们同样提醒我们,角色越多、交互越长,越需要显式边界、共享状态和清晰的协作协议。对 TaskPilots 这样的多 Agent 协作编排集群来说,人工审批必须进入控制面,才能真正实现可恢复、可审计和可治理。
为什么这个问题重要
真实运行代价
把审批留在系统外面,最先损失的不是自动化率,而是运行一致性。控制器明明负责决定下一步,却在关键时刻失去上下文主权,只能等待人工在别的系统里给出一个模糊信号。结果是同一个任务即使内容相同,也可能因为不同人的沟通习惯而走出完全不同的路径。
- 暂停原因不结构化,后续恢复时只能靠人工回忆。
- 审批意见和执行动作脱节,系统无法证明“谁在何时批准了什么”。
- 并行分支已经完成,但 join 点被卡在系统外,整体周转时间被无形拉长。
如果不处理会怎样
生产环境里最常见的失效方式,是控制器继续运行自己的内部状态,而人工又在外部改变了真实决策。这样会形成“双轨运行”:系统认为任务仍在等待,业务方却已经批准;或者系统已经自动继续,审批记录却没有落在审计链路上。任务越长、角色越多,这种偏差越容易扩散成权限风险、重复执行和责任不清。
适用场景
谁最需要这套方法
如果你的流程天然包含规划、委派、并行取证、结果会合和最终放行,那么把人工审批纳入编排器会立刻带来收益。尤其适合三类团队:要跨多个 SaaS 或内部系统执行动作的平台团队;需要把 AI 结果交给业务负责人确认的产品团队;以及必须留存审计证据的解决方案或运营团队。
- 高价值写操作前必须确认,例如改价、发信、工单关闭或权限变更。
- 多个专家 Agent 给出不同结论,需要由人做最终裁决。
- 任务会跨小时甚至跨天,系统必须在审批后准确恢复。
什么时候先不要这么做
如果当前任务仍是单轮问答、单次工具调用,或者所谓“审批”只是礼貌性通知,而不是实际的决策闸门,那么没必要先引入完整的人机协同状态。这个阶段更应该先把工具输入输出、失败分类和停止条件理顺。只有当人工判断真正改变控制流时,审批节点化才值得投入。
推荐系统结构
核心角色与状态
把人工审批放进编排器,关键不是多一个按钮,而是让它成为正式的状态迁移。控制器需要持有任务阶段、待审批动作、审批人、审批上下文、过期时间和恢复目标;专家角色只负责生成候选方案、证据和风险说明;真正的“继续执行”则由审批事件驱动迁移,而不是由模型自己猜测。
- 控制器负责创建审批节点,并冻结后续副作用动作。
- 专家 Agent 只提交结构化候选结果,例如建议动作、理由、证据和置信度。
- 人工审批作为显式事件写回状态层,决定批准、拒绝、补充信息或转人工接管。
与 TaskPilots 的映射
在 TaskPilots 的多 Agent 协作编排集群里,这可以映射成一条很清楚的链路:控制面打开审批节点,状态层记录当前 join 结果和待确认动作,并行回收机制保证所有必需分支已经归档,再把“批准”“拒绝”“补充材料”视为可追踪事件。这样审批不再漂浮在外部聊天工具里,而是成为工作流运行时的一部分。站内像 把控制器做成状态机,而不是巨型提示词 和 并行分支如何安全会合:从 fan-out 到 join contract 讨论的状态与会合约束,也就能自然延伸到人机协同层。
风险与失效点
常见失控方式
人工审批进入系统后,风险不会消失,只是从“看不见”变成“可设计”。最常见的失控点有四个。第一,角色漂移,控制器和审批人都在修改同一决策,导致责任边界变糊。第二,状态失真,审批意见只落自然语言,没有映射成统一字段。第三,并行分支失控,任务在关键证据尚未回收时就被提交审批。第四,成本外溢,每个小动作都要求人工确认,反而把编排器变成通知系统。
- 审批前缺少最小证据包,审批人只能读长文本猜上下文。
- 审批后没有恢复目标,系统不知道应回到哪个节点继续。
- 审批超时或无人处理时,没有升级规则与关闭条件。
需要人工兜底的地方
凡是会改变外部真实世界状态的动作,都应该优先考虑人工闸门,尤其是资金、权限、对外沟通和高影响客户操作。另一个必须保留人工兜底的地方,是多分支结论冲突且无法仅凭规则裁决时。人工接管点应直接挂在控制器层,而不是分散到各个 Agent 内部,这样才能保留统一审计证据和一致的恢复路径。
验证指标
上线前怎么验证
上线前建议拿真实任务样本做四类验证:正常批准、拒绝回退、补充材料后再次审批、审批超时升级。检查重点不是页面是否能点通,而是每次审批事件是否都能把系统带回预期状态,并阻止未批准的副作用先发生。对于并行流程,还要验证提交审批前是否真的满足最小 join 条件。
- 审批事件重放后,系统是否还能恢复到同一状态。
- 拒绝或撤回时,已打开分支是否能被正确关闭或回滚。
- 审批意见是否始终以统一字段进入日志、状态和审计视图。
上线后怎么持续判断
长期看,至少要跟踪四个指标:任务完成率、分支回收率、人工接管率和单次任务成本。任务完成率下降,通常说明审批节点把流程卡得过早;分支回收率低,说明很多任务在证据不完整时就被推给人;人工接管率过高,说明审批上下文不够结构化;单次任务成本持续上升,则说明审批阈值和自动化边界还没有校准好。
下一步 / FAQ
下一步建议
最实际的第一步,不是立刻重做整套系统,而是从一个高价值、低频但风险高的动作开始,把它改造成正式审批节点。为这个节点定义四样东西:触发条件、最小证据包、审批结果字段、恢复目标。只要这一条链路跑顺,再向外扩展到更多角色和更多审批类型就会容易很多。
FAQ
把人工审批放进编排器,会不会拖慢流程? 会增加一个显式节点,但通常会减少系统外沟通和重复确认的总时间。真正拖慢流程的,往往是审批不在系统里导致的等待和返工。
所有审批都应该保留给人吗? 不是。低风险、低影响且规则稳定的动作可以自动放行,重点是把高风险审批做成正式状态,而不是把全部流程都变成人工工单。
如果审批人不在线怎么办? 需要提前定义超时、升级和代理规则,比如自动转交值班人、进入人工接管池,或在阈值内走降级路径。
这和单纯记录日志有什么不同? 日志只是事后说明发生过什么;审批节点化要求它在运行时决定能不能继续,并把这个决定变成可重放的控制流事件。