一个助手检查海报时遗漏了报名截止时间。于是我们加一位计划者、一位搜索者、一位复核者,期待三者相互补漏。结果也可能是:计划者没把截止时间列进目标,搜索者依计划跳过,复核者只检查计划上的项目,三个人一致宣布完成。

增加步骤和角色,确实能带来更宽的探索与更细的检查,也会增加信息丢失、等待和错误传播。本章沿着任务依赖拆解这些收益与代价。核心问题不是“用几个Agent”,而是新增的一步究竟提供了什么独立价值。

1.计划是对未来动作的假设

计划可以是一列步骤,也可以是一张依赖图。核对活动海报时,提取海报字段与查主办方最新公告可以同时进行;比较差异必须等两者完成;生成结论又依赖比较结果。箭头表达“后一步需要前一步的产物”,不是装饰性的顺序。

这种表示能暴露缺口。假如计划中有“输出一致”,却没有任何节点负责取得官方证据,问题在执行前就已经存在。把目标细化到可检验的中间产物,比写“认真、全面、深入地检查”更有用。

但计划不是事实。它基于开始时有限的信息:也许官网只有图片,也许活动名称变化,也许报名页跳转到了新域名。执行后的观察应更新计划。遇到新障碍还机械地照旧推进,只会把漂亮的计划变成过时的假设。

计划还不能越过目标与权限。发现海报错误,可以增加核查步骤;未经授权,不能把计划扩成“联系主办方并公开更正”。合理重规划改变完成路径,不擅自扩大可以采取的行动。

2.串行与并行怎样改变等待

构造一个教学流程:读取海报需2个时间单位,查官方公告需5个单位,比较需3个单位,最终整理需1个单位。单位没有具体秒数,不是模型实测。

如果四步完全串行,总时间为2+5+3+1=11。若前两步独立并行,它们一起开始,需要等较慢的公告查询完成,即max(2,5)=5;之后再比较和整理,理想总时间为5+3+1=9。

max表示取较大值。它提醒我们,并行不是把2和5的平均值作为等待。两份资料都必需时,后续只能等最后一份到达。9也只是忽略启动、传输、排队与通信成本的理想值。

假设协调多花2个时间单位,总等待又回到11。即使墙上时钟时间没有缩短,总体工作量还包括额外协调。对很小的任务,拆给多位协作者可能没有收益;对耗时且独立的资料研究,并行则可能很值得。

33|计划、搜索与多Agent:多做几步为何也会更脆弱:图1

图1|条段长度按相同的时间比例绘制,均为教学单位。依赖箭头要求两份资料到齐才比较;关键路径5+3+1=9。下方列串行11与额外协调2的账,不把协调当作免费。

还应看到“关键路径”:决定总时长的最长依赖链。本例是查公告5、比较3、整理1,总计9。把海报读取从2优化到1,整体仍是9;若把公告查询从5降到4,整体才会降到8。优化一个不在关键路径上的小步骤,可能对用户等待没有可见影响。

这里的“独立”还隐含了资源条件:两步可以同时运行,不争抢唯一的工具名额,也不会相互改写对方要读的数据。任务图中没有数据依赖,只说明不必等待对方的产物;它不自动证明外部操作没有冲突。若同时只允许一个读取请求运行,两步仍要排队,9就不再是可达到的时间。

3.多Agent不是MoE,也不必是多种模型

第12章的MoE在模型内部选择前馈专家,处理的是隐藏向量。这里的多Agent发生在系统层:每个角色拥有一定任务、上下文和工具,交接的是消息、证据或文件。它们可以使用同一种底层模型,也可以使用不同模型。

给同一个模型分别贴上“研究员”和“审核员”的标签,可以改变提示与关注范围,却不自动创造独立知识来源。两者可能共享训练偏差,也可能被同一错误资料误导。角色名不能替代实际职责与证据差异。

一种组织方式是中心协调者分派任务,再汇总结果;另一种是角色之间移交控制权;还可以让一个主Agent把另一个Agent当作工具调用。谁有权决定下一步、谁维护全局状态、谁负责最终验证,必须明确,不能以为“大家都会负责”。

多Agent可能通过专业上下文减少干扰,例如一位只核实日期,一位只检查图中文字;也可能通过独立搜索找到不同证据。收益来自信息和检查方式的互补,不是对话人数本身。

把职责写成输入与产物,可以检查这种互补是否存在。仍用虚构海报任务:资料核验者拿到活动名和主办方范围,交回当前公告的原文片段、适用日期、页面版本及缺证项;字段核对者拿到海报和这份证据,交回逐字段差异,并标明哪些判断依赖哪个来源。协调者负责把两份产物合并成最终状态。

这相当于模块的输入输出契约:后一步需要的不是一句“我查好了”,而是一份能支持比较的证据。如果两位角色都只读同一旧公告,改角色名没有增加信息;如果第二位只检查第一位的措辞,版本错误也可能原样通过。分工是否有价值,要看新增了哪份观察或哪种能发现具体错误的检查。

4.为什么一致意见仍然可能全错

设三位评审各有80%的概率判断正确。先作非常强的教学假设:对同一道二选一问题,各自判断独立,错误不会相互影响。多数投票正确有两类情况:三人全对,或恰好两人对。

三人全对的概率是0.8×0.8×0.8=0.512。恰好两人对,有三种“谁错了”的位置,每种概率0.8×0.8×0.2=0.128,合计0.384。两类相加为0.896,即89.6%。

这个数字很漂亮,却高度依赖假设。如果三个人总是依据同一份过时公告,且在相同题目上一起对、一起错,多数投票仍只有80%,没有上述提升。若后两人先看到第一人的答案,他们还可能被带偏,连原本的差异都消失了。

我们因此要区分独立角色与独立证据。更换提示词但使用同一来源,可能只获得表达差异;使用最新原始公告、实际报名页面和独立时间核对,才可能补充不同信息。即使来源不同,也要追溯是否都抄自同一份旧稿。

33|计划、搜索与多Agent:多做几步为何也会更脆弱:图2

图2|二元判断、各人正确率80%且相互独立时,多数正确由“全对”和三个“恰有两人对”的互斥事件组成,合计89.6%。下方的共同失败对照中三人总是同对同错,准确率仍为80%。不同角色或不同模型不自动满足独立条件。

此外,多数票主要适用于可聚合的判断。三份互不相同的文章不能靠逐字投票变成好文章;三个合法排班也不必选最常出现的一个。聚合方式应符合任务结构,而不是把“投票”当成统一答案。

5.把检查放到真正会失败的地方

用一个更具体的例子比较三种复核。海报写14:00,旧公告也写14:00,最新公告改为15:00。第一种方法让原模型重新阅读已有材料,它可能发现内部矛盾,但如果输入里根本没有新公告,就没有凭空知道更改的可靠依据。

第二种方法请另一模型评价原答案。若它得到同样的旧材料,也可能赞同14:00;若任务提示明确要求检查来源日期,它至少可能指出证据不足。差别在检查标准是否覆盖失败模式。

第三种方法直接读取最新官方公告,加入新的可核查观察。它能纠正过时问题,但也要确认活动身份、公告日期和时区,避免拿到同名活动的更新。外部证据不是天然无误,只是提供了与原答案不同的检验路径。

一个好的复核任务应说明输入、检查标准和期望输出。例如“核对结论中的每个时间是否有当前主办方来源;报告冲突和缺证项”,就比“请确认这份答案很好”更容易发现问题。若复核者只能给通过或不通过,没有列出依据,协调者也难以定位应修哪一步。

6.搜索与重规划怎样接在一起

第21章已经展示了搜索树:保留多个候选状态、扩展、评分、剪枝。放进Agent系统后,分支可以是不同资料路线或不同任务分解,不只是不同文本答案。

例如查不到活动地点,可以尝试主办方公告、场馆活动页或报名页。三条路线未必都要走到尽头;如果一条提供了明确且足够新的证据,其他路线可能用于交叉确认,也可能因价值很低而停止。

这里要区分“候选路线没有信息”和“目标事实不存在”。搜索结果为空,可能是关键词不对或资料未被索引,不等于活动没有地点。把检索失败写成事实结论,是状态更新中常见的错误。

ReAct原始研究把语言推理与环境动作交替组织,让模型利用观察继续行动。它展示了一种连接推理和行动的研究方法;并不是任何写上“ReAct”的提示都会获得可靠计划与正确工具结果。ReAct原论文

Tree of Thoughts研究则把中间思考片段当作可以探索、评价和回退的状态。在读这类研究时,要看任务、搜索宽度、评价方法和预算,不能只从名称推断适用于所有开放世界任务。Tree of Thoughts原论文

评价分支的标准也会影响搜索结果。如果只奖励回答自信或篇幅完整,搜索可能反复挑中最像正确答案的错误分支;增加候选越多,还可能越容易碰到评分者偏爱的漏洞。可以先用可核查事实排除不成立的路线,再比较覆盖范围和资源消耗;有争议的判断保留为未确认,不因它得分高就提升为事实。

搜索同样需要停止条件。新分支是否有希望补上一个具体缺证项,比“还能再想一轮”更有判断价值。已有证据满足任务时应结束;剩余路线无法在预算与权限内解决时,应报告缺口。开放探索并不要求无限扩展,每个新增分支都应说明它要消除哪一种不确定性。

7.通信是信息处理,也是一种损失来源

把一份长报告交给协调者时,子任务常只返回摘要。摘要能节省上下文,却可能删掉关键限定:“仅适用于线上报名”“地点待最终确认”“此页是历史存档”。如果这些条件在传递时消失,汇总者会得到看似确定但实际过强的事实。

因此交接内容应包含结论、来源、时间、适用条件、未解决的问题,以及实际完成了什么。不要只交“全部正常”。对于高影响结果,协调者还需能回到原始证据,而不是把子任务回答当成不可质疑的事实。

共享状态也会引入冲突。两位协作者同时修改同一结论,一位依据新公告写南厅,另一位依据旧公告改回北厅,最后保存的内容不一定最新。版本检查、单一写入负责人和明确合并规则,都是协作系统的一部分。

还要区分内部共享记录与外部共享对象。假设另一个任务已获准修订海报,甲负责地点、乙负责时间:两者都读取同一旧版,甲保存“南厅+14:00”,乙随后整页保存“北厅+15:00”,甲的地点修改就丢失了。职责字段不同,仍可能写到同一外部对象。可以先让工作者只交差异,由一个执行者合并后提交;提交时还要由服务检查预期版本,避免覆盖其他人的新修改。内部只有一个合并者,并不能独自锁住外部世界。HTTP的条件请求提供了这类防覆盖机制:服务在写入前检查目标是否仍符合指定条件,而不是只在客户端先看一眼。RFC 9110条件请求

看一条实际交接怎样变弱。教学原文是“线上报名入口L可用;现场报名未核实”,若摘要只剩“报名已核实”,就删掉了适用范围,把未知变成确定。完整交接可以很短:“L已打开;仅线上;现场未知;来源报名页v2”。短消息仍要携带限制,不是越长越安全。

图3再把并发冲突接到这条消息后:两位工作者提交证据提议,只有协调者合并当前状态。新旧公告不按消息到达先后决定胜负,而按同一活动、适用时间、明确修订关系判断;无法判定时保留冲突。版本标记用于发现“我根据旧状态做了修改”,不代替证据本身的适用性检查。

33|计划、搜索与多Agent:多做几步为何也会更脆弱:图3

图3|上半部用短消息展示摘要丢失“仅线上、现场未知”的后果;下半部让新旧证据进入一个合并点,保留v2南厅与v1被替代的记录。v1/v2是已确认前后修订关系的教学标识,不是只比较任意页面编号。

重复劳动是另一笔成本。如果两个Agent不知道对方已经查过同一个页面,可能反复访问并反复总结。合理分工需要明确边界,同时保留少量有目的的重复核验。完全不重叠未必安全,毫无目的地重叠又浪费资源。

通信规模也会随组织方式改变。若有四位协作者,两两之间各建立一条无方向沟通通道,需要4×3÷2=6条;若所有人只经一位协调者交换,四位工作者与协调者之间是4条。前者便于直接讨论,后者便于保持统一状态,却可能让协调者成为瓶颈。这里数的是潜在通道,不是实际消息数;前者共有4个节点,后者是4位工作者加1位协调者,共5个节点。这是两种拓扑的计数例子,不是总人数、成本相同的受控性能比较。若固定总人数为5,全互联才是5×4÷2=10条,与5节点星型的4条处于同一人数口径。

更多通道不一定带来更多有用信息。如果每条消息都重复同一结论,读写成本上升,证据覆盖却没变化。设计协作时,可以先列出谁必须知道哪一项结果,再只传递必要内容;同时保留原始来源,避免精简消息时丢失限定条件。

8.公开多Agent案例怎样解释

Anthropic公开介绍过面向研究任务的多Agent系统,由主导Agent分派并行研究,并总结协调、工具设计与评测经验。这个案例说明分散信息收集可以适合并行组织,也强调更高token消耗和协调需求。多Agent研究系统工程说明

我们不把其特定系统结果转换成“任意任务多Agent必胜”的规律。研究型问题通常允许拆成相对独立的线索;需要紧密共享状态的任务,则可能花大量时间同步。不同系统的模型、提示、工具与预算也不同,不能只把Agent数量当成实验变量。

最稳妥的做法是保留简单基线。比较一个Agent加外部核验、多个Agent并行研究与固定工作流,记录成功率、延迟、总成本和失败类型。若复杂方案主要让输出更长,而没有减少关键错误,就没有充分理由继续扩展。

本章练习

题目

问题1|找到关键路径

读取海报2单位、查公告5单位,两者独立;比较3单位依赖两者,整理1单位依赖比较。忽略协调,算并行总时间;分别把海报读取缩至1、把公告查询缩至4,总时间各变成多少?

问题2|多数票的前提

三位评审判断同一道二选一问题,每位正确率80%。在相互独立时,列出多数正确的两类事件并算总概率;若三人永远同对同错,又是多少?

问题3|交一份能核验的记录

工作者只读了历史存档v1,没有找到更新公告,回复“没有改期,报名正常”。请改写为最小交接记录,保留已做的事、来源、限制与未知,并说明协调者是否能据此判整个任务通过。

问题4|分工独立,写入也独立吗

甲乙获准分别修订同一海报的地点与时间,都先读到“北厅+14:00”。甲整页保存“南厅+14:00”,乙随后整页保存“北厅+15:00”。最后丢了哪项修改?为什么分工不同仍有冲突?给出一种保留两项修改、并检查外部新变化的提交方式。

思考提示

提示1|对应问题1

先列后续必须等待的产物,再找最长依赖链。

提示2|对应问题2

“恰有两位正确”有三种人选,不能只数一种。

提示3|对应问题3

“没找到更新”是搜索过程的结果。把这个结果和活动有没有更新分开。

提示4|对应问题4

区分任务负责的字段、工具实际写入的范围,以及读取后可能改变的目标版本。

参考答案与解析

答案1|对应问题1

原并行时间max(2,5)+3+1=9。只把海报缩至1,仍为9;只把公告缩至4,则为8。比较要等两份资料都到齐,海报读取不是当前关键路径。

答案2|对应问题2

全对概率为0.8³=0.512;恰有两位对的概率为3×0.8²×0.2=0.384,总计0.896,即89.6%。若三人永远同对同错,多数票与任何一位结果相同,仍为80%。各自80%的边际正确率,不能单独证明89.6%。

答案3|对应问题3

可写:“已读主办方历史存档v1;只确认该版本所载时间,未找到当前更新公告;报名页尚未打开,链接状态未知;需要继续核实现行版本与报名入口。”协调者不能据此判整个任务通过:旧档案与检索未命中都不能证明没有改期,报名可用也缺少实际读取证据。等义、明确保留这些限制的答案均可。

答案4|对应问题4

甲的“南厅”丢失,最后为“北厅+15:00”。乙虽只负责时间,整页写入仍携带旧地点,所以两个动作共享写入目标。可以由甲乙提交各自字段差异,再由一个执行者合并成“南厅+15:00”,提交时要求服务验证目标仍是预期版本;若版本已变,重新读取并核对冲突,不能直接覆盖。等义的条件更新方案也可;仅在内部设协调者、却不检查外部版本,仍不足以防止其他写入者的变化。

下一章

搜索和协作会把更多外部文字送进系统。若网页里的文字不再只是事实,而是偷偷要求模型改变目标或泄露资料,原来的循环会发生什么?第34章追踪提示注入怎样跨越信任边界,以及系统应在哪些位置挡住它。