11. 说说 Single-Agent 和 Multi-Agent 的设计方案?

11. 说说 Single-Agent 和 Multi-Agent 的设计方案?

👔面试官:你实际项目里是怎么做技术选型的,什么时候用 Single-Agent,什么时候上 Multi-Agent?

🙋‍♂️我:任务简单就用 Single-Agent,任务复杂就用 Multi-Agent,多个 Agent 可以并行,速度更快。

👔面试官:「复杂」这个词太模糊,有没有更具体的判断标准?

🙋‍♂️我:就是……步骤多、需要调很多工具,这种就用 Multi-Agent 吧。

👔面试官:步骤多不一定要 Multi-Agent,Single-Agent 循环调工具也能搞定很多步骤的任务。你有没有想过,Multi-Agent 本身是有成本的,盲目引入会有什么问题?

🙋‍♂️我:那 Multi-Agent 的话,两个方案都行,中心化和去中心化看情况选,去中心化更灵活,感觉挺好的。

👔面试官:去中心化在工程实践里几乎没有人用,你知道为什么吗?灵活只是表面,背后藏着几个很实际的工程问题。

被追到这儿了,其实选型这件事有一套清晰的决策逻辑,不是凭感觉的。

💡 简要回答

💡 简要回答

Single-Agent 适合任务流程清晰、复杂度适中的场景,实现简单、好维护;Multi-Agent 适合需要专业分工、任务量大或者需要并行执行的复杂场景。

Multi-Agent 架构上主要有两种拓扑:中心化的 Orchestrator 模式,由一个主 Agent 统一调度各个 Worker;去中心化的 Peer-to-Peer 模式,Agent 之间直接通信。

我在工程里用中心化用得更多,因为好控制、好调试,出问题链路清晰。

📝 详细解析

📝 详细解析

这道题的核心问题是:什么情况下用 Single-Agent 就够了,什么情况下必须上 Multi-Agent,而 Multi-Agent 又该怎么组织?这是实际工程里最常碰到的架构决策,选错了要么系统过度复杂难以维护,要么能力不够任务跑不起来。

Single-Agent

Single-Agent

先把 Single-Agent 说清楚。它的本质是一个 LLM 加上一套工具,跑一个决策循环:LLM 判断下一步该做什么,调用工具执行,拿到结果,再判断,直到任务完成。

它最大的优势不只是「架构简单」,更核心的是「整条任务链路完全在你掌控之内」。任务怎么走、用什么工具、什么时候结束,所有逻辑都是你在一个地方写清楚的,出了问题链路短,好排查。

类比一下:一个人完全可以独立完成「写一篇博客」,自己查资料、想大纲、写下来,不需要团队协作,单人反而更高效,沟通成本为零。

Single-Agent 真正开始力不从心,是在遇到这几类任务的时候:任务太长、信息量太大,context 撑爆,Agent 开始遗忘;不同步骤需要完全不同的专业能力,什么都塞进一个 Agent,每件事都做得不够专注;任务中有多个独立子任务,理论上可以并行,但单 Agent 只能一个个来。遇到这三类情况,Multi-Agent 就有了真实价值。

但需要强调的是:如果你的任务不属于这三类,Single-Agent 就够了,不要为了「用新技术」而强行引入 Multi-Agent,系统会变复杂、变难维护,但没有带来对应的收益。

Multi-Agent 的中心化方案

Multi-Agent 的中心化方案

Multi-Agent 的中心化方案,核心是一个叫 Orchestrator 的特殊角色。「Orchestrator」直译是「交响乐指挥」,在 Multi-Agent 系统里,它的中文可以理解成「总调度员」或「项目经理」。它是整个系统里最特殊的那个 Agent,因为它不做任何具体工作,它只负责三件事:读懂用户的大目标、把它拆成一个个子任务;判断每个子任务该交给哪个 Worker Agent 去做;收集每个 Worker 的产出,把它们拼成最终答案。

Orchestrator 其实有几种变体,适合不同复杂度的场景。最基础的是静态路由(Static Router),任务拆分和分配规则是预先定义好的,比如「遇到代码任务交给 Coder Agent,遇到搜索任务交给 Researcher Agent」,逻辑简单可预测。进阶一点的是动态规划(Dynamic Planner),Orchestrator 本身是一个 LLM,它会根据用户输入动态生成任务计划,决定需要几个步骤、每步交给谁,计划本身也可以在执行过程中调整。最复杂的是自适应编排(Adaptive Orchestration),Orchestrator 不仅动态规划,还会根据 Worker 的执行结果实时调整后续计划,比如 Researcher 搜回来的信息不够,Orchestrator 会追加一轮搜索任务,而不是硬着头皮往下走。实际项目里,大多数场景用动态规划就够了,自适应编排虽然更强大但调试复杂度也高很多。

相对的,Worker Agent 就是「执行者」。每个 Worker 只关注自己那块,它不需要知道整体任务是什么,不需要知道其他 Worker 在做什么,只需要拿到属于自己的那部分指令,做完返回结果,然后退出。它的 context 是干净的,只装着和自己职责相关的信息。

用一个具体任务来走一遍完整流程,帮你真正理解 Orchestrator 是怎么工作的。假设用户说「帮我写一份 AI 行业竞品分析」:

这个流程最大的好处,是每个环节出了问题,你能精准定位。报告内容不够准确?可能是 Researcher 搜的信息不够好。分析逻辑有问题?可能是 Analyst 的对比维度不对。报告格式不符合要求?是 Writer 的输出问题。每个 Agent 职责清晰,排查不需要猜,顺着 Orchestrator 的调度记录一步步追下去就能找到根源。

去中心化方案:为什么「听起来更灵活」却很少在工程上用

去中心化方案:为什么「听起来更灵活」却很少在工程上用

去中心化的思路是没有总调度,多个 Agent 通过共享的消息队列或状态空间自行协商、直接通信。听起来很美好,像一个能自我组织的团队,不需要领导,大家自动配合,还更灵活。

但实际工程里会遇到什么问题?用一个具体场景来说明。

假设三个 Agent 在处理同一个任务:Agent A 在搜索信息,Agent B 也在搜索类似的信息,Agent C 负责汇总结果,但没有人统筹调度。这时候几个问题会同时出现:首先,没有人告诉 A 和 B 「你们各搜什么范围」,很可能两个人搜了大量重叠的内容,做了重复工作;其次,C 需要等 A 和 B 都搜完才能汇总,但没有人告诉 C「A 和 B 什么时候算搜完了」,C 不知道该等多久,也不知道有没有漏掉某个 Agent 的结果;再者,如果 A 中途出错了,没有中央调度者收到错误通知,B 和 C 可能还在正常运行,最后汇总出来的是一份不完整的结果,但系统甚至不知道这里出了问题。

总结下来,去中心化系统里这几类问题会频繁出现:任务分配没有协调、执行顺序没有保证、失败没有感知、没有人来确认「任务整体完成了」。类比一个没有项目经理的团队:每个人都很能干,但没有人协调时间节点和接口,最后交出来的可能是互不兼容的结果,而且没有人知道整体进度到底怎么样了。

这就是为什么去中心化方案更多停留在学术研究里探索,研究的是「AI 系统能不能实现自主协调」这个更宏观的问题。而生产环境里,几乎所有正经项目都选 Orchestrator 模式,因为可控、可追踪、出了问题能排查,这才是工程上真正需要的。

怎么做选型决策?

怎么做选型决策?

选型的逻辑其实可以用两个问题来搞定。

先问第一个问题:你的任务,Single-Agent 能搞定吗?如果任务流程明确、不太长、不需要多种专业分工,Single-Agent 就够了。架构简单、维护成本低、链路透明,不要为了「显得高级」而引入 Multi-Agent。

如果任务确实超出了 Single-Agent 的边界,再问第二个问题:你能接受系统行为不可控的风险吗?生产环境里这个问题的答案几乎一定是「不能」,所以就用 Orchestrator 模式。

实际工程里有一个很实用的策略叫渐进式演进:先用 Single-Agent 把系统跑起来,当你发现某个环节确实成为瓶颈了,比如 context 经常撑满、某类子任务质量不行,再把那个环节拆出来交给一个专门的 Worker Agent。不要一上来就设计一个五六个 Agent 的复杂系统,你可能连哪里是真正的瓶颈都还没搞清楚。从 Single-Agent 演进到 Multi-Agent 是一个自然的过程,而不是一开始就做的架构决策。

另外值得关注的一个行业趋势是 A2A(Agent-to-Agent)协议,Google 在 2025 年 4 月提出的开放标准。它要解决的问题是:不同团队、不同框架开发的 Agent 之间怎么互相通信和协作。之前每个 Multi-Agent 框架都有自己的通信方式,Agent 只能在同一个框架内协作。A2A 定义了一套标准化的通信协议,让不同来源的 Agent 在协议层面可以互相发现和调用,思路上很像微服务。A2A 在 2025 年 6 月被捐给了 Linux 基金会维护,IBM 的 Agent Communication Protocol(ACP)也已并入 A2A。不过这个协议目前还在较早期阶段,实际生态里「真正能即插即用跨框架调用」还没完全成熟,更多的是社区实现和示范项目,生产级的跨框架互操作仍在演进,长远看这个方向会深刻改变 Multi-Agent 系统的构建方式。

把三种方案放在一起对比,选型时一眼就能看清差异:

维度Single-AgentMulti-Agent(中心化)Multi-Agent(去中心化)架构复杂度低中高Context 压力全部压在一个 Agent各 Agent 独立管理,Orchestrator 只维护高层状态各 Agent 独立管理,但需要额外共享协调状态专业能力泛才,什么都做专才分工,各有专责专才分工,各有专责并行能力不支持支持子任务并行支持并行可控性高高,Orchestrator 统管低,难以统一调度调试难度容易中,按调度链路追踪难,行为不可预测工程实用性高高低,主要用于学术研究适用场景任务清晰、复杂度适中需要分工或并行的复杂任务学术探索场景

维度Single-AgentMulti-Agent(中心化)Multi-Agent(去中心化)

维度

Single-Agent

Multi-Agent(中心化)

Multi-Agent(去中心化)

架构复杂度低中高

架构复杂度

Context 压力全部压在一个 Agent各 Agent 独立管理,Orchestrator 只维护高层状态各 Agent 独立管理,但需要额外共享协调状态

Context 压力

全部压在一个 Agent

各 Agent 独立管理,Orchestrator 只维护高层状态

各 Agent 独立管理,但需要额外共享协调状态

专业能力泛才,什么都做专才分工,各有专责专才分工,各有专责

专业能力

泛才,什么都做

专才分工,各有专责

专才分工,各有专责

并行能力不支持支持子任务并行支持并行

并行能力

不支持

支持子任务并行

支持并行

可控性高高,Orchestrator 统管低,难以统一调度

可控性

高,Orchestrator 统管

低,难以统一调度

调试难度容易中,按调度链路追踪难,行为不可预测

调试难度

容易

中,按调度链路追踪

难,行为不可预测

工程实用性高高低,主要用于学术研究

工程实用性

低,主要用于学术研究

适用场景任务清晰、复杂度适中需要分工或并行的复杂任务学术探索场景

适用场景

任务清晰、复杂度适中

需要分工或并行的复杂任务

学术探索场景

🎯 面试总结

🎯 面试总结

这道题最容易犯的错误有三个,对应开头对话里踩的三个雷。

第一,选型标准不能只说「任务复杂就用 Multi-Agent」,要说出具体的三类场景:context 要撑爆了、需要不同专业分工、有子任务可以并行,不属于这三类就用 Single-Agent,盲目引入 Multi-Agent 只会增加系统复杂度,带不来对应收益。

第二,Multi-Agent 架构方案要主动提中心化和去中心化两种,而且要明确说出工程里几乎都选 Orchestrator 中心化模式,因为可控、可追踪、出了问题能顺着调度链路排查。

第三,去中心化「听起来灵活」但要能说清楚它的实际问题:任务分配没协调、执行顺序没保证、失败没有感知,这才是它在生产环境里不可用的根本原因。

对了,AI Agent的面试题会在「公众号@小宇宙面试笔记题」持续更新,林友们赶紧关注起来,别错过最新干货哦!