把 2026 年市面上一打多智能体框架的外壳剥掉,剩下的其实是一个 40 年前就被分布式系统吵过一遍的老问题:多个执行单元之间,到底靠"传消息"对齐,还是靠"读写同一块共享状态"对齐? 这就是经典的"消息传递 vs 共享内存"之争,只是这一次执行单元从进程变成了大模型 Agent。AutoGen、OpenAI Swarm/Agents SDK 的 Handoff 属于会话派——对话历史本身就是状态,谁拿到话筒谁说了算;LangGraph、MetaGPT、LlamaIndex Workflow 属于状态派——一个显式 State 对象加上一张控制流图才是唯一真相。第三方研究机构 Presenc AI 汇总的 2026 年第一季度生产部署份额给出了裁决方向:状态派旗舰 LangGraph 独占约 38%,自定义状态图编排再吃 28%,而会话派旗舰 AutoGen 仅 9%、Swarm 跌到 2%。本文拆解这两条哲学路线的内核、典型实现、塌方临界点,以及它们为何在 2026 年开始互相吞噬对方。
| 维度 | 会话派(消息传递) | 状态派(共享状态) |
|---|---|---|
| 状态载体 | 对话历史 / 消息流 | 显式 State 对象 + reducer |
| 决策权归属 | 谁拿话筒谁决定,涌现 | 编译期冻结的边 + 运行时路由函数 |
| 典型框架 | AutoGen GroupChat、Swarm/Agents SDK Handoff、CrewAI delegation | LangGraph StateGraph、MetaGPT SOP、LlamaIndex Workflow、CrewAI Flow |
| 可观测性 | 消息日志(事后拼) | 原生 trace + checkpoint 快照 |
| 可重放性 | 弱(同输入不同轮次漂移) | 强(状态快照可时间旅行) |
| 学习曲线 | 低(像聊天) | 中高(要懂图与 reducer) |
| Q1'26 生产份额 | ~11%(AutoGen 9%+Swarm 2%) | ~66%(LangGraph 38%+自定义 28%) |
| 最易塌方点 | 绕圈、说话税、共识幻觉 | 图爆炸、reducer 冲突、编排税 |
把视角拉高,这场分歧根本不是框架设计者的偏好,而是被 LLM 这个执行单元的物理特性逼出来的。LLM 的输入是一个扁平的 token 序列,这意味着"协调信息"必须先被压成一段自然语言,才能进入任何 Agent 的脑子。于是设计者只有两条路:要么让协调信息一直在 Agent 之间以自然语言流动(每条消息都是一次完整的"状态广播",会话派),要么让协调信息沉淀在一个结构化对象里,Agent 每次只读自己需要的那几个字段,写回时由 reducer 合并(状态派)。前者把分布式系统里的 actor 模型 / CSP 用自然语言重新实现了一遍,后者把"共享内存 + 互斥"用 StateGraph 重新实现了一遍。理解了这一层,你就能解释为什么 AutoGen 的核心抽象叫 GroupChat,而 LangGraph 的核心抽象叫 StateGraph——一个是客厅,一个是数据库。
AutoGen 0.4 的核心是 RoundRobinGroupChat 与 GroupChatManager,turn-taking 由 manager 调度,所有 Agent 共享同一条消息流:
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.agents import AssistantAgent
coder = AssistantAgent("coder", model_client=mc,
system_message="You write Python. Output a single function.")
reviewer = AssistantAgent("reviewer", model_client=mc,
system_message="You review code. Approve or reject with reasons.")
team = RoundRobinGroupChat([coder, reviewer], max_turns=4)
result = await team.run(task="Write a function that parses ISO 8601 dates.")
代码极其直觉——这正是一切会话派的魅力与诅咒。魅力在于低门槛、涌现性强,"写代码—评审—改"这种自然反馈环几乎零配置。诅咒在于状态只有一个副本(那条消息流),而且它在不断膨胀:第 N 轮时每个 Agent 都要把前 N-1 轮的全部历史塞进上下文,这正是已被反复实测的"说话税"与"循环二次方烧钱"的根源。max_turns=4 这种硬截断几乎是工程师对会话派"会绕圈"本能的防御。会话派最适合 2–4 个 Agent、明确收敛标准(如"评审通过")的短链路任务;一旦 Agent 数量或轮次上量,协调成本就以平方级失控。
LangGraph 把工作流建模成有向图,节点是函数,边是条件路由,状态由带 reducer 的 TypedDict 累积,关键杀器是 checkpointer:
class AgentState(TypedDict):
messages: Annotated[list, add_messages]
next: str
graph = StateGraph(AgentState)
graph.add_node("planner", planner)
graph.add_node("researcher", researcher)
graph.add_edge(START, "planner")
graph.add_conditional_edges("planner", lambda s: s["next"])
app = graph.compile(checkpointer=...) # SQLite/Postgres/Redis
这里"协调信息"从不以自由对话形式存在——next 字段决定下一跳,messages 由 add_messages reducer 幂等合并。决策权在编译期就冻结进图的拓扑,运行时只是沿着边走。checkpointer 把每个节点的出入口状态落盘,于是 LangGraph 天然支持"任意分支点时间旅行调试"和"暂停等人审批后恢复"——这两个恰恰是会话派最难补的生产特性。状态派的代价同样明确:图爆炸。当条件边一多,维护这张状态机的认知负担会迅速超过它带来的可控性收益,这解释了为什么 28% 的团队宁可自己写一份更简单的自定义状态编排,也不愿扛下 LangGraph 全套抽象。
OpenAI 2024 年 10 月放出的 Swarm 是会话派的一个极致纯化分支——只有两个概念:Agent 和 Handoff。它不维护任何服务端状态,构建在无状态 Chat Completions API 之上,Agent 把控制权和上下文一起 handoff 给下一个 Agent。2025 年的 Agents SDK 把这套思想生产化,补上了 Agent Loop、Tracing、Guardrails 与 Pydantic 类型校验:
# Agents SDK:handoff 是一等公民,控制权在 Agent 间转移
triage = Agent(name="triage", handoffs=[billing, technical])
handoff 的本质是"会话派的状态转移原语":谁握着话筒,谁就是当前唯一的协调中心;交出话筒等于交出全部协调权。这条路的好处是无中心、轻量、对 2–3 个 Agent 的窄流程极其顺滑;坏处是 OpenAI 自己都标注"实验性,勿用于生产",Q1'26 份额仅 2%。它真正的归宿是被当教学参考——理解 handoff 这个原语,比真拿 Swarm 上线重要得多。Agents SDK 的 Tracing+Guardrails,本质就是会话派向状态派"借"可观测与可校验这两件生产必需品。
MetaGPT 走了第三条更激进的路——它不信任 Agent 的自由对话,而是用标准化操作流程(SOP)把整个协作预先脚本化。Agent 被赋予产品经理、架构师、工程师这类角色,严格按 SOP 流转,配合共享记忆池同步。这等于把"会话派"的灵活性主动阉割,强行投影到"状态派"的确定性流水线上:输出的是需求文档、系统设计图这类高质量结构化产物,逻辑错误率显著降低。MetaGPT 揭示了一个被多数框架回避的事实——协调的可控性,本质来自对"自由对话"的约束程度。你越想让 Agent 自由涌现,协调越昂贵、越不可预测;你越把流程钉死,产出越稳但越像传统工作流。SOP 派是这条连续光谱上"靠近状态端"的极端样本,适合需要高质量可交付物(代码、文档、架构图)的复杂生产任务。
最有意思的现象是两派不再各走极端,而是互相吸收对方基因。CrewAI 1.0(2025 年 4 月)原本是典型的角色驱动会话派,却加入了图式 API Flow,提供 LangGraph 式的分支能力;反过来,LangGraph 也在吸收 handoff,让状态图里的节点可以把控制权"转移"出去。LlamaIndex 则祭出事件驱动的 Workflow,介于"消息总线"和"状态图"之间。这种收敛说明一个共识正在成型:纯会话派太贵太飘,纯状态派太硬太重,生产级系统需要在两端之间找平衡点——而那个平衡点,越来越偏向状态端。收敛的方向本身就构成证据:会话派在往状态派方向改造自己(补 trace、补 checkpoint、补图),而状态派只是顺手吸收了 handoff 这种轻量原语。哪一边在主动求变,哪一边就是弱势方。
为什么状态派在生产端碾压会话派(38%+28% 对 9%+2%)?答案是生产系统对可观测、可重放、可审计这三性的刚性需求。会话派把状态藏在不断膨胀的消息流里,调试时只能事后翻日志"拼"出当时谁说了什么,同一个输入重跑会因 turn-taking 漂移得到不同结果;而状态派的 checkpointer 给出的是逐节点快照,任何分支点都能时间旅行回放,审计员能看到每一步的精确状态转移。在金融、医疗这类监管行业,"可解释 AI 如何得出结论"是不可谈判的——LangGraph 的显式图+审计轨迹天生满足,会话派的涌现对话根本过不了合规关。一家印度集成商的实战结论很直白:用 CrewAI 或 AutoGen 起步的项目,迁向生产时几乎都会迁移到 LangGraph,"初期的速度优势在需要精确控制、错误处理和规模化可观测时迅速蒸发"。
但把镜头拉远,最反直觉的发现来自 Presenc AI 的总结:框架选择充其量是第四位成功因素。排在前面的三个是——底层模型选型(强模型+糙框架 > 弱模型+精框架)、评估基建(回归测试、trace 回放、生产采样)、人审闸门设计(哪里要人批、哪里放 Agent 自治)。这意味着,与其纠结"会话派还是状态派",不如先把这三件事做扎实。还有一个常被忽视的前提:70% 的生产用例,一个带工具调用的单 Agent 就够了,多智能体只在真正需要角色专业化(不同领域不同 Agent)、评审闭环(一个生成一个校验)、复杂分支循环时才有正向收益。会话派与状态派之争,本质上是在那 30% 真正需要多 Agent 的场景里,为"可控性 vs 灵活性"做权衡——而在做出这个权衡之前,先确认你是不是真的需要多 Agent。
flowchart LR
subgraph 会话派["会话派(消息传递)"]
A1[Agent A] -- 消息 --> A2[Agent B]
A2 -- 消息 --> A3[Agent C]
A3 -- 消息 --> A1
S1[("消息流\n=唯一状态\n不断膨胀")]
A1 -.读写.- S1
A2 -.读写.- S1
A3 -.读写.- S1
end
subgraph 状态派["状态派(共享状态)"]
G["StateGraph\n编译期冻结"]
N1[planner] -- next --> N2[researcher]
N2 -- reducer --> N3[writer]
S2[("State 对象\n字段化\n可快照")]
N1 -.读写.- S2
N2 -.读写.- S2
N3 -.读写.- S2
G -.checkpointer.- S2
end
flowchart TD
C[协调基质光谱] --> P1["纯会话端<br/>Swarm Handoff · 2%"]
C --> P2["会话为主<br/>AutoGen GroupChat · 9%"]
C --> P3["混合<br/>CrewAI Flow/Agents SDK · 12%"]
C --> P4["状态为主<br/>自定义编排 · 28%"]
C --> P5["纯状态端<br/>LangGraph/MetaGPT SOP · 38%%+"]
style P5 fill:#cfe8cf
style P1 fill:#f4cccc
光谱图揭示的相变很清晰:越是靠近状态端,Q1'26 生产份额越高;越是靠近纯会话端,越是退守到教学与原型。会话派不是"错",而是它把协调成本的账单推迟到了规模化阶段才一次性兑现。
把所有维度收拢成一句话:会话派赢在原型期的直觉与涌现,状态派赢在生产期的可观测与可审计;而决定你能不能上生产的,从来不是你选了哪派,而是你有没有把模型选型、评估基建和人审闸门这三件底层功夫做扎实。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
