杭州程序员小林辞职开了一家小面馆。起初他坚信“一个人就是一支军队”:接单、备菜、煮面、算账全自己来。结果午市高峰时,他一边收钱一边煮面,还忘了3号桌的加辣要求。痛定思痛,他雇了收银员、配菜师、主厨和品控,小店一下从“手忙脚乱”变成“行云流水”。这个再平常不过的开店故事,恰恰就是多Agent协作(Multi-Agent)的缩影:一个人做不了的大工程,拆成多个“专才”各管一摊,再由一个“店长”统一调度。 在大模型时代,一个Agent就是一个会思考、能调用工具的AI助手。像“调研市场并生成行业报告”这种复杂任务,让单个Agent单打独斗,经常会漏步骤、跑偏题、上下文越用越乱。多Agent系统模仿人类团队的分工协作,让多个Agent分别担任“调研员”“分析师”“写作者”“审校员”,把任务流水线化地拆解、执行与汇总。本篇文章就以这家“多Agent餐厅”贯穿始终,从组织架构、岗位分工、协作策略、记忆通信讲到性能优化,最后落地到真实项目实战,帮你一步步建立对Agent工作流的完整直觉。

岗位关联

掌握多Agent协作,是从“会用AI写代码”进阶到“能设计AI团队”的分水岭,也是Agentic AI时代AI工程师的核心竞争力。

目录
  1. 可视化演示
  2. 认识多Agent——从一人餐厅到协作团队
  3. 协作架构——店长、后厨与微信群
  4. 角色分工——配菜师的锅铲不归主厨
  5. 协作策略——订单的流水与并行
  6. 记忆与通信——白板、传菜口与围裙口袋
  7. 性能优化——翻台率与成本账
  8. 实战展望——从单店到连锁
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示多Agent角色分工、通信协议与协作决策机制,展示Agent通过消息传递与协商达成共识,协同完成复杂任务。

本节配有交互动效(进入视口后自动加载,约 3KB)。

角色分工机制 规划者/执行者/审查者 任务分解为专业子任务 各Agent发挥优势协同完成复杂任务

认识多Agent——从一人餐厅到协作团队

小林的面馆故事还有一个更深的隐喻:他最初让“一个自己”同时承担七个岗位,本质上是个体能力的天花板——一个人再厉害,双手也只有两只。单Agent也是如此:一个LLM系统要依次完成意图理解、信息检索、方案生成、结果检查,上下文窗口有限,单次推理顾此失彼,复杂任务经常做到一半就“忘记”了前面的要求。

多Agent协作Multi-Agent,就是把“一个人的超级多面手”拆成“一群人的专业团队”:每个Agent是独立的AI单位,有自己的职责、记忆与工具,彼此通过消息协作。Agent类型也各有分工:执行型Agent(检索Agent、代码Agent)负责干活,决策型Agent(规划Agent、评判Agent)负责出主意,协调型Agent(编排Agent)负责派单。协作模式上,有接力式的流水线协作,也有围绕一个共享目标的并行协作。

不过,团队协作并非没有代价——多了沟通、同步和等待时间。我们用“协作加速比”来度量收益:

小林的面馆从1人扩张到4人,翻台率提高了不只4倍,但也新增了催单、传话、分工不清的摩擦成本。多Agent协作同理:专业分工是收益,协作开销是代价。合理控制Agent数量与沟通成本,餐厅才能真正蒸蒸日上。

η=TsoloTmulti=N1+(N−1)α\eta = \displaystyle\frac{T_{solo}}{T_{multi}} = \frac{N}{1 + (N - 1)\alpha}
这个公式说明:多Agent的效率不是简单的“人越多越快”,协作开销会让收益打折扣。
  1. η(协作加速比)多Agent相比单Agent的效率提升倍数。η大于1说明协作有收益,小于1说明协作是负优化。
    η=TsoloTmulti\eta = \frac{T_{solo}}{T_{multi}}
  2. T_solo 与 T_multi单Agent完成任务耗时与多Agent团队耗时的比值。
    TsoloTmulti\frac{T_{solo}}{T_{multi}}
  3. N 与 αN是Agent数量,α是协作开销系数,表示沟通、同步、信息传递占用的额外时间比例。分母中的 \((N - 1)\alpha\) 就是全部协作开销。
    N1+(N−1)α\frac{N}{1 + (N - 1)\alpha}

协作架构——店长、后厨与微信群

面馆变成餐厅后,小林开始琢磨组织结构。一开始他是“总指挥”,所有事情都要经过他——新来的配菜师连“能不能给3号桌加个蛋”都要跑来问他。后来大家建了个微信群直接沟通,结果一上午消息刷了几百条。最后他定下规则:加菜、换菜这类小事先自行解决,退单、投诉这类大事才上报店长。这就是三种协作架构的原型。

多Agent架构决定了消息如何在Agent之间流动。中心化架构(Centralized)中,一个编排Agent作为“大脑”统一调度所有成员,类似LangGraph中的Supervisor模式,优点是决策一致、过程可追踪,缺点是大脑容易成为瓶颈。去中心化架构(Decentralized)中,各Agent对等协商,类似AutoGen的GroupChat聊天组,灵活鲁棒,但话题容易漂移。混合架构则分层治理——高层定计划,底层自由协作,在真实项目中应用最广。

架构选择直接影响通信成本。如果每个Agent都要和其余所有Agent建立连接,链路总数是指数级膨胀的:

如果后厨10个人都在群里互相@,消息量会爆炸式增长——这就是N²通信问题。架构选择就是“设计餐厅的汇报关系”:谁向谁汇报、谁可以自主决策。好的架构让信息有序流动,坏的架构让人人都累得慌。

C=N(N−1)2C = \frac{N(N - 1)}{2}
后厨从5人变成10人,需要维护的“谁和谁能说话”的关系从10条涨到45条——这就是全互联通信的代价。
  1. C(通信链路总数)任意两个Agent之间都能直接通信时,系统需要维护的连接数量。
    C=N(N−1)2C = \frac{N(N - 1)}{2}
  2. N(N - 1)从N个Agent中有序地取两个,每个Agent要和其余N-1个连接,得到N(N-1)条有向关系。
    N(N−1)N(N - 1)
  3. 除以2A和B之间的链路只需一条,有向关系双向成对,所以折半。
    N(N−1)2\frac{N(N - 1)}{2}

角色分工——配菜师的锅铲不归主厨

新餐厅招人时,小林写的招聘启事特别细:配菜师负责洗切,主厨负责烹饪,品控负责试菜,传菜员只负责端盘子。没有明确职责的餐厅必然混乱。这份“岗位说明书”,就是多Agent世界里的角色定义(Role)。

技术上,角色定义通过System Prompt实现,让Agent清楚“你是谁、你要产出什么、你不该做什么”。角色分工带来三重好处:一是每个Agent专注单一目标,输出质量更高;二是职责边界清晰,避免两个Agent重复劳动;三是出问题时可以快速定位到具体环节。任务分配是角色分工的落地环节——编排器把大任务拆成子任务,再按“匹配度”路由给对应Agent。上下文管理则确保每个Agent只拿到与自身角色相关的信息,而不是被塞进全部对话历史。

任务路由并非随机分配,而是按照各Agent对任务类型的匹配度计算概率:

好的餐厅不允许配菜师跑去炒菜——分工明确,出品才能稳定。多Agent的角色定义,就是给每个AI打上清晰的“岗位说明书”,谁也别越界,谁也别缺席。

P(ai∣t)=exp⁡(wi⋅si)∑j=1Nexp⁡(wj⋅sj)P(a_i | t) = \frac{\exp(w_i \cdot s_i)}{\sum_{j=1}^{N} \exp(w_j \cdot s_j)}
这条Softmax公式,本质上是在说:任务t来了,看哪个Agent的“技能向量”与需求最匹配,匹配度越高的越可能被选中。
  1. P(a_i | t)在任务t到达时,选择第i个Agent承担该任务的概率。
    P(ai∣t)P(a_i | t)
  2. w_i · s_i(匹配度)权重向量与技能向量的点积,数值越大表示Agent i与该任务越匹配。
    wi⋅siw_i \cdot s_i
  3. exp()(指数放大)把匹配度映射为非负且拉开差距的分数,匹配度高的Agent获得压倒性优势。
    exp⁡(wi⋅si)\exp(w_i \cdot s_i)
  4. 分母归一化对所有Agent的指数分数求和,使所有概率加总为1,形成真正的概率分布。
    ∑j=1Nexp⁡(wj⋅sj)\sum_{j=1}^{N} \exp(w_j \cdot s_j)

协作策略——订单的流水与并行

餐厅的点餐流程通常是“下单→配菜→烹饪→出餐”,一步接一步,这是顺序编排。后来餐厅多了两个灶台,两张订单的烹饪可以同时进行——这就是并行协同。若顾客突然要求“少油少盐”,前厅要和后厨沟通调整,碰上两份订单抢同一个灶台,还得有人拍板。这些决策,就是协作策略要解决的问题。

多Agent协作策略规划的是“任务以什么顺序、由谁、在什么条件下执行”。顺序编排(Sequential)最简单,Agent A处理完交给Agent B,适合强依赖的流水线任务。并行协同(Parallel)把互相独立的子任务同时分发,显著提升吞吐量。协商机制(Negotiation)让Agent们交换信息、互相说服,弥合分歧。投票表决(Voting)则让多个Agent对候选方案表决,以多数意见做最终决策。

并行不是免费的午餐,Amdahl定律揭示了一个朴素的道理:

餐厅的终极追求是“让每个灶台都不闲着”,但下单和摆盘永远串行。多Agent策略优化的本质,就是在串行瓶颈与并行收益之间找平衡,而不是盲目加人。

S=1(1−p)+pNS = \frac{1}{(1 - p) + \frac{p}{N}}
无论你加多少并行Agent,加速比永远被“必须串行”的那部分任务锁死上限。
  1. S(并行加速比)并行化之后,任务总耗时缩短到的倍数。
    SS
  2. p(可并行比例)整个任务中可以并行执行的时间占比,取值0到1之间。
    pp
  3. 1 - p(串行比例)必须按顺序执行的部分,比如下单、摆盘、上菜。
    (1−p)(1 - p)
  4. p/N(并行耗时)可并行部分被N个Agent平分后占用的时间比例。当N无限大时,这一项趋近于0,加速比逼近极限 \(1/(1-p)\)。
    pN\frac{p}{N}

记忆与通信——白板、传菜口与围裙口袋

小林在厨房挂了一块白板,上面写着“3号桌不吃香菜”“7号桌在等打包”。传菜口是前厅与后厨唯一的物理通道,所有菜品消息都从那个小窗口递进递出。与此同时,每个厨师私人的围裙口袋里装着自己的小笔记本。这一套系统,完美对应了多Agent的记忆与通信设计。

多Agent的记忆分为共享记忆(Shared Memory)与私有记忆(Private Memory):白板是共享的,围裙口袋是私有的。共享记忆通常实现为一个公共消息池或全局缓冲区,让第五步的“调研结果”能被第八步的“写作Agent”直接引用。消息传递(Message Passing)则通过消息队列或Agent间直接调用,把上下文从一个Agent搬运到另一个。状态同步确保各Agent对“任务进展到哪一步”有共识,而信息隔离则划清界限:敏感信息如用户密码不进入共享白板,无关信息不污染单一Agent的推理。

记忆总量是实打实的Token成本,可以用预算公式表示:

白板写太满,后厨反而找不到重点——共享记忆要够用,私有记忆要安全,消息传递要精准。多Agent工程的记忆设计,直接决定成本与准确性,是整个协作体系的“信息底座”。

Mtotal=∑i=1N(Mishare+Miprivate)M_{total} = \sum_{i=1}^{N} \left( M_i^{share} + M_i^{private} \right)
系统总记忆消耗等于所有Agent的共享记忆与私有记忆之和——白板写得越多,围裙口袋塞得越满,账单就越贵。
  1. M_total(总记忆量)多Agent系统运行期间,所有Agent消耗的上下文Token总量。
    MtotalM_{total}
  2. M_i^share(共享记忆)第i个Agent写入公共区域、团队可见的记忆,如白板上的订单备注。
    MishareM_i^{share}
  3. M_i^private(私有记忆)第i个Agent仅自己可见的内部状态,如厨师笔记本里的独家配方。
    MiprivateM_i^{private}
  4. 对全部Agent求和把N个Agent的共享与私有记忆逐项累加,得到系统的整体开销与上下文占用。
    ∑i=1N(Mishare+Miprivate)\sum_{i=1}^{N} \left( M_i^{share} + M_i^{private} \right)

性能优化——翻台率与成本账

餐厅的利润公式其实很简单:翻台率乘以客单价减去成本。小林发现午市门口排长队,店里却有空桌,症结是“上菜太慢”。他改用预配菜(缓存)、增加一个灶台(并行)、失败菜品免费重做(重试策略),翻台率立刻上去了。多Agent系统的性能优化,同样是围绕延迟、成本、质量三个指标展开。

延迟优化靠并行化与结果缓存:把独立子任务同时下发,把重复查询的结果缓存复用。成本控制则要求精打细算——精简Agent角色数量、小模型处理简单子任务、复用中间结果,避免每个环节都调用最大最强的大模型。冲突解决需要明确的仲裁规则:两个Agent给出矛盾结论时,由编排器按预设策略裁决,或触发重试。质量评估则引入评分与反馈闭环,对每个Agent的输出进行可量化的验证,形成“生成→评判→修正”的增强回路。

所有优化最终都要落到成本账上:

餐厅的最终目标不是“人越多越好”,而是“每桌都赚钱”。多Agent优化同样追求性价比——在可接受的延迟与质量范围内,把成本压到最低。这是从“Demo能跑”走向“生产可用”的关键一步。

Ctotal=∑i=1N(ni×pi)+cretry×rC_{total} = \sum_{i=1}^{N} \left( n_i \times p_i \right) + c_{retry} \times r
总成本 = 每个Agent消耗的Token数与单价的乘积之和 + 重试造成的额外成本。
  1. C_total(总成本)整个多Agent任务消耗的综合成本,单位是费用而非Token数。
    CtotalC_{total}
  2. n_i × p_i(第i个Agent的Token费用)n_i是该Agent消耗的Token数量,p_i是每个Token的单价,两者相乘得到该Agent的花费。
    ni×pin_i \times p_i
  3. 对所有Agent求和把N个Agent各自的Token费用累加,得到基础成本。
    ∑i=1N(ni×pi)\sum_{i=1}^{N} \left( n_i \times p_i \right)
  4. c_retry × r(重试成本)单次重试所需的成本乘以重试次数,代表出错返工带来的额外开销。
    cretry×rc_{retry} \times r

实战展望——从单店到连锁

面馆火了之后,小林要开第二家店。他不再亲自上阵,而是把菜品配方、出餐流程、服务标准写成SOP手册,培训一个店长去复制。这个“手册化、框架化”的过程,正是多Agent从实验走向工程的关键一跃。

目前典型的多Agent框架各具特色:AutoGen主打对话式多Agent协作,让Agent们在群聊中商讨问题;LangGraph用有向图定义工作流,节点是Agent、边是状态转移,可编排可回滚;CrewAI以“角色+任务”为核心,让每个Agent像员工一样认领任务。项目实践上,智能客服、数据分析管线、复杂代码生成都已大量采用多Agent架构。常见故障也很有代表性:Agent陷入无意义对话死循环、幻觉在传递中被一步步放大(“以讹传讹”)、Token成本失控超出预算。工程上需要设置超时上限、最大迭代次数、信息摘要压缩和事实核查节点来兜底。

如果系统中某个环节需要“多个Agent分别给出方案,再择优采用”,整体成功率会显著提升:

连锁餐厅靠的不是某一位大厨,而是可复制的系统。多Agent正从“有趣的实验”走向“企业级生产基础设施”,谁先掌握协作编排的工程能力,谁就拿到了下一代AI应用的入场券。

Rmulti=1−∏i=1N(1−ri)R_{multi} = 1 - \prod_{i=1}^{N} (1 - r_i)
只要每个Agent独立给出候选方案,且最终至少一个方案可用,系统成功率就会随Agent数量上升——这就是“多样性红利”。
  1. R_multi(系统总成功率)整个多Agent决策链路最终取得可用结果的概率。
    RmultiR_{multi}
  2. 1 - r_i(第i个Agent的失败率)Agent i 产出不可用方案的概率。
    (1−ri)(1 - r_i)
  3. 连乘积(全部失败概率)若各Agent相互独立,所有方案同时不可用的概率等于各自失败率的乘积。
    ∏i=1N(1−ri)\prod_{i=1}^{N} (1 - r_i)
  4. 1 - 乘积(至少一个成功)用1减去“全部失败”的概率,得到至少一个Agent成功的概率,即最终系统成功率。
    1−∏i=1N(1−ri)1 - \prod_{i=1}^{N} (1 - r_i)

AI 应用场景

智能客服工单分诊系统

阶段:端到端项目实战、系统部署运维

解决的问题:传统客服系统靠关键词规则分诊,遇到“退款没到账”这种模糊描述就乱派单。多Agent方案让“前厅接待Agent”先理解用户意图,“分类Agent”打标签,“退款专家Agent”查询订单并调用支付API,“质检Agent”复核回复是否友善完整,把一条龙服务做到闭环。

具体案例:某电商平台上线多Agent工单系统后,分诊准确率从68%提升到91%,一条工单的平均处理时长从40分钟降到12分钟。用户说“退款没到账”,系统自动识别为退款查询,转派给退款专家Agent,它在毫秒级查完订单状态后调用支付接口触发补单,最后由质检Agent确认话术无误才发送给用户。

市场研究报告自动生产线

阶段:数据采集、内容生成、质量审核

解决的问题:人工写行业报告要查几十个网站、整理数据、反复核对,耗时一周。多Agent流水线上,“调研Agent”并行抓取市场数据,“分析师Agent”做趋势分析,“写作者Agent”生成报告初稿,“审校Agent”核查数据来源并修正事实错误,最终汇总为成稿。

具体案例:一家咨询公司用5个Agent搭建了“周报工厂”:每周五中午自动触发,4小时后产出20页竞品动态周报,包含数据图表和风险提示。过去需要3名分析师全职一天的工作,现在由AI团队接力完成,分析师只负责最后的策略解读。

游戏NPC群像系统

阶段:Agent行为设计、状态同步

解决的问题:传统NPC对话靠脚本树,玩家问两句就没下文。多Agent方案给每个NPC一个独立的“性格Agent”,并共享一个“小镇世界观记忆库”:铁匠Agent知道镇上刚发生盗贼事件,会主动提醒玩家注意安全;酒馆老板Agent消息灵通,会透露盗贼线索。各Agent通过共享记忆保持世界观一致,又通过私有记忆维持性格差异。

具体案例:某开放世界游戏在NPC系统中引入多Agent协作后,玩家对NPC对话的满意度评分从71分升至89分。NPC之间甚至会互相转述玩家的事迹——玩家帮了铁匠,第二天酒馆老板会提起这件事。

Python 演示

python72 行
import randomimport time  class BaseAgent:    def __init__(self, name, role):        self.name = name        self.role = role        self.task_count = 0        self.message_count = 0     def process(self, task):        time.sleep(random.uniform(0.05, 0.12))        self.task_count += 1        return "[{}]".format(self.name)     def send(self, receiver, message):        self.message_count += 1        return receiver.receive(self.name, message)     def receive(self, sender, message):        self.message_count += 1        return "{}<-{}:{}".format(self.name, sender, message)  class Worker(BaseAgent):    def process(self, task):        time.sleep(random.uniform(0.08, 0.16))        self.task_count += 1        return "{}处理了[{}]".format(self.name, task)  class Inspector(BaseAgent):    def process(self, task):        time.sleep(random.uniform(0.05, 0.10))        self.task_count += 1        return "{}验收了[{}]".format(self.name, task)  class ShopManager(BaseAgent):    def __init__(self, name, member_list):        BaseAgent.__init__(self, name, "manager")        self.member_list = member_list     def dispatch(self, order):        result = self.process(order)        for member in self.member_list:            result += " -> " + self.send(member, result)        return result  def main():    prep = Worker("配菜师", "prep")    cook = Worker("主厨", "cook")    critic = Inspector("品控官", "inspector")    boss = ShopManager("店长", [prep, cook, critic])     orders = ["订单1:红烧肉", "订单2:清蒸鱼", "订单3:麻婆豆腐"]    for order in orders:        final_result = boss.dispatch(order)        print(final_result)        print("---")     all_workers = [prep, cook, critic, boss]    total_tasks = sum(a.task_count for a in all_workers)    total_msg = sum(a.message_count for a in all_workers)    print("总任务数:", total_tasks)    print("总消息数:", total_msg)  if __name__ == "__main__":    main()
目的:用Python模拟一个“店长编排、三人分工”的多Agent订单处理流水线,直观展示任务传递、消息通信与结果汇总的完整流程。
  1. class BaseAgent:定义所有Agent的公共基类,相当于餐厅员工的“岗位手册”,包含名字、角色、任务计数和消息计数。
  2. class ShopManager(BaseAgent):店长Agent继承基类,额外承担编排职责,是中心化架构里的“大脑”。
  3. self.member_list = member_list保存所有下属Agent的引用列表,方便后续按顺序派单。
  4. def dispatch(self, order):编排核心方法:接收一笔订单,分发给每一位团队成员处理。
  5. result += " -> " + self.send(member, result)关键协作动作:把当前进度消息发送给下一个成员,形成接力式的流水线。
  6. total_msg = sum(a.message_count for a in all_workers)统计整个团队的通信总量,帮助我们直观感受多Agent协作中的消息开销。

常见误区

误区看到多Agent系统强大,就觉得Agent数量越多效果越好,把一个简单任务拆成十几个Agent,结果又慢又贵还经常出错。

正解多Agent的收益与数量不是线性关系,通信链路按N²增长,协作摩擦也随之放大。正确做法是“按需设岗”——任务需要几个角色就配几个Agent,像餐厅根据客流定岗,高峰才加兼职,而不是让20个厨师挤进一个小厨房。

为何常见:多Agent架构图总是画着密密麻麻的节点,让人直觉上认为“节点多=能力强”,加上“人多力量大”的朴素的直觉,忽视了协作成本。

误区既然多Agent这么强,所有AI应用都应该上多Agent架构,单Agent已经过时了。

正解简单任务(如单轮问答、短文本改写)用单Agent更高效。多Agent有编排成本、通信成本、失败重试成本,这些开销需要任务本身的复杂度来摊销。杀鸡不用牛刀——让一个面馆转型成满编餐厅团队,前提是有那么多顾客。

为何常见:这是典型的“锤子效应”:学会了一个新工具,看什么任务都像钉子,缺少了对任务复杂度的量化评估意识。

误区以为把全部上下文、全部中间结果都传给其他Agent,协作一定会更准确,信息越全越不容易出错。

正解过度通信会导致上下文爆炸、Token成本飙升、无关信息污染推理。好的设计是“按需传递”——像传菜口只传成品菜,不传厨房噪音;用精简摘要或结构化消息替代全量复制,让每个Agent只看到与自己职责相关的信息。

为何常见:工程师习惯“信息越多越保险”的直觉,却忽略了模型的注意力是有限的,上下文窗口不是无限仓库。

误区只要搭好框架,多Agent就会像自动化流水线一样永不犯错,全程无人值守地完成所有任务。

正解真实生产环境必须有超时、重试、最大轮次、人工审批等兜底机制。Agent会陷入无意义对话循环、会互相抬杠、会把幻觉层层传递放大。餐厅再成熟,也要有店长随时处理纠纷和投诉,还要有食品安全检查。

为何常见:演示Demo通常会把失败过程剪辑掉,只展示成功路径,让人误以为Agent系统天然可靠。

误区觉得多Agent就是“循环调用好几遍大模型”,和单Agent没有本质区别,只要会调API就会做多Agent。

正解多Agent的核心难点在架构设计、角色定义、记忆管理、策略编排,而不在于底层调用了几个模型。同一套LLM API,不同的编排方式效果天差地别。调用模型是“买菜”,多Agent协作是“经营一整家餐厅”。

为何常见:从单Agent迁移时,视角还停留在“模型调用”的层面,没有上升到“系统设计”的高度,低估了协作机制的复杂度。

面试题

Q1. 采用多Agent协作处理复杂任务的核心出发点是什么?

单选题 · easy

  • A.让系统架构显得更加高级
  • B.用多模型摊薄算力成本
  • C.拆解复杂任务并行处理← 正确答案
  • D.取代全部人工审核流程

答案:C。多Agent的核心是把复杂任务拆成多个子任务,交给各司其职的Agent并行或协作完成,就像餐厅招工是为了分工而非显摆排场。A是虚荣心,B是伪需求,D只是附带效果而非出发点。

Q2. 中心化多Agent架构的最突出特点是什么?

单选题 · easy

  • A.所有Agent地位完全平等
  • B.由编排Agent统一调度← 正确答案
  • C.各Agent自行决定行动
  • D.Agent之间无任何通信

答案:B。中心化架构中,编排Agent就像店长,所有任务由它统一拆解和派发。A描述的是去中心化,C是无政府状态,D在协作系统里不可能也不应该存在。

Q3. N个Agent两两互联的通信链路数量级是?

单选题 · mid

  • A.随N线性增长
  • B.恒等于二倍N条
  • C.N(N-1)/2条← 正确答案
  • D.随N指数级膨胀

答案:C。每个Agent和其余N-1个Agent连接,得到N(N-1)条有向关系,折半后就是两两互联的无向链路数。后厨人数翻倍时,消息关系从10条涨到45条,这正是N²通信问题的来源。

Q4. 在多Agent系统中,Agent的角色定义主要依赖什么实现?

单选题 · mid

  • A.扩大基座模型参数
  • B.编写系统提示词设定← 正确答案
  • C.更换更强的模型供应商
  • D.增加更多任务训练数据

答案:B。角色通过System Prompt设定,相当于给Agent发“岗位说明书”,让它知道自己的职责边界。改模型参数、换模型、加训练数据都是更重的手段,且不能精确指定“这个Agent只负责切菜”。

Q5. 下列哪些属于多Agent的常见协作策略?

多选题 · mid

  • A.顺序编排流水作业← 正确答案
  • B.并行协同提高吞吐← 正确答案
  • C.投票表决解决分歧← 正确答案
  • D.无限重试直至成功

答案:ABC。顺序编排(接力式流水线)、并行协同(同时处理独立子任务)、投票表决(多方案择优)都是设计好的协作策略。无限重试是工程故障不是策略,它只会让成本和延迟无限失控。

Q6. Amdahl定律在多Agent系统中揭示了什么?

单选题 · hard

  • A.Agent越多加速一定越快
  • B.串行部分决定性能上限← 正确答案
  • C.通信开销可以完全忽略
  • D.并行比例与N无关紧要

答案:B。加速比 S=1/((1-p)+p/N),当N趋向无穷时,S趋向于1/(1-p),串行部分就是天花板。就像餐厅点单和上菜无法并行,再加灶台也突破不了这个上限。

Q7. 多Agent记忆管理中进行信息隔离的意义有哪些?

多选题 · mid

  • A.防止上下文互相污染← 正确答案
  • B.保护隐私敏感数据← 正确答案
  • C.降低不必要的Token消耗← 正确答案
  • D.彻底消灭Agent间通信

答案:ABC。信息隔离避免A Agent的闲聊内容影响B Agent的核心推理,保护密码等敏感数据,也减少无谓信息传递带来的Token开销。但隔离只是“限制通信范围”,不可能也没必要彻底消灭通信。

Q8. 多Agent中“工具调用”的主要作用是什么?

单选题 · easy

  • A.让Agent能对接外部系统← 正确答案
  • B.代替全部模型训练过程
  • C.直接修改模型的参数权重
  • D.充当最终答案的唯一来源

答案:A。工具调用让Agent访问数据库、API、计算器等外部系统,就像厨师使用烤箱和切菜机。它不改变模型本身(B、C错误),也不取代最终答案的生成逻辑(D错误)。

Q9. 下面哪些属于多Agent成本控制的有效手段?

多选题 · hard

  • A.精简Agent角色数量← 正确答案
  • B.小模型处理简单子任务← 正确答案
  • C.缓存高频重复的查询结果← 正确答案
  • D.无条件增加重试次数

答案:ABC。精简角色能减少通信链路,小模型处理简单判定能省Token,缓存中间结果能避免重复计算——这三者是实打实的省钱。无限重试只增加成本不提高质量,是反面操作。

Q10. 以下哪个现象最能体现多Agent的“幻觉传递”?

单选题 · hard

  • A.请求超时不断重试
  • B.上游编造下游沿用← 正确答案
  • C.上下文长度发生溢出
  • D.模型温度参数过高

答案:B。“幻觉传递”指一个Agent编造了不存在的“事实”,下游Agent不核查就当作依据继续推导,类似以讹传讹。这是多Agent特有的故障放大链条,需要在节点间加入事实核查机制来阻断。A是网络问题,C是资源限制,D是生成参数问题。