如果2025年你还在纠结"要不要用Agent框架",那2026年的问题已经变成了------该用哪个。
这不是选择题变难了,是赛道变拥挤了。光是过去六个月,市面上就冒出了六七个有模有样的框架。LangGraph、CrewAI、Claude Agent SDK、OpenAI Agents SDK、Strands、AG2......每个都号称自己能打,每个都有一群死忠开发者。
我最近踩了一圈,把六个主流框架从头到尾跑了一遍。这篇文章就是我的选型笔记。
选框架,先搞清楚一件事
在动手之前,你得先想明白一个问题:谁来决定Agent下一步做什么?
这是所有Agent框架设计哲学的分岔路口。
- LangGraph 说:代码说了算,我把流程画成有向图,节点怎么走、分支怎么跳,我来定。
- CrewAI 说:角色说了算,我定义几个"人"(研究员、写手、审稿人),让他们干活就行。
- Claude Agent SDK 说:工具说了算,你只管给我MCP服务器,剩下的Agent自己搞定。
- OpenAI Agents SDK 说:指令说了算,你写清楚prompt,Agent自己安排路径。
- Strands 说:模型说了算,你只声明工具,LLM自己决定调用顺序。
- AG2 说:对话说了算,几个Agent互相讨论,聊着聊着就把事办了。
没有对错,只有适合。
先放一张总表
| 框架 | 设计哲学 | 编排方式 | 状态管理 | 学习曲线 |
|---|---|---|---|---|
| LangGraph | 图驱动、状态显式 | 有向图状态机 | 类型化State+检查点 | 陡 |
| CrewAI | 角色驱动、任务声明式 | 顺序/层级编排 | 任务上下文+共享记忆 | 最平 |
| Claude Agent SDK | 工具驱动、MCP原生 | Agent Loop+MCP | 对话历史+上下文窗口 | 中 |
| OpenAI Agents SDK | 指令驱动、handoff路由 | Harness+Handoffs | Runner上下文+追踪 | 最低 |
| Strands Agents | 模型驱动、工具声明式 | LLM自主决策 | 会话上下文+工具状态 | 较低 |
| AG2 | 对话驱动、事件异步 | 事件发布/订阅 | 会话历史+MemoryStream | 中 |
LangGraph:精算师型框架
先说我的主力框架。LangGraph把Agent工作流建模成有向图,每个节点是一个执行步骤,每条边是转换条件,全局状态对象在图中传递更新。
一句话说清它的价值:你要的是可控,不是惊喜。
适合的场景:
-
合规审批链(每一步都要审计)
-
金融/医疗场景(人机协作审批)
-
多步骤数据处理管道
from typing import TypedDict, Literal
from langgraph.graph import StateGraph, ENDclass ReviewState(TypedDict):
code_diff: str
review_comments: list[str]
approval_status: Literal["pending", "approved", "rejected"]
iteration: intdef analyze_node(state: ReviewState) -> dict:
comments = static_analyzer.check(state["code_diff"])
return {"review_comments": comments, "iteration": state["iteration"] + 1}def llm_review_node(state: ReviewState) -> dict:
review = llm.invoke(f"审查以下代码变更:\n{state['code_diff']}")
return {"review_comments": state["review_comments"] + [review]}graph = StateGraph(ReviewState)
graph.add_node("analyze", analyze_node)
graph.add_node("llm_review", llm_review_node)
graph.add_edge("analyze", "llm_review")
graph.add_conditional_edges("llm_review", decide_approval, {
"approve": END,
"request_changes": "analyze",
})
app = graph.compile()
看到这段代码你就懂了------它的学习曲线确实陡。你需要理解图概念、状态类型、条件路由。但付出的代价换来的是:每个步骤的输入输出都可以回放,每个决策点都可以中断等待人工确认。
就像炒菜时每一道工序都记在本子上,做完还能翻回去查。其他框架做不到这个粒度。
CrewAI:项目经理型框架
CrewAI是我见过上手最快的框架。它的设计理念很简单------别跟我讲图、讲状态机,我就想雇几个人干活。
你定义角色,框架帮你管调度。
from crewai import Agent, Task, Crew
researcher = Agent(
role="高级研究员",
goal="收集和分析竞品最新动态",
backstory="你是一位有10年经验的市场研究专家。",
tools=[web_search, arxiv_reader],
llm="gpt-4o"
)
writer = Agent(
role="技术作家",
goal="将研究结果转化为结构化报告",
backstory="你擅长将复杂技术概念用简洁语言表达。",
llm="claude-sonnet-4-20250514"
)
research_task = Task(
description="调研2026年AI Agent框架市场格局",
expected_output="包含数据支撑的2000字分析报告",
agent=researcher
)
write_task = Task(
description="基于研究结果撰写博客文章",
expected_output="SEO优化的技术博客文章",
agent=writer,
context=[research_task]
)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
30分钟。从零到跑通一个多Agent协作原型,只需要30分钟。不是因为你厉害,是CrewAI把复杂度藏起来了。
但代价是状态控制力不够。 如果你的流程有很多条件分支------比如"如果A结果>阈值就走B路径,否则走C路径"------CrewAI会变得别扭。它适合的是流水线型任务:顺序做、做完就完。
对了,CrewAI支持不同Agent用不同模型。研究员用GPT-4o,写作用Claude------按需分配,精细控费。这个设计很妙。
Claude Agent SDK:瑞士军刀型框架
Claude Agent SDK脱胎于Claude Code。如果你用过Claude Code,那这个SDK的感觉你会很熟悉------只是把终端里的能力搬到了代码里。
连接MCP服务器,Agent自动发现工具。不需要手动定义Function Calling schema。
import anthropic
client = anthropic.Anthropic()
mcp_servers = {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
response = client.agents.run(
model="claude-sonnet-4-20250514",
system="你是一个高级软件工程师,负责代码审查和重构。",
messages=[{"role": "user", "content": "审查src/目录下的所有Python文件"}],
mcp_servers=mcp_servers,
max_turns=50
)
这段代码让我觉得"这才是Agent该有的样子"------你不用手动注册工具函数,不用写tool schema,声明MCP服务器就行,Agent自己连过去、自己发现可用工具。
它的优势是MCP生态。 经过一年多的发展,MCP已经有了几百个公开服务器,覆盖文件系统、GitHub、Slack、数据库、浏览器......就像当年App Store的爆发期。如果你的Agent需要连接大量外部工具,这个SDK的开箱体验是最好的。
OpenAI Agents SDK:快枪手型框架
如果说LangGraph是精算师、CrewAI是项目经理、Claude SDK是瑞士军刀,那OpenAI Agents SDK就是------快餐店。不炫技,但出餐快。
from openai import agents
researcher = agents.Agent(
name="研究员",
instructions="你负责搜索和收集信息,完成后将结果交接给分析师。",
tools=[agents.WebSearchTool()],
handoffs=["分析师"]
)
analyst = agents.Agent(
name="分析师",
instructions="你负责分析信息,生成结构化报告。",
tools=[agents.CodeInterpreterTool()],
handoffs=["审核员"]
)
result = agents.Runner.run(
starting_agent=researcher,
input="调研2026年全球AI基础设施投资趋势",
max_turns=30
)
Handoff路由是它的核心特性------Agent之间通过声明式的handoffs交接任务,不需要手动编排消息传递。就像团队成员之间说"这事我干完了,你接一下"。
内置的安全护栏也很实用。支持输入/输出验证规则,自动拦截不合规的行为。沙盒执行环境让代码解释器和文件操作跑在隔离容器里------这对生产部署很关键。
但它绑定GPT生态。 用其他模型需要自己搞适配。
Strands Agents和AG2:两个不能忽视的选择
Strands:AWS家的"佛系"框架
Strands的设计理念很"AWS":你只管声明工具是什么,模型自己决定怎么用。不需要写执行流程,不需要定义状态图,不需要编排角色。
from strands import Agent
from strands.tools import tool
@tool
def query_database(sql: str) -> str:
return db.execute(sql)
analyst = Agent(
system_prompt="你是一个数据分析师,负责查询数据库并生成报告。",
tools=[query_database]
)
orchestrator = MultiAgentOrchestrator(agents=[analyst])
result = orchestrator.run("分析过去7天的用户增长数据")
1.0版本发布了原生MCP集成和多Agent编排。对AWS生态的团队来说,Strands和Bedrock、Lambda、IAM的配合是天生的。但如果你不用AWS......它就没那么香了。
AG2:AutoGen的"野孩子"
2025年底微软把AutoGen置为maintenance mode后,社区核心成员分叉出了AG2。它继承了AutoGen的对话模式优势,又引入了事件驱动架构。
AG2最擅长的场景是"几个Agent坐在一起讨论"------群聊(GroupChat)模式下,Coder写代码、Reviewer审查、Executor执行,几个Agent自由对话,Manager控制发言顺序和终止条件。
from ag2 import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager
coder = AssistantAgent(
name="Coder",
system_message="你是一个Python专家,负责编写和调试代码。",
llm_config={"model": "gpt-4o"}
)
reviewer = AssistantAgent(
name="Reviewer",
system_message="你是代码审查专家。",
llm_config={"model": "claude-sonnet-4-20250514"}
)
group_chat = GroupChat(agents=[coder, reviewer], messages=[], max_round=12)
manager = GroupChatManager(groupchat=group_chat)
但坦白说------AG2的社区规模比主框架小了一个数量级。用它的风险在于:你选的不是一个框架,是一个"可能没人维护的框架"。
选型决策树
我把这些框架的选择逻辑画成了一棵树,照着走就行:
你的核心需求是什么?
│
├─ 要精细流程控制 + 可审计?
│ └─ LangGraph
│
├─ 要快速出多角色原型?
│ └─ CrewAI
│
├─ 要深度工具链集成(MCP生态)?
│ └─ Claude Agent SDK
│
├─ 团队用AWS生态?
│ └─ Strands Agents
│
├─ 要最快落地、团队熟GPT?
│ └─ OpenAI Agents SDK
│
├─ 需要多个Agent自由讨论?
│ └─ AG2
│
└─ 不确定?
└─ LangGraph(生态最大、生产案例最多)
2026年的趋势信号
有三件事值得关注:
1. Microsoft整合了AutoGen + Semantic Kernel
2026年4月,Microsoft Agent Framework 1.0 GA正式发布,标志着框架生态从"百花齐放"走向"整合收敛"。AutoGen被放弃,核心团队去做了新东西。这在开源世界里见多了------不是项目不好,是母公司换了战略。
2. A2A协议让框架间互操作成为可能
Google推的A2A协议正在被框架广泛接纳。Strands、ADK、MAF都已原生支持。未来你可能不需要选"一个"框架------核心工作流用LangGraph,执行特殊任务的子Agent用Claude SDK,通过A2A让他们协同。
3. MCP成为工具调用的事实标准
就像当年HTTP统一了Web通信,MCP正在统一Agent的工具接口。框架对MCP的支持深度,直接影响Agent能访问的工具生态广度。
最后说点实在的
我自己的建议很简单:
从你最熟悉的模型和生态出发。 用Anthropic就优先看Claude SDK,用GPT就优先看OpenAI Agents SDK,用LangChain生态就LangGraph,想最快出活就CrewAI。
不要追求"最好的框架"。不存在这种东西。
先跑起来。然后在生产中,根据你遇到的真实痛点------是状态失控?是编排太死板?是工具集成不够?------再去调整。
在A2A和MCP推动互操作性的趋势下,"选错框架"的代价正在快速降低。
你平时用哪个框架?踩过什么坑?评论区说说,我整理到后续文章里。