<!-- title: 谁掌控循环：六框架控制权内核横评 -->

到 2026 年中，"该用哪个 Agent 框架"这个问题已经被问错了。真正决定一个 Agent 系统 fate 的，不再是框架的名字，而是**循环（loop）的归属权**——谁来发起一轮调用、谁来决定何时停步、谁来在崩了之后从断点接续。本文以 2026 年六月刚刚定盘的六大框架（Claude Agent SDK、Strands Agents、LangGraph、OpenAI Agents SDK、CrewAI、AG2）为样本，把它们归纳为四种"控制权内核"，并用同一道试金石——可恢复性（resilience & resume）——去戳穿每种内核最典型的崩溃模式与变现边界。

## 一、2026 定盘：六框架已不再是同质竞品

把任何一篇写于 2026 之前的对比文丢掉吧，下面的版本号与时间线才是真相。**微软 Agent Framework 1.0** 于 2026 年 4 月 3 日正式 GA，把 AutoGen 与 Semantic Kernel 合并成同一套 .NET/Python SDK，同时原生支持 MCP 与 A2A；这意味着曾经三足鼎立的微软系已经收口为单引擎。**AG2** 作为 AutoGen 进入维护模式后的社区续命体，在 v0.12 引入了基于 MemoryStream 的事件驱动架构，把"会话历史"升级成了可重放的 pub/sub 流。

**Claude Agent SDK**（原 Claude Code SDK）在 2026 年初改名，并从 6 月 15 日起将订阅额度切成两本账——Agent SDK 与非交互式 `claude -p` 单独从一个"Agent SDK 月度额度"扣费（Pro $20 / Max 5x $100 / Max 20x $200），用尽即停或回退到标准 API 价，不滚存。这是第一次有厂商对"循环本身"单独计价，等于在经济学层面承认了"运行时即内核"。

**CrewAI** 跑到 v1.14.6，GitHub 星标 5.24 万，过去 12 个月执行了约 20 亿次 Agent 任务；**LangGraph** 月下载量突破 4700 万，Klarna、Uber、LinkedIn 都在生产上跑它；**Strands Agents** 是 AWS 2025 年开源、如今 1.34+ 的极简派，靠"模型即循环"和语义检索工具表在 Bedrock 生态站稳。协议层也在 2026 收敛：ACP 并入 A2A 交由 Linux Foundation 托管，MCP 跨过 200 个服务器实现。框架问题已不再是"用不用"，而是"你愿意把控制权交给哪一种内核"。

## 六框架多维对比

| 维度 | Claude Agent SDK | Strands Agents | LangGraph | OpenAI Agents SDK | CrewAI | AG2 |
|------|------------------|----------------|-----------|---------------------|--------|-----|
| 控制权内核 | 运行时即循环 | 模型即循环 | 图即循环 | 协议(交接)即循环 | 角色(声明)即循环 | 事件即循环 |
| 状态模型 | Session 持久环境 | 对话历史 | 类型化状态图+reducer | 上下文变量+会话 | 任务上下文+共享内存 | MemoryStream 流 |
| 持久化 | 内建，Session 自动续跑 | 手动(DynamoDB/S3) | Checkpointer(mem/SQLite/PG) | 2026 新增会话级 | 手动(文件) | 事件重放 |
| 人在回路 | 事件流中断 | 自定义工具 | 一等公民 `interrupt()` | Harness 审批回调 | 自定义工具 | GroupChat 管控 |
| 多步任务准确率 | 92% | 89% | 94% | 90% | 87% | 91% |
| 单任务 token 成本 | $0.15 | $0.10 | $0.08 | $0.11 | $0.12 | $0.45 |
| 模型可移植性 | 仅 Claude | 多家(Bedrock/Anthropic/OpenAI/Ollama) | 任意(LangChain) | OpenAI 兼容 | 多模型 | 多模型 |
| License | 专有 SDK | Apache 2.0 | MIT | MIT | Apache 2.0 | Apache 2.0 |

## 二、六框架控制权内核逐个拆解

### 1. Strands Agents——把循环彻底交给模型

Strands 的赌注最激进：只给 `Model`、`Tools`、`Agent` 三个原语，**所有规划与路由决策全部下放给 LLM**。底层是一个三阶段事件循环——模型生成响应、框架解析函数调用、把工具结果回喂——直到模型只产出纯文本为止。

```python
from strands import Agent
from strands.tools import tool

@tool
def get_weather(city: str) -> str:
    """Get current weather for a city."""
    return f"72F and sunny in {city}"

agent = Agent(tools=[get_weather])
agent("What is the weather in Seattle?")
```

优点是"无可调试的框架魔法"——没有图、没有状态 schema、没有路由逻辑，代码即真理；缺点同样致命：循环的稳定性完全等于模型本身的稳定性，模型一抽风，整个 Agent 抽风，而你没有图可以回放定位。它的杀手锏是内建 Retrieve 工具用语义检索在数千个工具里动态挑选——这是它在企业微服务海里的护城河。**变现评估**：极适合做"Bedrock 原生训练营"，门槛最低、出活最快，但客单价受限于"没有复杂编排"带来的护城河浅。

### 2. LangGraph——把循环编译成确定性图

LangGraph 把 Agent 工作流建模成带显式状态的**有向图**，节点是函数，边是路由，reducer 定义并发写同一状态键时的合并规则。`compile(checkpointer=...)` 一调，可中断、可检查点、可从任意节点回放重跑——这就是著名的"time travel"调试。

```python
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
from typing import Annotated

class AgentState(TypedDict):
    messages: Annotated[list, add_messages]
    current_step: str

g = StateGraph(AgentState)
g.add_node("planner", planner_node)
g.add_node("executor", executor_node)
g.add_edge("planner", "executor")
g.add_conditional_edges("executor", route_after_execution)
app = g.compile(checkpointer=MemorySaver())
```

优点是状态管理最精密、`interrupt()` 让人在回路一等公民、生产履历最深；缺点是设计前置成本高，简单任务纯属过度工程。多步任务准确率 94% 居首、单任务 $0.08 最省，靠的就是确定性图压制了模型自由度。**变现评估**：最适合包装成"企业级可审计 Agent 训练营"，因为有 reducer/checkpoint/interrupt 这套硬核词汇撑住客单价，且 Klarna/Uber 的背书是最好的招生素材。

### 3. Claude Agent SDK——运行时本身就是循环

它把每个 Agent 当成一个**有状态、沙箱化的运行时**而非函数链：`Agent` 封装模型与工具，`Environment` 是配置好的容器模板，`Session` 是环境里跑着的、跨轮持久化的实例，`Events` 是你与 Agent 之间的事件流。

```python
from claude_agent_sdk import Agent, Session

agent = Agent(
    model="claude-sonnet-4-20250514",
    system_prompt="You are a data analysis assistant.",
    tools=[read_csv, plot_chart, query_database],
    mcp_servers=["filesystem", "postgres"],
)
async with Session(agent, environment="data-analyst-env") as session:
    response = await session.send("Analyze Q1 revenue trends")
    async for event in response:
        print(event)
```

状态活在会话环境里——写盘的文件、设的环境变量、建的库都跨轮留存，最适合编码、数据分析这类"产生制品"的任务。代价是**与 Claude 模型强绑定**，不能换 GPT 或 Llama，且 6 月 15 日起循环本身被单独计价，跑 CI/定时任务必须为 Agent SDK 额度单独做预算。**变现评估**：适合做"Claude 原生编码 Agent 训练营"，深度优势明显，但强绑定与额度账本会让对成本敏感的学员望而却步。

### 4. OpenAI Agents SDK——交接链即循环

OpenAI 把多 Agent 建模成**交接链（handoff chain）**：Agent A 把控制权交给 B，B 再交给 C，形成易理解、易调试的管线。它背后跑的是 Codex 同款 harness——把指令、工具、审批、追踪、续跑记账包在一起，支持长时运行与沙箱执行。

```python
from agents import Agent, Runner, function_tool

@function_tool
def refund(order_id: str) -> str:
    return f"Refunded {order_id}"

triage = Agent(name="Triage", handoffs=[billing])
billing = Agent(name="Billing", tools=[refund])
result = Runner.run_sync(triage, "我要退款 order_123")
```

优点是顺序交接极其直观、与 GPT/Codex 生态无缝、2026 年 4 月 harness 更新后追踪粒度到"工具审批/续跑/交接决策"；缺点是交接本质上**偏顺序**，原生不支持并行 Agent 或图式路由，复杂拓扑要自己造轮子。**变现评估**：适合"客服/工单管线训练营"，交接链天然映射支持分级与工单流转，叙事好讲，但天花板被"顺序"二字锁死。

### 5. CrewAI——角色声明即循环

CrewAI 走"角色驱动"路线：用 `role/goal/backstory` 三元组定义人格、用 `expected_output` 声明任务、把执行顺序交给框架。v1.14 已支持多模型混用、A2A 协议、MCP 适配与企业版 AMP 可视化编辑器。

```python
from crewai import Agent, Task, Crew

researcher = Agent(role="Senior Market Researcher",
    goal="Gather competitive intelligence",
    backstory="10 years in tech analysis.", tools=[web_search])
research_task = Task(description="Research the 2026 agent landscape",
    expected_output="A 2000-word analysis", agent=researcher)
writer = Agent(role="Technical Writer", goal="Write clearly")
write_task = Task(description="Write the blog post",
    expected_output="SEO post", agent=writer, context=[research_task])
Crew(agents=[researcher, writer], tasks=[research_task, write_task]).kickoff()
```

优点是**学习曲线最平、对非工程师最友好、原型出活最快**；缺点是状态精细控制远不如 LangGraph，复杂编排容易黑盒。准确率 87% 垫底但延迟最低。**变现评估**：变现天花板最高——"角色化多 Agent"是给业务方讲故事最顺的范式，最适合做面向产品经理/运营的低代码训练营，招生面最广。

### 6. AG2——事件流即循环

AG2 继承 AutoGen 的 GroupChat 自由对话范式，但用 MemoryStream 把它重构成了**事件驱动、异步、可重放**的架构。`GroupChatManager` 控制发言选择（轮询/LLM 选/自定义）与终止条件。

```python
from ag2 import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

coder = AssistantAgent(name="Coder",
    system_message="Python expert", llm_config={"model": "gpt-4o"})
reviewer = AssistantAgent(name="Reviewer",
    system_message="Code review expert")
executor = UserProxyAgent(name="Executor", human_input_mode="NEVER",
    code_execution_config={"work_dir": "workspace"})
gc = GroupChat(agents=[coder, reviewer, executor], messages=[], max_round=12)
manager = GroupChatManager(groupchat=gc)
executor.initiate_chat(manager, message="Implement a FastAPI auth module")
```

优点是**自由对话+代码执行**的范式独一无二，研究、协作编码、教学仿真没有对手，v0.12 原生 MCP；缺点是延迟高、token 成本 $0.45/task 最贵——多轮自由讨论天然烧 token。**变现评估**：适合做"研究型/科研 Agent 训练营"，人群窄但单价可拉高，靠"群智协作"的故事。

## 三、可恢复试金石：同一个任务，六种崩溃

把"调研+写报告"这个任务分别交给六框架并中途 `kill -9`，差异瞬间暴露。**Strands** 崩了基本重跑——它没有检查点，状态全在对话历史里，进程一死，记忆归零。**AG2** 靠 MemoryStream 事件重放能续，但群聊顺序难复现，重放常跑偏。**CrewAI** 只能任务级 replay，粒度粗。**OpenAI** 靠 harness 的 resume 记账接续，但仅限顺序交接链。**Claude Agent SDK** 最特殊——Session 环境里的文件与数据库是真实落盘的，进程死了，制品还在，重启续跑最自然，这是"运行时即内核"的真正红利。**LangGraph** 最强——`interrupt()` 能在任意节点暂停等人审批，再从该检查点精确续跑，配合 LangGraph Studio 可逐节点回放、回滚。一句话：**谁把状态做成了可检查点的一等公民，谁的恢复成本就最低**；把状态塞进对话历史的框架，恢复就是重跑。

## 四、四种控制权内核归纳

把六个框架压成四种内核，选型的本质就清楚了：

```mermaid
flowchart LR
    Q["循环归谁掌控?"] --> A["模型即循环<br/>Strands"]
    Q --> B["图即循环<br/>LangGraph"]
    Q --> C["运行时即循环<br/>Claude Agent SDK"]
    Q --> D["协议即循环<br/>OpenAI交接 / CrewAI角色 / AG2事件"]
    A -.确定性低.-> R1["崩溃=重跑"]
    B -.确定性高.-> R2["崩溃=检查点续跑"]
    C -.制品落盘.-> R3["崩溃=环境续跑"]
    D -.协同原语.-> R4["崩溃=任务/事件重放"]
```

- **模型即循环**（Strands）：最自由、最不可控，护城河在工具语义检索。
- **图即循环**（LangGraph）：最精密、最重，护城河在 reducer+checkpoint+interrupt 三件套。
- **运行时即循环**（Claude Agent SDK）：制品天然持久，护城河在沙箱环境与最深 MCP，代价是模型强绑定。
- **协议即循环**（OpenAI/CrewAI/AG2）：靠交接、角色、事件三种协同原语织出循环，门槛低、可移植，但恢复粒度粗。

## 五、场景推荐

| 你的约束 | 推荐 | 理由 |
|----------|------|------|
| 已在 AWS + Bedrock，工具成百上千 | **Strands** | 极简+语义检索工具表+IAM 原生 |
| 需要可审计、可回放、复杂有状态工作流 | **LangGraph** | 检查点+interrupt+生产履历 |
| 只用 Claude，做编码/数据分析 | **Claude Agent SDK** | 沙箱环境+最深 MCP，但要为额度单独预算 |
| GPT 生态、顺序管线（客服/工单） | **OpenAI Agents SDK** | 交接链天然映射分级 |
| 非工程师团队、要快速出原型 | **CrewAI** | 角色声明最直观、变现叙事最好 |
| 研究型群智协作、代码 write-run-debug | **AG2** | GroupChat 事件重放独一无二 |

## 结论

2026 年的框架之争已经收敛成一个判断题：**你的系统里，循环归谁掌控，以及崩了之后从哪里接续。** 选模型即循环，换来自由但接受重跑；选图即循环，换来精密但接受设计税；选运行时即循环，换来制品持久但接受模型锁定与额度账本；选协议即循环，换来低门槛但接受粗粒度恢复。真正值钱的不是框架名字，而是你能否说清自己押注的是哪一种内核、以及它最典型的崩溃模式你能否兜得住。把这道判断题想透了，6 月 15 日那本新开的"循环计费账"，你才知道该为它预留多少预算。

## 参考来源

1. [2026 AI Agent Framework Showdown: LangGraph vs CrewAI vs AG2 vs Claude SDK vs Strands vs OpenAI — QubitTool](https://qubittool.com/blog/ai-agent-framework-comparison-2026) — 六框架代码级横评，含状态管理、工具集成、多步任务准确率与 token 成本基准
2. [AI Agent Frameworks (2026 Update): 8 SDKs Compared + the Claude Agent SDK Primitive Reference — Morph](https://www.morphllm.com/ai-agent-framework) — 2026 精确版本事实，含微软 Agent Framework 1.0 GA、CrewAI 52.4k 星、6 月 15 日 Claude Agent SDK 订阅额度切分
3. [Agent Framework Comparison 2026: LangGraph vs CrewAI vs OpenAI Agents SDK — SwarmSignal](https://swarmsignal.net/agent-framework-comparison-2026/) — 决策矩阵式选型指南，覆盖控制权归属与人在回路差异
4. [Choosing a Multi-Agent Framework: LangGraph, CrewAI, Microsoft Agent Framework or OpenAI Agents SDK — CodeBridge](https://www.codebridge.tech/articles/choosing-a-multi-agent-framework-langgraph-crewai-microsoft-agent-framework-or-openai-agents-sdk) — 微软 Agent Framework 1.0 合并 AutoGen 与 Semantic Kernel 的工程影响分析

> [!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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
