2026年年中回看智能体框架战场,最大变化不是哪个模型更强,而是框架层被模型厂商集体"吃掉"了。OpenAI、Google、Anthropic、AWS、微软五家各自发布了第一方Agent SDK,加上仍在阵地的LangGraph与CrewAI,主流选择收敛为七个栈。它们都在向同一个标准靠拢——MCP做工具、A2A做智能体互通——所以工具集成的差异化已被抹平,真正的分水岭只剩一件事:每个栈押注的核心编排原语(primitive)是什么。手递手(handoff)、子智能体层级、代码原生的harness循环、模型驱动的tools-first、对话+插件、状态图、角色编组——七种原语决定了你写代码的姿势、迁移成本,以及这套系统适合解什么问题。本文逐一拆解这七种原语的架构心法,给出每个栈的代码骨架,最后落到一个三问选型法。
| 框架/SDK | 维护方 | 核心原语 | 控制流哲学 | 原生语言 | MCP/A2A | 最适合场景 |
|---|---|---|---|---|---|---|
| OpenAI Agents SDK | OpenAI | Handoff(手递手) | Agent间显式转交 | Py/TS/Go | 是/是 | 客服转接、流水线分诊 |
| Google ADK 2.0 | 子Agent层级+内置工作流 | 代码优先的树形编排 | 5语言 | 是/是 | 多模态、企业混合云 | |
| Claude Agent SDK | Anthropic | Harness+文件系统subagent | 模型驱动循环、harness驻会 | Py/TS | 是/是 | 编码自动化、长任务 |
| AWS Strands Agents | AWS | 模型驱动loop+tools-first | 写函数、模型自己编排 | Py/TS | 是/是 | AWS原生、工具密集 |
| Microsoft Agent Framework 1.0 | 微软 | 对话+插件(AutoGen×SK) | 会话群聊+内核插件 | C#/Py | 是/是 | 企业.NET、研究协作 |
| LangGraph | LangChain | 状态图(节点/边/状态) | 显式确定性图 | Py/TS/JS | 是/是 | 高合规、可审计流程 |
| CrewAI | CrewAI | 角色/Crew(role/goal) | 拟人化分工协作 | Py | 是/部分 | 内容生产、流程自动化 |
七栈的底层API已高度同质化,差异上移到了"你怎么描述一个智能体系统"这一层。下面逐一拆解。
OpenAI在2025年3月用Agents SDK替换了实验性的Swarm,2025年10月又叠加了AgentKit。它的核心赌注只有一个动词:handoff。整个系统被建模成一队Agent,每个Agent持有自己的工具和指令,当一个Agent判断"这事不归我管"时,它把会话控制权显式转交给另一个Agent。这与传统函数调用不同——handoff是控制流的迁移,调用栈真的"跳"过去了。
from agents import Agent, Runner
triage = Agent(name="分诊", instructions="判断意图,不归你的就转交")
billing = Agent(name="计费", instructions="处理账单问题", tools=[query_bill])
triage.handoffs = [billing]
result = Runner.run_sync(triage, "我要查上个月账单")
优点:心智模型极简,一个handoffs列表就能搭出多Agent流水线;guardrail、tracing、session都是一等公民。缺点:handoff是单向控制转移,做不了复杂并行或条件回路,需要时得自己在外层套循环。变现评估:最适合做"客服转接训练营",门槛低、演示效果直观;但它强绑定OpenAI模型与Responses API,多模型场景下handoff语义无法跨厂商复用。
ADK(Agent Development Kit)2025年4月开源、2026年4月升到2.0、支持五种语言。它的原语是Agent的树形层级:一个root Agent可以挂载sub_agents,再叠加Sequential/Parallel/Loop三种内置workflow,让"多Agent如何协作"成为框架显式提供的能力,而非手写编排。
from google.adk import Agent
from google.adk.tools import FunctionTool
def get_balance(uid: str) -> dict:
return {"balance": 1200}
root = Agent(
name="root", model="gemini-2.5-pro",
sub_agents=[Agent(name="billing", tools=[FunctionTool(get_balance)])],
)
优点:代码优先(code-first),不像LangGraph那样要画图;内置workflow覆盖了90%的多Agent拓扑,少写胶水代码。缺点:层级一旦深了,调试链路偏黑盒,且最佳体验绑定Gemini模型与Vertex生态。变现评估:适合做"企业混合云智能体"产品包,尤其已有GCP的客户;多语言支持是它的差异化护城河。
这是七栈里架构最特殊的一个。Anthropic在2025年10月把Claude Code SDK重命名为Claude Agent SDK,核心特征是harness驻会:模型驱动的主循环(读提示→选工具→执行→回写)跑在一个持久会话里,而subagent、skill、hook、permission都是挂在这个harness上的扩展点。subagent甚至能写成文件——在.claude/agents/auditor.md里用前置元数据声明name、description、tools,就得到了一个可被主Agent委派的子智能体。
from claude_agent_sdk import query, ClaudeAgentOptions
opts = ClaudeAgentOptions(
allowed_tools=["mcp__stripe__*", "Read", "Bash"],
permission_mode="acceptEdits",
)
async for msg in query(prompt="导出本月对账单并核对异常", options=opts):
print(msg)
<!-- .claude/agents/auditor.md -->
---
name: auditor
description: 核对账单异常的子智能体
tools: [Read, Grep, mcp__stripe__*]
---
你是一名严谨的财务审计员……
优点:编码与长任务自动化体验断档领先,hook+permission模式让"人机协同"天然内建;agent即文件,版本管理与团队协作极友好。缺点:这套harness心智强绑定Claude模型,迁移到别家几乎等于重写——OpenAI和Anthropic各自出了官方迁移cookbook,正是因为原语无法1:1映射。变现评估:做"AI编码工程师/Dev自动化"产品的首选底座,训练营可主打subagent编排与hook工程。
Strands 2026年5月21日升到1.0,一年内PyPI下载破1400万。它的哲学是tools-first、model-driven:你只管写工具函数,加个@tool装饰器,剩下的编排(选哪个工具、什么顺序、何时停)全交给模型在loop里自己决定。Strands官方称之为"model-driven"——智能体本身就是一个被工具集武装起来的Python函数。
from strands import Agent, tool
@tool
def get_balance(uid: str) -> str:
return f"用户{uid}余额1200元"
agent = Agent(tools=[get_balance])
agent("查一下用户u1的余额,低于1000就提醒他充值")
优点:上手最快,从安装到第一个能调工具的Agent不到10行代码;原生MCP、A2A、多Agent原语齐全,与Bedrock AgentCore深度集成。缺点:控制流交给模型意味着确定性弱,合规审计要求高的场景要自己加约束;强AWS生态绑定。变现评估:极适合做"一天上手Agent开发"的入门训练营,工具密集型SaaS产品也契合。
这是2026年最大的一次整合。微软在2026年4月3日发布Agent Framework 1.0 GA,正式把AutoGen和Semantic Kernel合并进同一个SDK(.NET与Python双语言、LTS支持)。它的原语是"会话群聊(AgentGroupChat)+ 内核插件(kernel/plugin)"——AutoGen的多Agent对话能力负责协作,Semantic Kernel的函数插件机制负责工具,两者在同一个内核里统一。
var agent = new ChatCompletionAgent {
Name = "Triage",
Instructions = "判断并转交",
Kernel = kernel, // Semantic Kernel 插件 = 可被调用的函数
};
var chat = new AgentGroupChat(agent, billingAgent) {
ExecutionSettings = new() {
TerminationStrategy = new ApprovalStrategy(),
SelectionStrategy = new SequentialSelectionStrategy(),
}
};
优点:企业.NET栈的无缝选择,策略模式(终止/选择策略)让多Agent治理很工程化;旧AutoGen/SK项目有官方迁移路径。缺点:概念多、API面广,学习曲线在七栈里偏陡;强微软生态。变现评估:面向已有Azure/.NET团队的企业落地咨询是稳妥方向,研究型多Agent协作场景也适用。
LangGraph把智能体系统建模成一张有向图:节点是函数,边是控制流,状态是一个在节点间流转的共享字典,循环、分支、checkpoint都由图引擎显式管理。它是七栈里最"重"也最确定的一个——你不依赖模型的"自主判断"来决定走哪条路,而是把路用代码画死。
from langgraph.graph import StateGraph, START, END
from typing import TypedDict
class State(TypedDict):
msg: str; resolved: bool
g = StateGraph(State)
g.add_node("triage", triage_fn)
g.add_node("billing", billing_fn)
g.add_conditional_edges("triage",
lambda s: "billing" if "账单" in s["msg"] else END)
g.add_edge(START, "triage")
app = g.compile(checkpointer=MemorySaver())
优点:确定性最高、最可审计,checkpointing让长流程可断点续跑与回放,合规与生产稳定性强。缺点:画图心智成本高,简单"调三个工具的客服机器人"用它是杀鸡用牛刀;模型无关但生态仍偏LangChain。变现评估:金融、医疗等高合规行业落地的首选底座,"可审计智能体"是清晰的卖点。
CrewAI走的是拟人化分工路线:每个Agent有role(角色)、goal(目标)、backstory(人设),一组Agent组成Crew,任务(Task)分配给角色,框架负责驱动它们协作产出。它是七栈里最"叙事化"的,对非技术用户最直观。
from crewai import Agent, Task, Crew
analyst = Agent(role="账单分析师",
goal="核对异常并出具报告",
backstory="十年企业财务审计经验")
task = Task(description="核对u1本月账单",
expected_output="异常清单", agent=analyst)
Crew(agents=[analyst], tasks=[task]).kickoff()
优点:上手友好、演示效果好,role抽象让业务人员也能参与设计;flows扩展了流程编排能力。缺点:role/backstory对最终质量的实际贡献常常被高估,稳定性与token成本随角色数上升;多Agent治理弱于MAF和LangGraph。变现评估:内容生产、营销自动化训练营的王者,包装成"AI团队"产品对中小企业吸引力强。
flowchart TD
Q[开始选型:你要解决的核心问题是什么?]
Q --> D1{需要确定性/可审计控制流?}
D1 -->|是| LG[LangGraph<br/>押注:状态图]
D1 -->|否| D2{核心是编码/长任务自动化?}
D2 -->|是| CL[Claude Agent SDK<br/>押注:Harness+subagent]
D2 -->|否| D3{多Agent对话/研究协作?}
D3 -->|是| D4{企业.NET栈?}
D4 -->|是| MS[Microsoft Agent Framework<br/>押注:对话+插件]
D4 -->|否| CR[CrewAI<br/>押注:角色/Crew]
D3 -->|否| D5{要最简工具Agent?}
D5 -->|是| D6{强云绑定偏好?}
D6 -->|AWS| ST[Strands<br/>押注:tools-first loop]
D6 -->|OpenAI| OA[OpenAI Agents SDK<br/>押注:handoff]
D6 -->|GCP/多语言| AD[Google ADK<br/>押注:Agent层级]
classDef pick fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
class LG,CL,MS,CR,ST,OA,AD pick;
这条决策链只问四个问题:要不要确定性、是不是编码任务、要不要多Agent协作、有没有云偏好。七种原语各自在某个象限里是最优解,没有"全局最佳"。
贯穿所有选择的一个判断:七栈的工具层(MCP)与互通层(A2A)已同质化,差异化只剩编排原语;而原语就是迁移成本本身。押注一个栈,本质是押注一种"描述智能体系统的语言"——选错原语,换模型时省下的钱会在重写编排时全赔进去。所以选型前,先回答那四个问题,而不是先看哪家模型便宜。
[!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 等场景全覆盖。
