跳到主要内容
Agent Runtime

第4章:主流 Runtime 框架对比

LangGraph / CrewAI / AutoGen / OpenAI Agents SDK / Pydantic AI / Mastra / Agno / Letta 八大框架的设计哲学、能力矩阵、最简代码与选型决策

LangGraph CrewAI AutoGen Pydantic AI Mastra Agno OpenAI Agents 选型

读懂控制流和编排模式后,你需要选一个具体的 runtime 框架来落地。市场上至少有 8 个值得认真考虑的框架,各有设计哲学和适用边界。本章把它们横向对比——给每个框架画出一份”画像”:一句话哲学、最简代码、能力矩阵、典型用户、与其他框架的差异。最后给一棵决策树,帮你在 5 分钟内选对框架。

📑 目录


1. 框架全景速查表

框架出品方哲学主要语言GitHub Stars(2026)
LangGraphLangChainGraph state machinePython + JS35K+
CrewAICrewAI Inc.角色与团队Python30K+
AutoGenMicrosoftConversation as workflowPython + .NET30K+
OpenAI Agents SDK / SwarmOpenAI极简 handoffPython15K+
Pydantic AIPydantic 团队强类型 + structured outputPython8K+
MastraGatsby 团队TypeScript-firstTS19K+
AgnoAgnoMCP/A2A 原生Python15K+
OpenAgentsOpenAgentsMCP + A2A + 互操作Python10K+
LettaLetta Inc.OS-style statefulPython15K+(模块五讲过)

2. LangGraph — Graph state machine 之王

2.1 哲学

“用 directed graph 表达 agent 行为,state 沿边流动。”

每个节点是一个函数(可以是 LLM 调用、tool 调用、子 agent 等),边定义条件转移。state 是显式的 TypedDict。

2.2 最简代码

from langgraph.graph import StateGraph, END
from typing import TypedDict
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.postgres import PostgresSaver

class State(TypedDict):
    messages: list

llm = ChatOpenAI(model="gpt-4o")

def chatbot(state: State):
    return {"messages": state["messages"] + [llm.invoke(state["messages"])]}

graph = StateGraph(State)
graph.add_node("chatbot", chatbot)
graph.set_entry_point("chatbot")
graph.add_edge("chatbot", END)

# Durable execution:Postgres checkpointer
with PostgresSaver.from_conn_string(...) as checkpointer:
    app = graph.compile(checkpointer=checkpointer)
    app.invoke({"messages": [...]}, config={"configurable": {"thread_id": "t1"}})

2.3 关键能力

能力实现
State 管理显式 TypedDict
Conditional edgesadd_conditional_edges
Cycles支持(普通 graph 不允许 cycle,LangGraph 显式允许)
CheckpointerInMemory / SQLite / Postgres / Redis
Time travel可以回滚到任意 checkpoint 重跑
Human-in-the-loopinterrupt() 暂停-恢复
SubgraphHierarchical 多 agent 必备
Streaming内置 token / event 流式
Multi-agentlanggraph-supervisor、langgraph-swarm 官方包

2.4 优劣

生产级(LangSmith 深度集成) ✅ Time travel + Human-in-the-loop 是杀手级特性生态最大,社区最活跃

学习曲线:写 graph 比写 ReAct 麻烦 ❌ 冷启动:简单任务过度工程

2.5 适合谁

  • 复杂 stateful workflow
  • 需要 durable / 审计 / 人工干预
  • 已用 LangChain 的团队

3. CrewAI — 角色与团队

3.1 哲学

“像组建一个团队一样组建 agent 系统。”

把每个 agent 想象成一个有 role / goal / backstory 的”虚拟员工”,然后把任务分配给”team”(crew)。

3.2 最简代码

from crewai import Agent, Task, Crew, Process

researcher = Agent(
    role="Research Analyst",
    goal="收集 2026 年 AI Agent 框架的最新动态",
    backstory="你是一位资深 AI 研究员,擅长梳理趋势...",
    tools=[search_tool],
    verbose=True,
)
writer = Agent(
    role="Tech Writer",
    goal="把研究结果写成一篇通俗易懂的文章",
    backstory="你是一位科技博主...",
    verbose=True,
)

research_task = Task(
    description="找出 2026 年最热的 5 个 AI agent 框架,各 2 段评价",
    agent=researcher,
    expected_output="markdown",
)
write_task = Task(
    description="基于研究产出写一篇 800 字博客",
    agent=writer,
    context=[research_task],
)

crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential)
result = crew.kickoff()

3.3 优劣

代码即文档:role / goal 可读性极强 ✅ 快速原型:30 分钟搭一个 demo ✅ 角色叙事友好:适合演示和 PR

生产能力弱:durability、conditional flow 远不如 LangGraph ❌ debug 难:LLM 自由发挥太多

3.4 适合谁

  • POC、Hackathon、产品 demo
  • 内容生成、营销文案、研究报告类任务
  • 团队产品经理用的”无代码”agent 工具(Lindy、n8n 等都借鉴了 CrewAI 风格)

4. AutoGen — Conversation as workflow

4.1 哲学

“多 agent 协作就是一群 agent 在对话。”

把工作流抽象成 agent 之间的”群聊”——每个 agent 看群聊历史,决定何时发言。

4.2 最简代码(AutoGen 0.4+)

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient

client = OpenAIChatCompletionClient(model="gpt-4o")

planner = AssistantAgent("planner", model_client=client,
    system_message="制定计划")
coder = AssistantAgent("coder", model_client=client,
    system_message="按计划写代码")
reviewer = AssistantAgent("reviewer", model_client=client,
    system_message="review 代码并给反馈")

team = RoundRobinGroupChat([planner, coder, reviewer], max_turns=10)
result = await team.run(task="写一个快速排序")

4.3 优劣

多 agent 对话天然直观微软出品,与 .NET 生态对接AutoGen Studio(no-code 工具)

Conversation 范式不适合所有任务(不所有协作都是对话) ❌ 2024 → 2025 大改 API,文档断层

4.4 适合谁

  • 多 agent 协作的研究 / 教学
  • 强对话语义的场景(辩论、面试模拟)
  • .NET 团队

5. OpenAI Agents SDK / Swarm — 极简 handoff

5.1 哲学

“LLM 推理够强,框架就该极简——给个 handoff 关系就够。”

OpenAI 2024-10 发布 Swarm 实验性框架,2025-Q1 升级为正式的 Agents SDK。

5.2 最简代码

from agents import Agent, Runner

triage = Agent(
    name="Triage",
    instructions="判断用户意图,handoff 给对应 agent",
)
sales = Agent(name="Sales", instructions="处理销售")
cs = Agent(name="CS", instructions="处理售后")

triage.handoffs = [sales, cs]

result = Runner.run_sync(triage, "我要退订单 #123")
print(result.final_output)

5.3 优劣

API 极简,代码最少OpenAI 官方,与 Responses API、Assistants 对齐2025 加入 tracing、guardrails、handoff filters 等生产特性

绑定 OpenAI(虽然支持其他模型但生态围绕 OpenAI) ❌ 没有 LangGraph 那种显式 graph,大型系统难管理

5.4 适合谁

  • OpenAI 栈用户
  • 用强推理模型(o1 / o3)的场景
  • < 10 agents 的简单系统

6. Pydantic AI — 强类型生产派

6.1 哲学

“生产 agent 离不开类型安全和 structured output。”

Pydantic 团队出品,把 Pydantic 的 schema 验证用到 agent 的 input / output / tool args。

6.2 最简代码

from pydantic import BaseModel
from pydantic_ai import Agent, RunContext

class WeatherResponse(BaseModel):
    temperature: float
    conditions: str
    advice: str

weather_agent = Agent(
    "openai:gpt-4o",
    output_type=WeatherResponse,
    system_prompt="你是一个天气助手",
)

@weather_agent.tool
def get_weather(ctx: RunContext, city: str) -> dict:
    return {"temp": 24, "cond": "晴"}

result = weather_agent.run_sync("北京天气怎么样?今天适合出门吗?")
print(result.output)  # WeatherResponse 实例,严格符合 schema

6.3 优劣

类型安全:LLM 输出严格符合 Pydantic schema ✅ Logfire 深度集成(同公司出的 observability) ✅ multi-provider:OpenAI / Anthropic / Gemini / Groq / Bedrock 都支持 ✅ dependency injection:RunContext 模式优雅

较新,生态不如 LangGraph复杂 multi-agent 编排支持弱

6.4 适合谁

  • 需要 structured output 的生产场景(金融、医疗、合规)
  • 已用 FastAPI / Pydantic 的团队
  • 偏好”少魔法、多类型”的工程师

7. Mastra — TypeScript-first

7.1 哲学

“JS/TS 生态也该有 first-class 的 agent 框架。”

Gatsby 团队出品,完全 TypeScript,包含 agent / workflow / RAG / memory / evals 全套。

7.2 最简代码

import { Mastra } from '@mastra/core';
import { Agent } from '@mastra/core/agent';
import { openai } from '@ai-sdk/openai';

const weatherAgent = new Agent({
  name: 'weather',
  instructions: '你是一个天气助手',
  model: openai('gpt-4o'),
  tools: {
    getWeather: { /* tool def */ },
  },
});

const mastra = new Mastra({ agents: { weatherAgent } });
const response = await mastra.getAgent('weatherAgent').generate('北京天气');

7.3 优劣

TS 原生,与 Next.js / Vercel AI SDK 无缝包含 workflow / memory / evals / RAG 一体化Cloud 版本 + 本地 CLI 都成熟

Python 生态不可达较新,论文/学术工具大都 Python only

7.4 适合谁

  • 全栈 TS / Next.js 团队
  • 需要 agent + frontend 紧密集成
  • 不想跨语言部署

8. Agno / OpenAgents — MCP/A2A 原生

8.1 Agno

“轻量、模块化,MCP 一等公民。”

Agno 强调:

  • 极轻(~1MB)
  • 内置多 LLM provider
  • 原生 MCP server / client
  • 简洁的 Agent / Team / Workflow 三层抽象
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.mcp import MCPTools

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    tools=[MCPTools(server_url="http://localhost:8080")],  # 直接连 MCP server
    instructions="使用工具回答问题",
)
agent.print_response("帮我查最近一笔订单")

8.2 OpenAgents

强调”agent 互联网”:MCP + A2A 双协议原生,适合”agent 与 agent 互通”的网络化场景。

8.3 适合谁

  • MCP / A2A 重度用户
  • 想做”agent 互操作”的平台型产品

9. Letta — Stateful 长会话(模块五已介绍)

模块五讲了 Letta 的 OS-style memory(core / archival / recall),它本身也是完整的 agent runtime。本章不重复,只补充 runtime 视角:

  • agent 状态完全持久化(进程重启可恢复,等价 durability)
  • agent 的工具调用 trace 可在后台 audit
  • 适合”长会话 + 跨周复用”的场景

详见模块五第 5 章。


10. 能力矩阵与选型决策

10.1 能力矩阵

维度LangGraphCrewAIAutoGenOpenAI AgentsPydantic AIMastraAgnoLetta
State 管理★★★★★★★★★★★★★★★★★★★★★★★★★★★
Multi-agent★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Durable execution★★★★★★★★★★★★★★★
Human-in-the-loop★★★★★★★★★★★★★★★★★★★★★
Streaming★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Type safety★★★★★★★★★★★★★★★
MCP 原生★★★★★★★★★★★★★★★★★★★★★★★★★
生态★★★★★★★★★★★★★★★★★★★★★★★
TypeScript★★★★★★★★★★
学习曲线极低

10.2 选型决策树

你的优先级是?

├─ 生产级、复杂 workflow、长期投入
│   └─ LangGraph

├─ 快速原型、内容生成、role-based
│   └─ CrewAI

├─ 多 agent 对话研究 / .NET
│   └─ AutoGen

├─ OpenAI 栈 / 简单 handoff / 强推理模型
│   └─ OpenAI Agents SDK

├─ 强类型 / 金融医疗合规 / FastAPI 栈
│   └─ Pydantic AI

├─ TypeScript / Next.js 全栈
│   └─ Mastra

├─ MCP/A2A 重度 / 平台型互操作
│   └─ Agno / OpenAgents

└─ 长会话 + stateful agent + memory 一体化
    └─ Letta(模块五)

10.3 混合栈也很常见

实际项目可能:

  • LangGraph 做主流程编排
  • Pydantic AI 做强类型的内部 agent
  • MCP server(Agno 风格)暴露工具
  • Letta 处理长会话用户档案
  • OpenAI Agents SDK 处理 OpenAI o1/o3 的高级推理任务

各取所长,通过 MCP/A2A 协议互通(第 7 章详讲)。


✅ 自我检验清单

  • 8 框架一句话:能用一句话说清每个框架的设计哲学
  • LangGraph 杀手特性:能说出 LangGraph 至少 3 个生产级杀手特性
  • CrewAI vs LangGraph:能解释为什么 CrewAI 适合原型、LangGraph 适合生产
  • OpenAI Agents 极简:能写出 < 20 行 OpenAI Agents handoff 代码
  • Pydantic AI structured output:能解释为什么金融/医疗场景需要它
  • Mastra TS 优势:能说清”全栈 TS”对哪类团队是关键
  • Agno MCP 原生:能写一个 MCPTools 直连示例
  • 能力矩阵:能从内存里画出 5 个核心能力 × 5 个框架的对比表
  • 选型实操:面对 5 个具体业务场景,能在 2 分钟给出推荐
  • 混合栈:能为某个企业设计”3 个框架协作”的栈

📚 参考资料

官方文档

横向对比

  • CrewAI vs LangGraph vs AutoGen vs OpenAgents (2026):OpenAgents Blog
  • A Detailed Comparison of Top 6 AI Agent Frameworks in 2026:Turing
  • 10 AI Agent Frameworks You Should Know in 2026:Medium
  • CrewAI vs LangGraph vs AutoGen: Which to Use in 2026:Pratik Pathak
  • 120+ Agentic AI Tools Mapped Across 11 Categories:StackOne