2026年5月,Agent框架赛道经历了史上最密集的一轮架构跃迁。Google I/O 2026发布ADK 2.0引入图工作流运行时,LangGraph 1.2.0上线崩溃恢复的持久化执行,OpenAI Agents SDK 4月大版本升级引入沙箱执行与模型原生Harness,Anthropic推出Claude Agent SDK将Claude Code的agent loop打包为可编程SDK,CrewAI 1.10+率先原生支持A2A协议,而HuggingFace Smolagents以26k+ Star证明"千行代码也能造Agent"的理念正在赢得开发者。
这六大框架在2026年5月的同台竞技揭示了一个核心趋势:所有框架都在从"工具库"向"运行时"进化,但它们选择的路径和代价截然不同。本文将从执行模型、状态管理、工具调用、可观测性、生产就绪度五个维度进行深度拆解。
| 维度 | Google ADK 2.0 | LangGraph 1.2.0 | OpenAI Agents SDK | Claude Agent SDK | CrewAI 1.10+ | Smolagents |
|---|---|---|---|---|---|---|
| 发布日期 | 2026-05-19 | 2026-05-12 | 2026-04-15 | 2026-Q2 | 2026-03 | 2026持续更新 |
| 核心架构 | 图工作流运行时 | 有状态图引擎 | Handoff原生循环 | MCP驱动Agent Loop | 角色进程编排 | 代码直译执行 |
| 执行模型 | DAG + 条件路由 | StateGraph + Checkpoint | Agent循环 + Guardrails | 工具优先循环 | 顺序/层级/并行 | Code Agent |
| 状态管理 | Session State | Checkpoint + Durable | Thread State | Context Window | 短期+长期记忆 | 最小状态 |
| 工具协议 | MCP + Function | LangChain Tools | Function Calling + MCP | MCP原生 | MCP + A2A | HuggingFace Tools |
| 沙箱隔离 | Cloud Run沙箱 | 外部集成 | 原生Sandbox | Self-hosted Sandbox | 无内置 | Docker可选 |
| 语言 | Python | Python/JS | Python | Python/TypeScript | Python | Python |
| GitHub Star | ~15k | ~25k | ~20k | ~10k | ~30k | ~26k |
| 许可证 | Apache 2.0 | MIT | Apache 2.0 | MIT | MIT | Apache 2.0 |
| 云绑定 | GCP倾向 | 无 | OpenAI倾向 | Anthropic倾向 | 无 | 无 |
Google ADK 2.0在2026年5月19日的Google I/O上正式发布GA版本,这是自ADK诞生以来最根本的架构变更。ADK 1.x采用层级Agent树(hierarchical agent tree)——一个根"管理者"Agent将任务委托给子Agent,本质上是递归的Agent嵌套。ADK 2.0彻底抛弃了这个模型,引入了Graph Workflow Runtime。
图工作流运行时的核心思想是:将Agent逻辑建模为有向无环图(DAG),其中每个节点是一个执行单元(可以是LLM调用、工具执行或条件判断),边定义了数据流和控制流。这与LangGraph的StateGraph模型形成了正面竞争,但两者在实现哲学上存在关键差异。
ADK 2.0的图定义方式:
from google.adk import Workflow, Agent, LlmAgent
from google.adk.workflows import edge, node
# 定义工作流节点
researcher = LlmAgent(
name="researcher",
model="gemini-2.5-pro",
instruction="Research the given topic thoroughly"
)
writer = LlmAgent(
name="writer",
model="gemini-2.5-pro",
instruction="Write a report based on research findings"
)
# 构建图工作流
workflow = Workflow()
workflow.add_node("research", researcher)
workflow.add_node("draft", writer)
workflow.add_node("review", reviewer)
workflow.add_edge("research", "draft")
workflow.add_edge("draft", "review")
# 条件路由:如果review不通过,回到draft
workflow.add_conditional_edge("review", should_revise,
{"revise": "draft", "approve": END})
ADK 2.0引入了三个关键原语:Routing(条件路由)、Fan-out/Fan-in(并行执行与汇合)、Task Agent(将子图封装为可复用的Agent组件)。Fan-out/Fan-in允许一个节点同时触发多个下游节点并行执行,然后在所有分支完成后汇合结果——这是LangGraph目前不原生支持的。
ADK 2.0与Google Cloud的深度集成是双刃剑。Managed Agents on Cloud Run提供了一键部署能力,Antigravity 2.0 CLI支持本地开发到云端部署的无缝切换。但对于非GCP用户,ADK的部署体验会大打折扣。ADK 2.0的Checkpoint机制依赖于Google Cloud的Session Service,如果在本地运行,需要额外配置状态后端。
ADK 2.0适合打包为"GCP企业Agent开发训练营",特别是针对已有GCP基础设施的企业客户。Google在I/O 2026上宣布的Managed Agents + ADK 2.0 + A2A Protocol三件套,为企业级多Agent系统提供了完整的解决方案栈。
LangGraph 1.2.0于2026年5月12日发布,核心升级是将持久化执行(Durable Execution)从实验性功能提升为生产级能力。这个升级看似是一个小版本迭代,实际上解决了Agent生产部署中最棘手的问题之一:长时间运行的Agent在崩溃后如何恢复。
在1.2.0之前,LangGraph的Checkpoint机制可以保存状态快照,但恢复时需要手动指定checkpoint ID,且不能精确地从失败点继续执行。1.2.0引入了Error Handler Resume机制——当某个节点执行失败时,系统会自动保存失败前的所有已完成节点结果,恢复时跳过这些节点直接从失败点重试。
from langgraph.graph import StateGraph, START, END
from langgraph.checkpoint.memory import MemorySaver
# 定义状态
class AgentState(TypedDict):
messages: list
research_result: str
draft: str
# 构建图
graph = StateGraph(AgentState)
graph.add_node("research", research_node)
graph.add_node("draft", draft_node)
graph.add_node("review", review_node)
# 持久化执行:即使崩溃也能恢复
checkpointer = SqliteSaver.from_conn_string("agent.db")
app = graph.compile(
checkpointer=checkpointer,
interrupt_before=["review"], # 人机协作断点
)
# 从checkpoint恢复执行
config = {"configurable": {"thread_id": "session-1"}}
result = app.invoke(None, config) # None表示从最新checkpoint恢复
LangGraph的StateGraph与ADK 2.0的Workflow在概念上相似,但实现哲学不同。LangGraph是状态驱动的——图的每一步都读取和修改一个共享状态对象,节点的输入输出都是状态的一部分。ADK 2.0是消息驱动的——节点之间通过显式的消息传递通信,每个节点有独立的输入输出Schema。
状态驱动的优势是调试简单——你只需要检查一个状态对象就知道系统在做什么。消息驱动的优势是解耦更好——每个节点可以独立开发和测试。在实际生产中,状态驱动更适合需要全链路可观测性的场景,消息驱动更适合需要独立扩展的场景。
LangGraph 1.2.0的持久化执行使其成为长时间运行、需要人机协作的复杂工作流的最佳选择。如果你的Agent需要运行数小时甚至数天,中间需要人工审批,LangGraph是目前唯一提供原生崩溃恢复的主流框架。
2026年4月15日,OpenAI发布了Agents SDK自诞生以来最重要的更新,引入了三大企业级能力:
1. 原生沙箱执行(Native Sandbox Execution):SDK内置了基于MicroVM的沙箱环境,Agent执行的代码和工具调用都在隔离环境中运行。这意味着Agent可以安全地执行用户上传的代码、访问文件系统,而不会影响宿主系统。
from openai import agents
agent = agents.Agent(
name="code_analyst",
instructions="Analyze the uploaded code and suggest improvements",
tools=[agents.code_interpreter_tool(), agents.file_search_tool()],
sandbox=agents.SandboxConfig(
timeout=300,
memory_limit="512MB",
network_access=False,
),
)
result = agents.Runner.run(agent, "Analyze this codebase")
2. 模型原生Harness(Model-Native Harness):这是一个新的抽象层,允许开发者在不修改Agent逻辑的情况下切换底层模型。Harness负责处理不同模型的prompt格式、工具调用协议和响应解析差异。
3. 长时运行Agent支持:新增了RunConfig中的max_turns和timeout参数,支持Agent持续运行数百轮对话而不会超时或丢失上下文。
OpenAI Agents SDK最独特的设计是Handoff机制——Agent之间的协作不是通过共享状态或消息传递,而是通过"交接"(handoff)实现的。一个Agent可以将对话控制权交给另一个更专业的Agent,交接时可以附带上下文信息。
from openai.agents import Agent, Runner, handoff
triage_agent = Agent(
name="triage",
instructions="Determine which specialist should handle this request",
handoffs=[
handoff(research_agent, description="For research questions"),
handoff(code_agent, description="For coding tasks"),
handoff(data_agent, description="For data analysis"),
],
)
# Agent自动决定交接给哪个专业Agent
result = Runner.run(triage_agent, "Help me analyze this dataset")
OpenAI Agents SDK的沙箱和Harness功能需要OpenAI平台支持。虽然SDK本身是开源的,但沙箱运行时依赖OpenAI的基础设施。这意味着你可以在本地开发,但生产级沙箱执行需要使用OpenAI的托管服务。对于需要完全自托管的企业,这是一个需要权衡的因素。
Anthropic的Claude Agent SDK于2026年Q2正式发布,其核心理念是将Claude Code的完整Agent循环(包括工具执行、上下文管理、子Agent调度)打包为可编程SDK。与OpenAI Agents SDK从零设计不同,Claude Agent SDK是基于已经过大规模验证的Claude Code运行时构建的。
Claude Agent SDK的架构可以用三个层次理解:
graph TD
A[开发者代码] --> B[Claude Agent SDK]
B --> C[Agent Loop Engine]
C --> D[MCP Tool Registry]
C --> E[Context Manager]
C --> F[Sub-Agent Dispatcher]
D --> G[File System Tools]
D --> H[Shell Tools]
D --> I[Web Tools]
D --> J[Custom MCP Servers]
E --> K[Conversation History]
E --> L[File Context]
E --> M[Project Context]
F --> N[Parallel Sub-Agents]
F --> O[Sequential Sub-Agents]
Claude Agent SDK最大的差异化在于MCP原生。与OpenAI Agents SDK需要通过Function Calling适配层连接工具不同,Claude Agent SDK直接使用MCP(Model Context Protocol)作为工具发现和调用协议。这意味着: - 工具描述通过MCP Schema自动发现 - 工具调用通过MCP Transport直接执行 - 工具结果通过MCP Response标准化返回
from claude_agent_sdk import Agent, MCPServer
# MCP原生工具注册
agent = Agent(
model="claude-sonnet-4-6",
mcp_servers=[
MCPServer("filesystem", command="mcp-server-filesystem", args=["/workspace"]),
MCPServer("github", command="mcp-server-github"),
MCPServer("postgres", connection_string="postgresql://..."),
],
)
# Agent自动发现并使用MCP工具
result = agent.run("Read all Python files in the project and find bugs")
Claude Agent SDK提供了Self-hosted Sandbox选项——Agent的思考过程在Anthropic的云端运行,但工具执行在开发者自托管的沙箱环境中。这种"思考在云、执行在本地"的架构解决了数据隐私与Agent能力的矛盾。
对于金融、医疗等强监管行业,所有代码和数据处理必须在自有基础设施上运行。Claude Agent SDK的Self-hosted Sandbox允许这些行业在不泄露数据的前提下使用Claude的Agent能力。
Claude Agent SDK目前只支持Anthropic的Claude模型系列。虽然Agent Loop本身是模型无关的,但SDK深度绑定了Claude的prompt格式和工具调用协议。如果你想使用GPT-4.1或Gemini作为后端,Claude Agent SDK不是合适的选择。
CrewAI在2026年1月发布的1.9.3版本中,成为第一个原生支持Google A2A(Agent-to-Agent)协议的主流框架。这一决策使CrewAI在多框架互操作性方面获得了先发优势。
A2A协议的核心价值是让不同框架构建的Agent能够直接通信和协作。在此之前,如果你想用CrewAI的"研究员"Agent和LangGraph的"分析师"Agent协作,需要在两者之间建立自定义的适配层。有了A2A协议,两个Agent可以通过标准化的消息格式直接对话。
from crewai import Agent, Task, Crew, Process
from crewai.a2a import A2AServer, A2AClient
# 定义A2A兼容的Crew
researcher = Agent(
role="Senior Research Analyst",
goal="Uncover cutting-edge developments in AI",
backstory="You are a seasoned researcher with 10 years of experience",
tools=[search_tool, scrape_tool],
)
writer = Agent(
role="Tech Content Strategist",
goal="Craft compelling content on AI advancements",
backstory="You are a content strategist expert at making complex topics accessible",
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential,
)
# 通过A2A协议暴露Crew为可被其他框架调用的Agent
a2a_server = A2AServer(crew, port=8080)
a2a_server.start()
CrewAI在2026年推出的AMP(Agent Management Platform)提供了统一控制面板、实时可观测性和Agent版本管理。AMP是CrewAI商业化战略的核心——开源框架免费,企业级管理平台收费。这种模式类似于GitLab的开源核心+企业版。
CrewAI的角色编排模型天然适合需要模拟团队协作的业务流程——市场调研、内容生产、客户服务、财务审计等。其"定义角色→分配任务→设定流程"的三步开发模式,使得非技术背景的业务人员也能理解和参与Agent系统的设计。
Smolagents是HuggingFace推出的极简Agent框架,核心理念是"Agent用代码思考"——Agent不是通过JSON格式的工具调用来使用工具,而是直接生成Python代码来执行操作。
from smolagents import CodeAgent, HfApiModel, tool
@tool
def search_web(query: str) -> str:
"""Searches the web for the given query."""
return web_search(query)
@tool
def analyze_data(file_path: str) -> str:
"""Analyzes a CSV file and returns summary statistics."""
import pandas as pd
df = pd.read_csv(file_path)
return df.describe().to_string()
agent = CodeAgent(
tools=[search_web, analyze_data],
model=HfApiModel("Qwen/Qwen2.5-72B-Instruct"),
)
# Agent直接生成代码来解决问题
agent.run("Search for latest AI research papers and analyze their citation trends")
Smolagents的优势在于其极低的抽象层。整个框架的核心代码约1000行,开发者可以在一个下午读完所有源码并完全理解其行为。这在生产环境中意味着: - 出Bug时可以精确定位问题 - 需要定制时可以直接修改源码 - 不存在"框架黑箱"问题
Smolagents的极简哲学也带来了明显的局限: - 没有内置的状态持久化——Agent重启后丢失所有上下文 - 没有原生的多Agent协作——需要手动编排多个Agent的交互 - 安全性依赖代码沙箱——Agent生成的代码如果不加限制,可能执行危险操作 - 可观测性基础——没有内置的tracing或logging框架
Smolagents适合作为AI Agent入门教学工具——用最少的代码展示Agent的核心概念(工具调用、推理循环、多步执行)。对于培训机构和训练营,Smolagents可以作为"第一天"的教材,让学员快速理解Agent的本质,然后再过渡到LangGraph或CrewAI学习生产级开发。
尽管六大框架的出发点和哲学截然不同,2026年5月的版本更新揭示了三个共同的进化方向:
graph TB
subgraph "2026五月Agent框架趋同方向"
A["方向一:图编排成为标准"]
B["方向二:沙箱隔离成为标配"]
C["方向三:MCP协议成为通用工具语言"]
end
subgraph "Google ADK 2.0"
A1["Graph Workflow Runtime"]
B1["Cloud Run Sandbox"]
C1["MCP + Function Calling"]
end
subgraph "LangGraph 1.2.0"
A2["StateGraph(已有)"]
B2["外部集成"]
C2["LangChain Tools → MCP适配"]
end
subgraph "OpenAI Agents SDK"
A3["Handoff Graph"]
B3["Native MicroVM Sandbox"]
C3["Function Calling + MCP"]
end
subgraph "Claude Agent SDK"
A4["Tool-first Loop"]
B4["Self-hosted Sandbox"]
C4["MCP Native"]
end
subgraph "CrewAI 1.10+"
A5["Sequential/Hierarchical Process"]
B5["无内置"]
C5["MCP + A2A Native"]
end
subgraph "Smolagents"
A6["Code Execution DAG"]
B6["Docker可选"]
C6["HuggingFace Tools"]
end
A --> A1 & A2 & A3 & A4 & A5 & A6
B --> B1 & B2 & B3 & B4 & B5 & B6
C --> C1 & C2 & C3 & C4 & C5 & C6
方向一:图编排成为标准。ADK 2.0引入Graph Workflow、LangGraph强化StateGraph、OpenAI Agents SDK的Handoff本质上也是一种有向图。即使是CrewAI的Sequential/Hierarchical Process和Smolagents的Code Execution DAG,底层都是某种形式的图执行。图编排正在成为Agent框架的"统一语言"。
方向二:沙箱隔离成为标配。OpenAI Agents SDK的Native Sandbox、Claude Agent SDK的Self-hosted Sandbox、ADK 2.0的Cloud Run Sandbox——三大厂商不约而同地在SDK层面集成沙箱能力。这意味着Agent框架正在从"开发者工具"进化为"运行时平台",安全执行成为核心能力。
方向三:MCP协议成为通用工具语言。Claude Agent SDK的MCP Native、CrewAI的A2A+MCP、OpenAI Agents SDK的MCP支持——MCP正在成为Agent与外部工具交互的标准协议。这将打破框架之间的工具生态壁垒。
| 场景 | 推荐框架 | 理由 |
|---|---|---|
| 企业级长时运行工作流 | LangGraph 1.2.0 | 原生持久化执行、崩溃恢复、人机协作断点 |
| GCP生态企业Agent | Google ADK 2.0 | Cloud Run托管、Antigravity CLI、与GCP深度集成 |
| 快速原型验证 | Smolagents | 千行代码、零学习曲线、快速验证概念可行性 |
| 多框架Agent互操作 | CrewAI 1.10+ | A2A原生支持、角色编排直观、AMP企业版可观测性 |
| 高安全要求场景 | OpenAI Agents SDK / Claude Agent SDK | 原生沙箱隔离、代码执行安全边界 |
| MCP工具生态优先 | Claude Agent SDK | MCP原生、工具自动发现、无需适配层 |
| 教育培训/入门 | Smolagents → CrewAI → LangGraph | 从简到繁的学习路径 |
| 商业化SaaS产品 | LangGraph / ADK 2.0 | 生产级可靠度、可扩展性、企业客户认可度高 |
在生产环境中,单一框架 rarely能满足所有需求。一个常见的架构模式是:
这种混搭架构的关键挑战是框架间的状态传递和错误传播。A2A协议解决了Agent间的通信问题,但没有解决状态一致性问题。在实践中,大多数团队选择一个框架作为核心编排层,其他框架作为"被编排的执行单元",而不是真正的对等协作。
对于希望深入了解Agent框架架构演进的读者,建议关注三个方向:一是Google A2A协议对多框架互操作的实际影响——目前还处于早期阶段,生态成熟度有待观察;二是MCP协议的标准化进程——如果MCP成为W3C或ISO标准,将从根本上改变Agent工具生态的格局;三是Smolagents的"代码即推理"范式是否会从极简框架走向主流——目前OpenAI和Anthropic都在探索类似思路,让Agent直接生成代码而非JSON工具调用。
[!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 等场景全覆盖。
