news 2026/9/30 7:51:26

Agent 多智能体编排工程笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent 多智能体编排工程笔记

摘要:单个 agent 做不完的任务,要拆给一批 agent 协同。这篇文章不复述某一家框架怎么用,而是把多智能体编排共有的机制拆开——控制流怎么走、agent 之间怎么通信、共享状态放在哪、下一步交给谁、什么时候停、结果怎么合。机制之上,看两种主流范式、几种常见拓扑,以及把编排延伸到组织边界的互操作协议 MCP 与 A2A。最后给一份选型判断和几个容易踩的坑。


《Agent 子智能体工程笔记》讲了多智能体编排的最简形态 SubAgent:一个父 agent 派一个子 agent,子带独立上下文,只把摘要交回,父保留控制权。那是「一对一委派」。

一旦任务需要多个 agent 同时参与、彼此交换中间结果、共同收敛到一个答案,单层 SubAgent 就不够了。一批 agent 怎么协同,是编排(orchestration)要回答的事。

2026 年的多框架生态已经不少:LangGraph、CrewAI、Google ADK、Microsoft Agent Framework、LlamaIndex Workflows、Mastra、Strands Agents、Agno、Pydantic AI,加上 OpenAI Agents SDK 与 Claude Agent SDK 两个厂商 SDK,还有 Anthropic 自己的多智能体研究系统。它们的差异不在功能清单——工具、记忆、可观测这些现在各家都有——而在「用什么原语组织 agent 交互」:LangGraph 用有状态图,CrewAI 用角色团队,AG2(原 AutoGen)用多轮对话,OpenAI Agents SDK 用 handoff。原语不同,但被组织起来的机制是同一批。

这篇文章不绑定某一家,先把这批机制拆开讲,再回来看它们怎么组合成不同的范式和拓扑。

一、编排层解决什么

SubAgent 那两个前提——子任务互相独立、父拿摘要就能决策——一旦破了,单层委派就不够用。

三种失灵的形态:

  • 子任务之间有依赖。B 要先读到 A 的输出才知道怎么改,A 没跑完 B 只能等着。把依赖的子任务串起来顺序执行也能跑通,但同一个 agent 要在几个视角之间来回切换,上下文容易互相干扰。

  • 结论需要协商。三个 agent 各出一版方案,要互相看、互相评审,收敛成一个。各自独立产出再交给父合并,合出来的版本可能自相矛盾——因为谁都没见过别人改到哪了。

  • 状态要活很久。任务跑几十分钟,中途要人能看一眼再放行,进程崩了要能接着跑。一次性的 SubAgent 调用支撑不了这么长的生命周期。

三种失灵各自指向一组机制:依赖要由控制流安排先后,协商要解决通信、路由与汇聚,长寿命任务要求状态能放到 agent 之外。

落到工程上,就是五个机制层面的问题:

  • 控制流:谁先跑、谁等谁,同步还是异步
  • 通信:agent 之间用什么方式交换信息
  • 共享可变状态:共同的状态放在哪,谁改,怎么避免并发冲突
  • 路由:下一步交给哪个 agent,由谁决定
  • 终止与汇聚:什么条件下停,多个结果怎么合

五个机制是编排的骨架。不同框架、不同拓扑,本质是这五条的取值和组合不同。

二、控制流:同步阻塞与异步事件

最直接的控制流是同步阻塞。父 agent 发起一批子任务,等全部返回,再往下走。第 13 期的 fan-out / fan-in 就是这一种,只是那时讲的是「一个父多个子」,这里升到编排维度:谁来等、等多久、等待期间能否处理其他任务。

同步的好处是可预测。执行顺序清楚,状态在每一步都是确定的,出错时调用栈容易读。代价是延迟按最慢的那个算——派出去五个子任务,其中一个跑了三分钟,其余四个早回了也没法继续。

异步事件驱动换一种方式。agent 各自跑,谁完成了谁通过事件或消息上报,调度端收到就推进。首字延迟低,慢任务不会阻塞快任务。代价是复杂度上升:执行顺序不再确定,状态要在并发下保持一致,出错的传播路径变长——一个子任务静默失败,事件流里可能没人注意。

各家的落点:LangGraph 的图按 superstep 批量执行节点,一个 superstep 内的节点并发、跨 superstep 同步;OpenAI Agents SDK 由一个 runner loop 驱动整个 agent 循环;AG2 把控制流建模成对话轮次,一轮一个说话者。这些都是同一个问题的不同答案:谁在驱动、以什么节奏推进。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 7:51:08

从td_error到clip:Actor-Critic与PPO推导及避坑指南

简介:这份PDF资料围绕强化学习中Actor-Critic框架与PPO算法展开,面向已具备神经网络与梯度下降基础、希望深入理解策略梯度与近端策略优化的学习者。内容从Actor网络选动作、Critic网络评估状态价值入手,推导td_error、优势函数与重要性采样&…

作者头像 李华
网站建设 2026/9/30 7:51:08

CSDN页面完美打印指南:一键展开代码段并清除噪音模块

很多人都有过这种经历:在CSDN上找一篇代码教程,读起来挺顺眼,想打印出来或者存成PDF慢慢看,按下CtrlP之后,出来的东西立刻现出原形——代码段只显示前几行,后面露出一排省略号;页面顶部、侧边栏…

作者头像 李华
网站建设 2026/9/30 7:50:46

基于YOLOv8与PyQt5的西红柿成熟度检测系统实战

1. 从一颗西红柿说起:这套系统到底解决什么问题 第一次接触这个需求是在一个农业合作社的项目交流会上,对方拿着一筐西红柿问我:能不能用摄像头自动区分哪些是青的、哪些是半熟的、哪些已经红透可以装箱了。当时人工分拣一条线上要站六个人&a…

作者头像 李华
网站建设 2026/9/30 7:50:32

Unity休闲游戏UI开发:GUI Pro - Casual Game资源包实战与优化指南

最近项目需要做一款休闲手游的前端UI,找了很多现成方案都不太满意,索性直接上手了这套在Asset Store里口碑不错的GUI Pro - Casual Game资源包。用下来感受很深,它不只是一堆按钮图标的堆砌,而是一整套面向休闲游戏场景的UI解决方…

作者头像 李华
网站建设 2026/9/30 7:50:20

C语言结构体内存对齐原理与工程实践

1. 为什么结构体变量的内存布局不是“把所有成员挨个排过去”那么简单? 刚学C语言时,我教过不少零基础学员。几乎所有人第一次看到 struct 定义,都会下意识认为:内存就是一条直线,int占4字节、char占1字节、double占…

作者头像 李华
网站建设 2026/9/30 7:50:19

WSL2安装配置全指南:从入门到避坑实战

你是不是把“WSL2”敲成“WLS2”了?这两个字母一颠倒,搜索引擎出来的东西完全不是一回事。按标题上下文,你要装的应该是Windows Subsystem for Linux 2,通称WSL2。我在Windows下用了三年多,从WSL1一路用到WSL2&#xf…

作者头像 李华