Agent 开发

多 Agent 怎么分工、通信和终止?如何避免死循环和互相扯皮?

91学AI·2026/7/26·13 阅读

考察点

这道题考察系统设计能力。面试官想听的不是「AutoGen/CrewAI 我都用过」,而是你对三个核心问题的答案:角色怎么拆、信息怎么流、循环怎么停。尤其是「怎么停」,这是多 Agent 系统上线最容易翻车的地方,能答出具体的防死循环机制说明你真踩过坑。追问常往具体框架、上下文隔离、评估方法走。

参考答案

分工:按职责拆,不按「模拟公司部门」拆

多 Agent 的第一原则是有明确的技术理由才拆。常见的合理拆法有三种:

  • 按能力拆:不同角色用不同的工具集或模型。比如代码场景里「规划者」只负责拆解任务,「执行者」拿着文件读写和 shell 工具干活,「审查者」只做 code review,彼此工具互不越界。
  • 按上下文隔离拆:主 Agent 的上下文窗口有限,把「搜索大量资料并提炼」这种会产生海量中间内容的活外包给子 Agent,子 Agent 内部随便折腾,只把几百字的结论还给主 Agent。Claude Code 的 Task 子 Agent 就是这个思路,这是目前最站得住脚的多 Agent 理由。
  • 按并行拆:调研类任务天然可并行,一个 orchestrator 把问题拆成 N 个子方向,N 个 worker 同时跑,最后汇总。

要警惕的是「拟人化过家家」式拆法:CEO Agent、产品经理 Agent、程序员 Agent 围一圈聊天,看起来热闹,实际上每一步都在稀释信息、放大幻觉。

通信:三种主流机制

直接消息传递:Agent A 把消息发给 Agent B,常见于对话式框架(AutoGen 的群聊模式)。灵活但容易失控,对话轮数和内容都不好预测。

共享状态/黑板:所有 Agent 读写一个公共的状态对象(当前任务、已完成步骤、中间产物)。好处是信息全局可见、可审计;坏处是共享状态会膨胀,要写清楚每个字段的读写责任,否则变成谁都能改的垃圾场。

结构化交接(handoff):Agent 之间不闲聊,只交接明确的任务包——上游 Agent 输出一个结构化结果(比如 JSON:任务描述 + 已有上下文 + 期望产出),框架路由给下游。OpenAI 的 Swarm/Agents SDK 主推这个模式。生产系统里这是最稳的,因为接口清晰、可测试、可追溯。

终止:把「结束」设计成协议而不是指望自觉

多 Agent 系统最大的坑是没有自然的终止信号。单体 Agent 好歹有个 finish 动作,多 Agent 对话里每个角色都能接着说,谁也不觉得该自己收尾。工程上要显式设计终止协议:

  • 明确的完成条件:由 orchestrator 或仲裁角色判断「任务目标是否达成」,达成即停,普通 worker 无权宣布结束。
  • 硬上限:全局最大轮数、token 预算、墙钟超时,任一触发就强制收场,把已有结果尽力输出。
  • 收敛检测:连续几轮没有产生新的实质信息(比如互相确认「你说得对」),判定为收敛停滞,终止。

避免死循环和扯皮

死循环的典型症状有两种。一种是乒乓循环:A 让 B 补充信息,B 让 A 先明确需求,来回几十轮。另一种是过度讨论:几个 Agent 对一个无关紧要的分歧反复争论。

应对手段:

  1. 全局轮数上限 + 单对 Agent 交互上限,乒乓循环靠后者抓得最准。
  2. 仲裁者/监督者角色:每 N 轮由一个 supervisor 审视全局状态,判断是在推进还是空转,空转就强制做决策或终止。LangGraph 的 supervisor 模式就是干这个的。
  3. 交接时强制带结论:不允许 Agent 交接开放式问题,必须输出「我做了什么、卡在哪、建议下一步」,把球往前踢而不是原地传。
  4. 重复检测:对消息做相似度判断,连续雷同即熔断。

最后一个经验之谈:多 Agent 的调试成本是单 Agent 的平方级,评估任务成功率要端到端做,别只看单个 Agent 的表现。能把单 Agent 做好,大多数场景不需要多 Agent。

可能的追问

追问:多 Agent 之间上下文怎么共享?

两级:共享黑板放全局状态(任务目标、已完成结论),所有 Agent 可见;私有上下文各 Agent 自持(自己的中间推理、工具返回细节),不外溢。切忌把所有 Agent 的完整对话互相灌,成本和噪声都顶不住。

追问:用过哪些框架,怎么评价?

LangGraph 适合状态机式的显式编排,可控性强;AutoGen 偏对话驱动,研究原型快但生产上要自己补终止和预算控制;OpenAI Agents SDK 的 handoff 模式简单直接,适合线性交接场景。框架差异在编排哲学,分工/通信/终止这三个问题哪个框架都得自己想清楚。

追问:怎么评估多 Agent 系统?

端到端任务成功率是主指标,再配过程指标:平均轮数、token 消耗、死循环触发率。归因靠 trace——每个 Agent 的输入输出留痕,失败后回放看是哪个环节引入的错误,是分工不合理还是通信丢了信息。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.