Agent 编排
选择确定性代码、Manager、Handoff、Agents as Tools 或并行方式组织多个能力。
学习目标
- 能说明Agent 编排解决什么问题,以及何时适用。
- 能解释为什么“控制权循环转移”是误区。
学习前需要掌握
背景与问题
多个能力接入同一任务后,真正困难的是谁先执行、谁掌握上下文、失败后谁负责收尾。把所有专家互相连接并不会自动产生协作,还可能形成循环转发和重复副作用。
编排把任务依赖与控制权转移变成明确规则。有些步骤适合固定工作流,有些步骤需要模型判断;选择应由任务的不确定性与风险决定。
概念定义
编排定义控制权、任务拆分、状态传递、聚合和失败处理。
直观理解
固定铁路适合稳定路线,智能调度适合需求变化;关键枢纽仍要用明确规则。
核心原理
先画出数据依赖:需要前一步输出的任务必须等待,而彼此独立的分析可以并行。并行会增加资源占用,若多个分支同时修改同一文件或账户状态,还必须处理竞争与合并。
控制权决定谁能继续与用户交互、调用工具和给出最终答案。Manager 模式保留统一控制,专家作为有边界的子任务返回结果;Handoff 模式则将活动对话交给目标专家。这两种模式不能只用同一条“调用专家”箭头模糊表示。
每条编排边应定义输入、输出、超时与失败策略。专家结果可以是成功、部分结果、证据不足或异常;下游不应把所有返回文本都当成有效产物。汇总前要核对版本、字段和证据来源。
涉及授权、写入顺序和停止预算的规则宜由确定性控制器落实。若允许模型动态选择专家,也要限制可选目标与转发次数,并定义分支取消、等待和返回路径,避免互相推卸未完成任务。
案例:产品说明书的翻译与审核流程
先从同一版本的说明书提取术语与正文,再让不同语言分支并行翻译;校对分支必须等待对应译文。最终发布检查依赖所有必需语言都通过,不能因为最快的一支完成就提交整个任务。
如果某个翻译分支失败,编排器可以只重跑该分支,并让已成功分支保留版本标识。若源文随后更新,旧译文即使通过校对也不再属于当前版本,必须标记待重做。这里依赖、版本和失败去向比“有几个 Agent”更决定系统是否可靠。
理解与实践步骤
- 识别确定性与开放决策
- 选择编排模式
- 定义交接载荷
- 限制共享状态
- 聚合与验证
实际应用
- 多 Agent 系统
常见错误
- 让专家无限互相转发,没有活动控制者、次数上限和最终责任人。
- 并行修改同一资源却没有所有权与合并规则,产生相互覆盖的结果。
- 只规定顺利流程,未定义某分支超时、部分完成或版本过期时怎样收尾。
输入、输出与执行边界
输入
- 任务图
- Agent 能力
- 成本与风险约束
输出
- 执行图
- 最终负责人
- 失败回退路径
能力
- 多 Agent 系统
安全风险与信任边界
调度器传递给子任务的资料应限定在该子任务需要的范围,并保留来源。一个执行者的自述或中间文件不能自动成为其他执行者的指令;汇总者需要核验结果与任务契约,尤其要防止并行写入同一对象造成覆盖。
性能与失败模式
只有依赖关系允许的子任务才能真正并行。评估时同时计算关键路径耗时、全部模型与工具费用、等待和重做次数;把一个任务拆成更多角色可能增加通信和汇总成本,并不天然提高吞吐或正确率。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。