Agent 工程实践 / 12 · 共 12 篇

Agent 工程实践 · 12

多 Agent 协作:信息交接与协调成本

多 Agent 协作 / 上下文、证据与共享状态

多个 Agent 分工时,需要明确每份上下文能看到什么证据、修改哪个版本,以及何时停止交接。

分工的收益要与协调成本一起比较。共享目录不等于共享记忆,版本校验也不能代替合并与复验。

查看交互演示 ↓

第二个 Agent 带来了什么信息?

实现者声称最大值函数已经修复,审核者只读这份摘要,也可能认定完成。若审核者拿到原始约定并执行输入 [-5, -2],就能看到从零初始化的实现返回 0,而正确预期是 -2。这里真正增加的检查依据,是原始用例和执行结果。

让审核者换一个角色名称,并不会自动带来这种证据。相同资料上的不同推理可能发现问题,但不能将一致意见当作独立验证。应明确审核者能看到哪些原件、能运行哪些工具,以及哪些约束由程序检查。

上下文分开了,文件也分开了吗?

两个 Agent 可以各有一份对话,却同时读写同一个目录。实现者与审核者的记忆没有自动同步,共享文件却可能立即影响对方。需要隔离修改时,应明确文件所有权,或使用独立工作区;需要共同编辑时,应增加读取版本与提交校验。

交接包至少写明任务编号、目标、输入引用及版本、允许修改的范围、预算、截止条件和预期产物。返回时保留结论、输出版本、验证证据与未解决问题。共享路径只是定位信息,不能替代“对方已经读取了哪个版本”的确认。

写入冲突与并行收益,都要实际核对

示例中两份工作都从文件 v1 出发。A 提交后,当前文件变成 v2;B 如果直接提交基于 v1 的完整副本,就会覆盖 A 的修改。对照读取版本可以拒绝 B 的陈旧写入,接下来仍要重新读取、合并和复验。版本号或内容哈希负责发现变化,不负责理解两份修改的含义。

边界需要确认的事实
任务分派子任务是否可独立完成,输出是否有明确责任人
审核交接原始约定、测试依据与当前版本是否齐全
共享写入读取版本是否仍是当前版本,冲突由谁合并
结果汇总结论能否对应来源,分歧和失败是否保留
停止条件预算是否到限,阻塞时向谁返回什么证据

为什么增加并行仍可能更慢?

对可独立执行的两个子任务,串行工时可以写为 A+B,并行工时近似为 max(A,B)+交接、合并与复验。例如两个分支分别用 8 分钟和 6 分钟,协调用 4 分钟,总耗时从 14 分钟降为 12 分钟;若协调用 10 分钟,则变为 18 分钟。这只是给定工时的计算,不是模型加速实测。

审核通常要等候待审核产物,不能把“实现与验收”直接当成完全独立的并行分支。调用量也不等于墙钟时间:重复输入上下文、额外工具执行和来回讨论,都可能增加总成本。先保持任务与验收标准一致,再比较单 Agent 和协作方案。

交付结果,也交付还没解决的问题

每轮交接都应该改变可检查的任务状态,例如带回新证据、消除一项分歧或完成一项验证。如果只是在角色之间反复转交同一段摘要,预算仍会消耗,任务却没有推进。达到轮次或调用预算后,应停止并返回阻塞原因、已有证据与下一步责任人。

蝶形装置把任务分派放在入口,上下分支分别展示实现和审核,中央是共享版本联锁,出口保留成果夹与阻塞回执。独立的工时表比较可并行子任务,三轮预算盘展示停止规则。页面运行确定性用例和本地状态对象,没有启动真实 Agent,也不提供自动语义合并。

如果工作无法清楚拆分、第二个角色没有额外证据来源,或交接成本超过节省的工作,可以保留单 Agent 流程。需要协作时,先补齐任务契约、证据链和共享状态规则,再通过相同任务集比较正确性、耗时、调用量与约束违规。

交互演示 · 蝶形分叉协作台

比较独立证据、共享写入冲突、并行工时与轮次预算
默认暂停

123结论 / 证据阻塞上下文 Av1v2共享文件预期实际上下文 B目标约束原始输入原始预期执行记录任务分派独立上下文 A独立审核 B原始证据架共享版本闸双分支工时三轮预算证据交付

协作实验与交接记录

审核:看摘要,还是执行原始用例?

任务:largest(values) 返回最大值
输入:[-5, -2];预期:-2
待审核实现:从 0 开始累计最大值

写入:两个上下文,共享一个文件

独立的版本冲突实验:这里的 A、B 是两份修改;不延续左侧待审核函数的状态。

同一工作量,比较串行与并行

此处比较可独立执行的子任务;审核必须等到待审核实现就绪,不能直接套用并行公式。这里使用你给定的确定性工时,没有模型实测。调用成本还包括重复上下文、工具调用与协调消息。

循环:预算到点就停

交付包
任务编号 · 输入 / 输出版本 · 结论
原始证据 · 测试结果 · 未解决冲突
已用预算 · 下一步责任人
登录后收藏评论 0

登录后发表评论

暂无评论。