首页 › AI Agent › AI Agent 开发实战 › 第十一节 AI Agent 框架选型

第十一节 AI Agent 框架选型

四大框架设计哲学总览​

在深入每个框架之前,先理解它们的设计原点——每个框架都在回答同一个问题:"谁来决定 Agent 下一步做什么?" 但给出了截然不同的答案。​

​

飞书文档 - 图片

​

​

#EmODUJIGilCB text { white-space: pre; }#EmODUJIGilCB .fb0 { stroke: var(--N900-FG, 0.15); }#EmODUJIGilCB .fb0 {stroke: rgba(31,35,41, 0.15)}#EmODUJIGilCB .fx0 { stroke-miterlimit: 10; }#EmODUJIGilCB .fx0 {stroke-miterlimit: 10}#EmODUJIGilCB .fa1 { fill: rgb(187, 191, 196); }#EmODUJIGilCB .fa1 {fill: rgb(187, 191, 196)}#EmODUJIGilCB .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#EmODUJIGilCB .fx1 {font-style: normal}#EmODUJIGilCB .fx2 { text-anchor: middle; }#EmODUJIGilCB .fx2 {text-anchor: middle}#EmODUJIGilCB .fx3 { dominant-baseline: central; }#EmODUJIGilCB .fx3 {dominant-baseline: central}#EmODUJIGilCB .fx4 { stroke: none; }#EmODUJIGilCB .fx4 {stroke: none}#EmODUJIGilCB .fc0 { fill: var(--text-caption); }#EmODUJIGilCB .fc0 {fill: #646a73}#EmODUJIGilCB .fa2 { fill: var(--text-link-disabled); }#EmODUJIGilCB .fa2 {fill: rgb(187, 191, 196)}#EmODUJIGilCB .fa3 { fill: rgb(213, 246, 242); }#EmODUJIGilCB .fa3 {fill: rgb(213, 246, 242)}#EmODUJIGilCB .fx5 { font: 400 16px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#EmODUJIGilCB .fx5 {font-style: normal}#EmODUJIGilCB .fx6 { text-anchor: start; }#EmODUJIGilCB .fx6 {text-anchor: start}#EmODUJIGilCB .fx7 { dominant-baseline: alphabetic; }#EmODUJIGilCB .fx7 {dominant-baseline: alphabetic}#EmODUJIGilCB .fc1 { fill: rgb(31, 35, 41); }#EmODUJIGilCB .fc1 {fill: rgb(31, 35, 41)}#EmODUJIGilCB .fc2 { fill: rgb(51, 51, 51); }#EmODUJIGilCB .fc2 {fill: rgb(51, 51, 51)}#EmODUJIGilCB .fb1 { fill: var(--N900-FG, 0.15); }#EmODUJIGilCB .fb1 {fill: rgba(31,35,41, 0.15)}#EmODUJIGilCB .fb2 { fill: rgb(225, 228, 232); }#EmODUJIGilCB .fb2 {fill: rgb(225, 228, 232)}#EmODUJIGilCB .fa4 { fill: var(--bg-body); }#EmODUJIGilCB .fa4 {fill: #fff}ABCDE1234567维度Claude Agent SDKStrands AgentsLangGraphOpenAI Agents SDK设计哲学编排方式状态管理模型绑定MCP 支持开源协议工具驱动、MCP 原生Agent Loop + MCP对话历史 + 上下文窗口Claude 系列原生内置Apache 2.0模型驱动、工具声明式LLM 自主决策会话上下文 + 工具状态多模型(Bedrock 优先)1.0 原生集成Apache 2.0图驱动、状态显式有向图状态机类型化 State + 检查点多模型社区适配器MIT指令驱动、handoff 路由Harness + HandoffsRunner 上下文 + 追踪GPT 系列第三方桥接MIT

​

Claude Agent SDK:从 Claude Code 到可编程 Agent​

核心架构​

​

🎹

Claude Agent SDK 是 Anthropic 将 Claude Code 的 Agent 能力编程化的成果。它的核心是一个 Agent Loop(智能体循环)——Agent 接收任务后进入一个持续的推理-行动循环,直到任务完成或触发终止条件。​

​

关于 Agent 循环的底层原理,可以参考 ReAct 框架详解,这是理解所有现代 Agent 框架的基础。​

​

代码块​

Python

import anthropic​

​

client = anthropic.Anthropic()​

​

# 定义 MCP 工具服务器​

mcp_servers = {​

"filesystem": {​

"command": "npx",​

"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]​

},​

"github": {​

"command": "npx",​

"args": ["-y", "@modelcontextprotocol/server-github"]​

}​

​

这段代码展示了 Claude Agent SDK 的核心优势:Agent 可以直接连接 MCP 服务器,获得文件系统访问、GitHub 操作等能力,而无需开发者手动实现工具函数。关于 MCP 协议的完整技术架构,推荐阅读 MCP 协议核心概念与实战。​

关键特性​

•

原生 MCP 集成:直接声明 MCP 服务器配置,Agent 自动发现并调用可用工具,无需手动定义 Function Calling schema​

•

结构化输出:支持通过 JSON Schema 约束 Agent 的输出格式,确保下游系统可以可靠解析​

•

上下文管理:内置会话历史压缩和关键信息提取,有效管理长任务的上下文窗口​

•

流式执行:支持实时流式返回 Agent 的思考过程和工具调用结果​

适用场景​

Claude Agent SDK 最擅长的是需要深度工具链集成的自主任务执行——代码审查与重构、文档生成与更新、基于 MCP 生态的多工具编排。如果你的团队已经在使用 Claude Code 并希望将其能力集成到自有产品中,这是最自然的迁移路径。关于 Cloud Agent 的更广泛讨论,参见 Cloud Agent 范式转移。​

Strands Agents:AWS 的模型驱动方法​

核心架构​

Strands Agents 是 AWS 在 2025 年开源的 Agent 框架,其 1.0 版本(2026 年初发布)带来了重大升级。Strands 的核心设计理念是模型驱动——不是由开发者用代码定义执行流程,而是让 LLM 根据系统提示词和可用工具自行决定下一步动作。​

python​

​

代码块​

Python

​

关键特性​

•

模型驱动编排:开发者定义工具和提示词,执行顺序由 LLM 自主决定,大幅降低编排代码量​

•

多模型支持:通过 Amazon Bedrock 无缝切换 Claude、Llama、Mistral 等模型,也支持直接对接 OpenAI 和自部署模型​

•

多智能体编排(1.0 新增):内置 MultiAgentOrchestrator,支持 Agent 间任务委派和结果聚合​

•

A2A 协议支持(1.0 新增):兼容 Google 的 Agent-to-Agent 协议,实现跨框架的 Agent 互操作​

•

原生 MCP 集成(1.0 新增):直接连接 MCP 服务器作为工具源,与 Claude Agent SDK 的 MCP 支持对标​

适用场景​

Strands Agents 最适合已深度使用 AWS 生态的团队,以及需要在不同 LLM 之间灵活切换的场景。模型驱动方法的优势在于代码极其简洁,但在需要严格确定性执行路径的场景中,可能不如 LangGraph 可控。关于 多智能体系统的架构设计,推荐深入阅读 多 Agent 系统架构深度解析。​

LangGraph:图论状态机的精细控制​

核心架构​

LangGraph 是四大框架中状态管理最精细的一个。它将 Agentic Workflow 建模为有向图(Directed Graph),每个节点是一个执行步骤,每条边是一个转换条件,全局状态对象在图中传递和更新。​

关于 LangGraph 与 AutoGen 的详细架构对比,可以参考 LangGraph vs AutoGen 多智能体框架选型对比。​

python​

​

代码块​

Python

from typing import TypedDict, Annotated, Literalfrom langgraph.graph import StateGraph, END​

from langgraph.checkpoint.sqlite import SqliteSaver​

import operator​

​

class ReviewState(TypedDict):​

messages: Annotated[list, operator.add]​

​

关键特性​

•

类型化状态:使用 TypedDict 定义严格的状态 schema,编译时即可发现类型错误​

•

持久化检查点:每个节点执行后自动保存状态快照,支持故障恢复和"时间旅行"调试​

•

条件路由:通过 add_conditional_edges 实现基于状态的动态分支,精确控制执行路径​

•

子图组合:支持将子图作为节点嵌入父图,实现模块化的工作流组合​

•

人机协作节点:内置 interrupt 机制,允许在关键决策点暂停并等待人工确认​

适用场景​

LangGraph 是需要可审计、可回放执行路径的首选——合规性要求高的金融/医疗场景、需要人机协作审批的工作流、复杂的多步骤数据处理管道。它的学习曲线相对陡峭,但提供的控制粒度是其他框架无法匹敌的。​

OpenAI Agents SDK:轻量级的快速落地​

核心架构​

OpenAI Agents SDK 的设计目标是用最少的代码让 Agent 跑起来。它引入了 harness 概念——一个包含指令(Instructions)、工具(Tools)、护栏(Guardrails)、追踪(Tracing)和交接(Handoffs)的统一运行容器。​

python​

​

代码块​

Python

from openai import agents​

​

# 定义专职 Agent​

researcher = agents.Agent(​

​

关键特性​

•

Handoff 路由:Agent 之间通过声明式的 handoffs 实现任务交接,无需手动编排消息传递​

•

内置安全护栏:支持输入/输出验证规则,自动拦截不符合策略的 Agent 行为​

•

沙盒执行:代码解释器和文件操作运行在隔离的沙盒环境中,降低安全风险​

•

长时间运行支持:Agent 可以在后台持续运行数小时,适合需要大量数据处理的任务​

•

内置追踪:自动记录每一步的输入、输出和工具调用,便于调试和审计​

适用场景​

OpenAI Agents SDK 是快速原型开发和中等复杂度生产系统的理想选择。如果你的核心模型是 GPT 系列、团队熟悉 OpenAI API、且需要在几天内交付一个可用的 Agent 系统,它提供了最短的开发路径。​

关键维度深度对比​

多智能体编排能力​

多智能体编排是 2026 年 Agent 框架竞争的核心战场。四大框架采用了截然不同的编排策略:​

•

Claude Agent SDK:通过嵌套 Agent 调用实现,一个 Agent 可以在其工具列表中注册另一个 Agent,形成层次化的委派结构​

•

Strands Agents:MultiAgentOrchestrator 提供声明式的编排,支持并行执行和结果聚合,1.0 版本新增的 A2A 协议使其可以与其他框架的 Agent 互操作​

•

LangGraph:通过子图嵌套和条件路由实现最灵活的编排,每个 Agent 是一个子图,父图控制它们之间的流转逻辑​

•

OpenAI Agents SDK:Handoff 机制提供最直观的编排体验,Agent 之间的交接就像团队成员之间的工作交接​

关于多智能体协作的更多实战模式,推荐阅读 CrewAI 多智能体工作流实战,虽然框架不同,但其中的角色设计和任务分解思路具有普遍参考价值。​

MCP 与工具生态​

MCP(Model Context Protocol) 正在成为 Agent 工具调用的事实标准。框架对 MCP 的支持深度直接影响了 Agent 可以访问的工具生态广度。​

Claude Agent SDK 在这个维度领先明显——它不仅原生支持 MCP,而且其工具生态直接继承了 Claude Code 的丰富 MCP 服务器集群。Strands Agents 在 1.0 中追上了这一能力。LangGraph 和 OpenAI Agents SDK 在 MCP 原生支持上仍有差距,但通过社区适配器和第三方桥接可以弥补。关于 MCP 生态的深入了解,参考 MCP 协议核心概念与实战。​

安全与可观测性​

生产级 Agent 系统需要严格的安全边界和完整的可观测性。在护栏设计方面:​

•

LangGraph 的检查点机制提供了最细粒度的状态审计——你可以回放任意节点的输入输出​

•

OpenAI Agents SDK 的内置护栏系统允许定义输入/输出验证规则,自动阻止违规行为​

•

Claude Agent SDK 通过 MCP 的权限模型控制 Agent 的工具访问范围​

•

Strands Agents 依托 AWS 的 IAM 体系提供基础设施级的权限管理​

学习曲线与开发效率​

​

​

选型决策框架​

在收集了足够的技术细节后,让我们回到最实际的问题:你的团队应该选哪个?​

按团队技术栈选择​

如果团队已经在使用 Anthropic Claude 作为核心模型,Claude Agent SDK 是自然延伸。如果深度绑定 AWS 生态(Bedrock、Lambda、SageMaker),Strands Agents 提供最顺畅的集成。如果已在使用 LangChain,LangGraph 是零迁移成本的升级。如果核心模型是 GPT 系列,OpenAI Agents SDK 是最高效的起点。​

按工作流复杂度选择​

对于简单的单 Agent + 工具调用场景(如客服机器人、文档生成),四个框架差异不大,选上手最快的。对于中等复杂的多 Agent 协作(如代码审查流水线、数据分析报告),Strands Agents 和 OpenAI Agents SDK 的声明式编排更高效。对于高复杂度的状态化工作流(如合规审批链、多阶段数据管道),LangGraph 的图驱动模型和检查点机制是不可替代的。​

按 MCP 生态需求选择​

如果你的 Agent 需要连接大量外部工具(数据库、API、文件系统、浏览器等),Claude Agent SDK 的原生 MCP 支持提供了最佳的开箱体验。Strands Agents 1.0 是第二选择。如果你的工具集相对固定且可以自行封装,LangGraph 和 OpenAI Agents SDK 的自定义工具系统同样好用。​

面向未来:框架融合趋势​

2026 年的 Agent 框架生态有一个明显的趋势:从竞争走向互操作。​

A2A(Agent-to-Agent)协议的出现使得不同框架构建的 Agent 可以互相通信和协作。MCP 协议的普及使得工具生态逐渐统一。这意味着框架选型不再是一个"all-in"的决策——你完全可以用 LangGraph 构建核心工作流引擎,同时用 Claude Agent SDK 构建执行复杂工具操作的子 Agent,再通过 A2A 协议让它们协同工作。​

关于 AI Agent 开发的完整知识体系,推荐从 AI Agent 架构设计与代码实战 开始系统学习。对于提示工程在 Agent 系统中的应用、RAG 与 Agent 的结合模式,这些都是框架选型之外同样重要的工程实践。​

总结​

框架选型从来不是一道单选题。Claude Agent SDK 的 MCP 深度集成、Strands Agents 的模型驱动简洁性、LangGraph 的状态化精细控制、OpenAI Agents SDK 的快速落地能力——它们各自解决了 Agent 工程化过程中的不同痛点。​

最务实的策略是:从你最熟悉的模型和生态出发,选择学习曲线最平缓的框架快速交付 MVP,然后在生产中根据实际痛点评估是否需要引入其他框架的能力。在 A2A 和 MCP 推动互操作性的趋势下,"选错框架"的代价正在快速降低。​