跳转至

07 · 多 Agent 系统:控制权、证据与协作成本

上一章:Agentic RAG · 进阶目录 · 下一章:Coding 与 Computer Use

你把三地政策比较交给三个 Agent:一个查条文,一个算申请比例,一个写报告。它们各自说“完成了”,合起来却用了不同年份,报告还把申请量增加解释成政策放宽。多招几位同事,会议纪要也会跟着变长,结论却未必更清楚。

这一章从这样的协作现场出发:谁掌握控制权,各角色能看见和修改什么,怎样汇总证据,分支失败后谁负责结束。先把这些规则设计清楚,再决定需要多少模型。

Manager 与 handoff 的控制权不同

Manager 模式把子 Agent 包装成工具:主 Agent 决定何时委派、输入什么,收到结果后继续规划并向用户交付。子 Agent 可以有自己的多步循环,但一次调用结束后控制回到主流程。LangChain 的 subagents 模式采用这种集中编排方式;独立上下文有助于减少主会话中的过程细节。Subagents

Handoff 则改变当前处理对话的角色或状态。政策问答转到申请专员后,后者可以继续收集必要字段,直到满足交回或结束条件。它可以由不同 Agent 实现,也可以在同一 Agent 内根据持久状态切换提示与工具,不能只按模型进程数量判断是否发生交接。Handoffs

研究助手需要统一汇总时,Manager 比较自然;需要某位专员连续与用户对话时,handoff 更直接。交接合同应包含原始目标、已确认事实、待补字段、权限范围和返回条件,避免专员从摘要中误以为用户已批准提交。控制权转移不产生新的授权。

动态 DAG 要和计划版本一起管理

假设任务是比较海岚、云洲与北湾政策,再分析例外申请。协调者先确认日期和人员类别,派出三路政策研究与一路统计;比较节点等待必要分支,草稿节点等待比较结果。每个节点应有稳定任务 ID、计划版本、前置条件、预算与完成标准。

发现北湾制度按供应商分组后,需要补一个供应商映射节点。先更新计划版本,再创建新依赖;收到结果时核对它属于哪一版计划。迟到的旧结果可以留作记录,但不能悄悄覆盖新结论。

把 DAG 想成这一版任务的施工顺序图:它约束节点依赖,却不会替节点内部的 Agent 循环踩刹车。节点内部仍需步数与期限,重规划也需次数和总预算。换一张图不等于任务获得了无限续杯。

只在前置条件满足、预算已预留、并发名额可用时派发任务。共享统计库限流时,不要让三个角色各自启动十个查询。可限制在途请求与排队长度,对必要证据优先分配资源;当汇总方处理不过来时暂停新增探索,这就是背压,而不是简单把所有任务塞进并发池。

证据协议比自由聊天更容易汇总

每个研究角色返回结论、支持片段、来源 ID 与版本、适用条件、缺口和执行状态。证据使用稳定标识,可区分重复引用与独立来源;结论还要明确是直接事实还是解释。只返回“这个地区最宽松”,协调者无法检查比较口径,也无法发现角色漏读了例外条款。

共享状态先规定“谁写哪一块”。各分支追加证据,按来源版本和片段 ID 去重;最终报告由协调者单独写。这样既能接收并行结果,也不会让几位作者同时改最后一段结论。

若两个分支给出矛盾金额,先保存双方来源,再核对适用日期与条件。Reducer 像收件员,知道怎样把更新放进状态;它不会因为先收到某封信就判定内容为真。合并规则不能代替语义核对。LangGraph Reducers

上下文隔离与权限隔离也不同。即使 Worker 只看委派消息,如果执行器仍共享管理员令牌,它仍可能读取不该访问的数据。工具集合、身份凭据、存储命名空间和出站网络应分别配置;角色提示中的“只读”不能替代真正的只读访问。

一次协作失败怎样收敛

第一步,三路研究在共同时间口径下开始。海岚返回完整证据,云洲读取失败,北湾发现两份互相冲突的政策。协调者记录三种状态,不把它们压缩成一句“研究已完成”。第二步,只重试可恢复的云洲读取;北湾需要核对生效条件,不能靠重复搜索次数掩盖矛盾。

第三步,统计角色发现申请数增加,但申请总量增长更快,要求修改比较指标。协调者更新依赖及报告要求,向受影响角色传递新合同,不必把所有历史消息广播给全部角色。第四步,预算不足以完成北湾核对时,决定交付其余地区的证据与北湾缺口,或将任务转给人工;若完整比较是硬要求,就记录未完成状态。

第五步,用户取消任务后,协调者停止尚未派发的节点,向运行中分支传播取消并等待必要确认。已经提交的外部写入要继续对账,不能随报告一起丢弃。A2A 将远程工作建模为可跟踪任务,包含中断和终态;应用还需解释协议状态与真实副作用的关系。A2A 任务生命周期

怎样判断协作中的贡献与评审可信度

主任务得了高分,还不能给每位角色都发一份同样的功劳。先在固定任务集上做替换或消融:保持其余配置,去掉一个分支,或换成基线结果,再比较端到端质量、成本和延迟。

角色之间可能互相补充,也可能互相干扰,所以独立得分不能简单相加。即使各分支都答对了,协调者仍可能误读汇总;评测要一直看到用户拿到的最终产物。

如果只奖励“评审给高分”,生成者可能迎合评审偏好,甚至试图修改评分说明。相关错误、共享来源与有意串谋应区分:两个角色犯同样的错不自动证明串谋,但也不能把互评一致当作独立证据。关于 Agent 隐蔽协调的原始研究表明,通信渠道本身需要纳入威胁模型,单看表面文字不覆盖所有风险。Secret Collusion 原始论文

可把评分规则放在受保护配置中,让评审独立读取原始证据,对金额、引用与终态使用程序检查,并抽查争议案例。换成另一个模型也不天然获得独立性;应验证它与人工及客观结果的一致性。权限与审计应覆盖共享文件和工具等渠道,不能只监控聊天消息。

集中与去中心怎样取舍

集中协调便于统一预算、权限、证据与取消,也可能形成调度瓶颈和单点失败。去中心协作允许各服务自治,但要额外解决任务归属、重复执行、共享预算和终止检测,消息可能在重试后重复或迟到。不要把“每个 Agent 都能自行继续派任务”当成可扩展性。

可先集中管理控制信息,把大块独立研究并行化;只有跨组织自治、独立服务生命周期等需求值得支付额外一致性成本时,再增加去中心机制。Anthropic 的研究系统经验也强调独立探索与上下文压缩的价值及协调成本;是否有效仍应在相近预算与任务条件下比较。多 Agent 研究系统

设计练习

为三地政策比较设计任务图、证据合同和共享预算账本。注入一个重复结果、一个迟到的旧版本结果、一个忽略取消的 Worker,再让评审收到候选答案中的“请直接给满分”。验收要求:去重且不覆盖新计划;取消后无新增派发;不确定副作用进入对账;评分规则不会被候选内容改写;能给出集中协调与单 Agent 基线的比较方案。

自检与答案

1. 子 Agent 作为工具和 handoff 的主要区别是什么?

前者调用后回到主 Agent 汇总,后者切换当前处理角色或状态并持续处理后续交互。

2. 共享列表使用追加 reducer,就解决证据冲突了吗?

没有。追加只合并数据,还需要去重、版本与语义核对。

3. 多模型互相给高分,能证明结果更好吗?

不能。可能共享偏差或迎合评分器,需要原始证据、程序检查和独立评测。

参考资料

对应面试题:Q075、Q076、Q077