2024 年是 AI Agent 框架的"寒武纪大爆发"——GitHub 上千 Star 仓库从 14 个暴增到 89 个,涨幅 535%,人人都在重造轮子。进入 2026 年,这场混乱收敛为几股清晰的主流。但真正的分水岭不在"谁更快、谁更省 Token",而在一个更根本的元问题:框架究竟让你用什么心智模型来描述一个 Agent? 是把控制流画成图、交给模型自主移交、写进类型签名、还是编译成程序?本文横向拆解 LangGraph、OpenAI Agents SDK、CrewAI、PydanticAI、Mastra、DSPy 六种编程模型,揭示 2026 年框架之争的底层逻辑——所谓"框架",本质是在"声明性"与"可控性"两轴上做的不同押注。
LangChain 仍是份额领导者,但批评从未停止;LangGraph 在 2026 年初 GitHub Star 数正式反超 CrewAI,靠的是企业级可审计的有状态工作流。CrewAI 仍保有约 5.2 万 Star 的群众基础,PydanticAI 凭借类型安全在生产代码中悄然渗透,Mastra 占据 TypeScript 生态高地,DSPy 则在研究/高复用场景中独树一帜。
| 框架 | 编程模型 | 控制流归属 | 核心原语 | 心智负荷 | 最适场景 |
|---|---|---|---|---|---|
| LangGraph | 显式状态图 | 开发者(画图) | Node / Edge / State | 高 | 可审计、可回放的生产工作流 |
| OpenAI Agents SDK | 移交式 | 模型(运行时) | Agent / Handoff / Guardrail | 低 | 快速多智能体路由 |
| CrewAI | 角色合约式 | 框架(流程引擎) | Agent(role) / Task / Crew | 中低 | 业务角色分工、外包式协作 |
| PydanticAI | 类型驱动式 | 开发者(签名) | Agent + result_type + tool | 中 | 需强校验的结构化 I/O 生产代码 |
| Mastra | 流式工作流 | 混合 | Agent / Workflow(step) | 中 | TS 全栈、实时流式响应 |
| DSPy | 声明式编译 | 编译器 | Module / Signature / Teleprompter | 高(前期) | 高复用、需自动优化 prompt 的系统 |
LangGraph 的核心赌注是:复杂 Agent 的可靠性,只能靠把控制流从"模型脑子里"搬到"代码里"来保证。 它把 Agent 显式建模为一个状态机——节点是函数,边是转移逻辑,State 是在节点间流动的结构化数据。每一步都可见、可中断、可回放、可人工介入(human-in-the-box)。这种"画图编程"在 2026 年初的反超,恰恰说明企业愿意为可审计性支付更高的心智税。
from langgraph.graph import StateGraph, END
def research(state): state["notes"] = "..."; return state
def write(state): state["draft"] = state["notes"]; return state
g = StateGraph(dict)
g.add_node("research", research)
g.add_node("write", write)
g.add_conditional_edges("write", lambda s: END if s["draft"] else "research")
app = g.compile() # 图即真相:拓扑即行为
优点是确定性、可观测、天然支持检查点持久化;缺点是写一个简单 Agent 也要先设计状态结构,对"一句话能搞定"的小场景是过度工程。变现上,它最适合包装成"生产级 Agent 可靠性训练营"——这正是市场最稀缺的能力。
OpenAI 的反向押注:别画图了,让模型自己决定下一步找谁。 核心原语是 Handoff——一个 Agent 在对话中"移交"控制权给另一个 Agent,整套路由发生在运行时,由模型推理驱动,而非开发者预定义的边。配合内置的 Guardrails(输入/输出校验)和轻量对象模型,它的上手成本是六个里最低的,几行代码就能跑起多智能体。
from agents import Agent, Runner
writer = Agent(name="Writer", instructions="...")
researcher = Agent(name="Researcher", handoffs=[writer], tools=[search])
result = Runner.run_sync(researcher, "写一份关于 X 的报告")
代价是控制流不透明:模型决定何时移交、移交给谁,调试和审计依赖运行时 trace。它对 OpenAI 模型生态绑定最深,换模型时体验会打折。变现上适合做"最快上手的多智能体入门训练营",但企业级可审计场景需谨慎。
CrewAI 选择了第三条路:用人话描述角色,让框架编排出流程。 每个 Agent 带 role、goal、backstory,每个 Task 有预期产出,Crew 把它们按 sequential 或 hierarchical 流程串起来。它的"声明性"体现在角色描述上——你写的是"研究员/撰稿人"的职责契约,不是状态图,也不是代码路由。
from crewai import Agent, Task, Crew, Process
researcher = Agent(role="研究员", goal="收集可靠资料", backstory="资深分析师")
writer = Agent(role="撰稿人", goal="写出通俗报告", backstory="科普作者")
crew = Crew(agents=[researcher, writer],
tasks=[Task(description="调研 X", agent=researcher),
Task(description="据调研写报告", agent=writer)],
process=Process.sequential)
crew.kickoff()
优点是业务人员看得懂、上手快,适合模拟"外包团队"式协作;缺点是角色卡的措辞会实质影响路由质量,"提示词工程"被偷偷塞进了架构层。变现潜力极高——"组建你的 AI 数字员工团队"对中小企业有强吸引力,是天然的训练营选题。
PydanticAI 的赌注最"程序员化:Agent 的可信度,应该靠类型系统而非运行时祈祷来保证。 它和 Pydantic 同源,核心是用 result_type 把输出钉死成一个校验过的模型,工具用装饰器声明并自动校验参数。模型无关(OpenAI、Anthropic、Gemini、Ollama 都行),代码读起来像普通 Python,没有框架的"魔法感"。
from pydantic_ai import Agent
from pydantic import BaseModel
class Report(BaseModel):
title: str
body: str
agent = Agent("openai:gpt-4o", result_type=Report, system_prompt="你是分析师")
@agent.tool
def search(ctx, query: str) -> str: # 参数自动校验
return db.query(query)
report = agent.run_sync("写一份关于 X 的报告").data # 必为 Report
优点是类型安全、模型无关、契合已有工程代码;缺点是多智能体编排能力相对弱,复杂拓扑仍需搭配 LangGraph。变现上适合定位"Agent 生产化/工程化训练营",面向已有后端经验的开发者,客单价可拉高。
Mastra 是六者中唯一的 TypeScript 一等公民框架,赌注是:实时流式、全栈集成,应该是默认而非补丁。 它把 Agent、工具、工作流(Workflow + Step + 挂起/恢复)、记忆、评估整合在一起,强调流式输出和与前端/Edge 的无缝衔接。对全栈 JS 开发者,心智模型最贴合。
import { Agent, createTool } from '@mastra/core';
const researcher = new Agent({
name: 'Researcher',
instructions: '你是严谨的分析师',
tools: { search: createTool({ id: 'search', execute: async ({q}) => db(q) }) },
model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-6' },
});
const stream = await researcher.stream('写一份关于 X 的报告');
优点是流式体验佳、TS 类型完备、工作流可挂起恢复;缺点是 Python 生态的工具/库覆盖远不如,社区规模较小。变现上适合面向 Web/全栈开发者的训练营,尤其搭配实时 UI 的产品 Demo 极具说服力。
DSPy 走得最远:别手写提示词了,把它当成可编译、可优化的程序。 它用 Signature 声明输入输出契约,用 Module 组合,再用 Teleprompter(编译器)自动搜索少样本示例和指令,让整个 pipeline 在指标驱动下自我提升。前期心智负荷最高,但一旦编译完成,复用性极强。
import dspy
class ReportAgent(dspy.Module):
def __init__(self):
self.retrieve = dspy.Retrieve(k=3)
self.draft = dspy.ChainOfThought("context, question -> report")
def forward(self, question):
ctx = self.retrieve(question).passages
return self.draft(context=ctx, question=question)
# 编译:自动优化 prompt 与 few-shot
compiled = dspy.BootstrapFewShot().compile(student=ReportAgent(), trainset=examples)
优点是 prompt 自动优化、可量化迭代、抗漂移;缺点是学习曲线陡、对小项目过重、调试需理解编译过程。变现上定位"高阶 Agent 工程师训练营",面向追求性能极致的研究型团队,是稀缺的高客单赛道。
quadrantChart
title 六框架编程模型定位
x-axis "显式控制流(开发者画)" --> "隐式控制流(模型/框架决定)"
y-axis "命令式(写步骤)" --> "声明式(写意图/契约)"
quadrant-1 "声明 + 隐式"
quadrant-2 "声明 + 显式"
quadrant-3 "命令 + 显式"
quadrant-4 "命令 + 隐式"
"LangGraph": [0.25, 0.35]
"OpenAI Agents SDK": [0.8, 0.75]
"CrewAI": [0.7, 0.8]
"PydanticAI": [0.45, 0.7]
"Mastra": [0.5, 0.5]
"DSPy": [0.55, 0.9]
这张图揭示了一个反直觉的事实:"声明性"和"可控性"并非同向。 CrewAI 和 OpenAI Agents SDK 同属"声明 + 隐式",描述简单但运行时控制流不可见;LangGraph 显式但偏命令式,控制力强而心智负荷高;DSPy 用编译器实现了"高声明性 + 中等可控性"的独特位置,代价是陡峭的前期投入。选型,本质是在这条光谱上为自己定位。
flowchart LR
U[用户意图] --> P[规划/路由]
P --> T{工具调用}
T -->|结果回流| P
P -->|需交接| H[移交/循环]
H --> O[结构化输出]
O --> U
subgraph 各框架把"描述点"放在哪
L1[LangGraph: 画 P 与 H 的边]:::g
L2[Agents SDK: 声明 H 的移交目标]:::h
L3[CrewAI: 写 P 的角色契约]:::c
L4[PydanticAI: 钉死 O 的类型]:::p
L5[Mastra: 流式化 P→O]:::m
L6[DSPy: 编译 P 的 Signature]:::d
end
classDef g fill:#e8f0fe,stroke:#1a73e8
classDef h fill:#fce8e6,stroke:#d93025
classDef c fill:#fef7e0,stroke:#f9ab00
classDef p fill:#e6f4ea,stroke:#188038
classDef m fill:#f3e8fd,stroke:#a142f4
classDef d fill:#fff8e1,stroke:#8d6e63
同一个意图,六种描述:LangGraph 描述"图怎么连",Agents SDK 描述"谁交给谁",CrewAI 描述"谁负责什么",PydanticAI 描述"输出长什么样",Mastra 描述"数据怎么流",DSPy 描述"输入输出契约是什么"。描述点不同,可控性、可观测性、心智负荷、可优化性就全然不同。
2026 年,框架之争已从"功能竞赛"升维到"编程模型竞赛"——选哪个框架,等于选择用图、用移交、用角色、用类型、用流、还是用编译器来描述你的意图。决定胜负的不再是"它能不能做 Agent",而是"它让你用多大的心智负荷、换来多大的可控性"。
[!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 等场景全覆盖。
