Skip to content

Agent 框架与 Runtime 怎么选 | 从零理解如何构建 AI Agent

帮助你快速判断本章定位、前置要求与学习目标。

说明:本文是截至 2026-06 的选型图谱,不是实时排名。平台 SDK、托管 Agent Runtime、工具协议、可用区域和 API surface 会变化,进入实现前请以官方文档、价格页、版本说明和业务样本评测为准。

先判断是否真的需要框架

Agent Framework 解决的是过程控制,不是模型能力本身。只有当任务出现多步执行、状态推进、工具编排、失败恢复、人工确认和审计时,框架才有价值。

如果只是下面这些场景,不要先上框架:

  • 单轮分类、总结、改写;
  • 简单问答;
  • 一次搜索后总结;
  • 固定 RAG pipeline;
  • 只有一两个工具的轻量调用。

更简单的路线通常是:

text
普通模型调用
  -> 手写少量工具调用
  -> 轻量 ReAct loop
  -> Agent Framework
  -> 多 Agent 编排

每升一级都要能说清"低一级哪里不够"。如果只是为了显得架构完整,通常就是过度设计。

这个类别解决的六类问题

Agent 框架组件解决的不是一个问题,而是几类不同问题:

text
Model API
  -> 怎么调用模型

Tool Calling
  -> 模型怎么提出工具调用

Agent Runtime
  -> 谁管理 loop、session、handoff、guardrail、trace

Workflow Runtime
  -> 谁管理状态、分支、暂停、恢复和 checkpoint

RAG Framework
  -> 谁管理数据接入、索引、retriever、query engine

Tool Protocol
  -> 工具怎么暴露、发现、授权和复用

Managed Runtime
  -> 谁托管 agent loop、环境、工具执行和会话状态

很多选型失败,是因为团队把这些问题都塞进"用哪个 Agent 框架"一句话里。

主流选择对比

方案本质强项代价适合场景不适合场景
自研轻量 loop应用自己写 tool call / observe / answer 循环透明、可控、依赖少、容易调试状态、恢复、trace 要自己补少量工具调用、第一版 Agent、强业务控制长流程、复杂分支、恢复执行
LangChainLLM 应用组件生态模型、工具、chain、retriever 集成多,上手快抽象层多,生产边界要收紧快速原型、多模型和工具集成需要严格状态机和可恢复工作流
LangGraph状态图 / Workflow Runtime显式状态、分支、checkpoint、human-in-the-loop、恢复执行简单任务会过度设计,状态 schema 要设计长流程、多分支、可回放、可暂停恢复单轮问答、固定 RAG pipeline、少量工具调用
LlamaIndex数据连接和 RAG 框架loader、index、retriever、query engine、RAG 抽象强通用 Agent 控制流不是主战场知识库、企业文档、数据接入、RAG 产品复杂业务流程编排
AutoGen多 Agent 对话协作框架多角色对话、研究原型、协作实验容易把流程写成角色聊天,责任边界变虚多 Agent 研究、方案探索、角色协作原型严肃业务流程自动化、强审计生产系统
CrewAIRole / Task / Process 编排概念直观,适合业务角色任务原型拟人化角色过多会稀释责任和状态边界内容生产、业务流程原型、多角色任务分配需要精确状态、权限、恢复和审计
Semantic Kernel企业插件和函数编排框架.NET / Azure 生态、插件模式、企业集成微软生态绑定更明显.NET 企业系统、Azure 集成、函数插件体系非微软生态或轻量原型
Haystack搜索和 RAG pipeline 框架检索、Reader、pipeline、搜索系统集成Agent Runtime 能力不是核心搜索/RAG pipeline、问答系统、信息检索复杂行动型 Agent
OpenAI Agents SDKOpenAI-first Agent Runtimeagent loop、tools、handoff、guardrails、sessions、tracingOpenAI 平台抽象和 runtime 迁移成本要评估OpenAI-first 产品、平台 trace 和 guardrail 集成强跨 provider、强自有 runtime 控制
Claude API Tool UseClaude 模型工具调用能力工具 schema 清楚,应用可完全控制执行和审批loop、状态、trace、工具执行要应用自己管Claude-first,自有 runtime,强审批和安全边界想把 agent loop 和环境都交给平台托管
Claude Managed AgentsAnthropic 托管 Agent RuntimeAnthropic 执行 agent loop,session、container、工具执行、事件流和版本化 agent 配置更完整Beta / API surface 约束,平台可用性和迁移成本要评估需要托管长任务、workspace、文件操作、bash、MCP、session 事件流Bedrock / Vertex / Foundry 接入面,或必须自托管全部运行时
MCP工具协议,不是 Agent 框架工具暴露、发现、授权和跨客户端复用不负责 agent loop、状态机和业务审批多工具生态、第三方系统接入、工具复用想让 MCP 替代 runtime 或 workflow
Dify / Flowise / Langflow低代码 LLM 应用平台快速搭建、可视化、适合内部工具和原型深度定制、复杂权限和迁移成本要评估业务原型、运营配置、内部知识助手核心产品 runtime、强代码治理场景

这个表不是排名。先确定你要解决哪一层问题,再选组件。

先看复杂度台阶

框架选型最容易犯的错,是把"未来可能复杂"当成"现在必须上框架"。更稳的做法是按复杂度台阶升级:

台阶典型形态退出条件
模型调用prompt + response需要调用外部能力
固定 pipelineRAG、Search、固定工具链需要按结果分支
轻量 looptool call + observe + answer需要持久状态和恢复
状态图节点、边、checkpoint需要多团队协作和审计
多 Agent多角色分工单 Agent 已验证仍不够

每升一级都要能说清"低一级哪里不够"。如果只是为了显得架构完整,通常就是过度设计。

各框架适用场景

自研轻量 loop 什么时候够用

自研 loop 不是低级方案。很多生产 Agent 第一版就应该这么做。

适合:

  • 只有一到几个工具;
  • 工具调用风险可控;
  • 流程短、状态简单;
  • 团队需要强控制和强可观测;
  • 审批、权限、日志都在自有系统里。

典型结构:

text
user input
  -> model call
  -> tool call?
  -> validate tool args
  -> execute tool
  -> append observation
  -> model answer

不适合:状态节点很多、需要 checkpoint、需要暂停恢复、需要复杂人机确认、需要可视化流程和系统级 replay。

一句话:短流程自己写,长流程再找 runtime。

LangChain 什么时候用

LangChain 的价值在生态和集成,不在替你设计业务边界。

适合:快速原型、多模型接入、多工具接入、chain/retriever/loader 组合。

不适合:明确需要显式状态图、严格 checkpoint、每个状态迁移都要审计、业务权限和审批强约束。

text
用了 LangChain 不等于有了生产 Agent Runtime。
它能帮你接很多东西,但不会替你定义状态、权限、停止条件和评估集。

LangGraph 什么时候用

LangGraph 适合 workflow runtime 问题,不是"更高级的 LangChain"。

适合:多步长流程、有明确状态 schema、有分支和循环、需要 checkpoint、需要恢复执行、需要 human-in-the-loop、需要 replay 和 trace。

不适合:单轮问答、搜索后总结、固定 RAG pipeline、只有一个工具调用、没有状态 schema。

判断标准:

text
如果你说不清每个节点的输入、输出和失败处理,别上 LangGraph。
如果低一级 loop 能跑通业务样本,先别画图。

LlamaIndex 什么时候用

主战场是数据接入、索引和 RAG。

适合:企业文档知识库、多数据源 loader、向量索引/关键词索引、query engine、文档问答。

不适合:复杂业务流程编排、高风险工具执行、多状态审批流。

一句话:知识复杂选 LlamaIndex,流程复杂看 LangGraph 或自有 runtime。

AutoGen 和 CrewAI 什么时候用

适合探索多 Agent 协作,但要小心拟人化过度。

适合:研究原型、多角色内容生产、方案生成和评审、模拟多人协作、低风险自动化。

不适合:生产关键业务流程、强权限系统、高风险工具执行、必须可审计可恢复的状态流。

坏味道:

text
Planner Agent
Reviewer Agent
Executor Agent
Manager Agent
Critic Agent

如果这些角色没有清晰输入输出,只是在互相聊天,就是把业务流程写成戏剧脚本。

Semantic Kernel 什么时候用

更适合企业插件和函数编排,尤其是 .NET / Azure 生态。

适合:.NET 企业系统、Azure 生态、现有服务函数化、插件模式、企业内部助手和业务系统集成。

不适合:非微软生态的小型原型、只需要简单工具调用。判断重点不是它能不能做 Agent,而是你的组织是否已经在微软生态里。

OpenAI Agents SDK 什么时候用

OpenAI-first Agent Runtime。

适合:OpenAI-first 产品、希望使用平台内 tools/handoff/guardrails/sessions/tracing、团队接受 OpenAI 平台抽象。

不适合:强跨 provider、核心状态必须完全自有、工具 schema 必须平台无关、不接受平台 runtime 迁移成本。

注意:锁定风险更多在 runtime、tracing、guardrails、sessions、handoff 等平台抽象,而不是单纯的 model provider。

Claude Tool Use、MCP、Managed Agents 怎么分

三者不是同一层。

方案层级主要解决不主要解决
Claude API Tool Use模型工具调用层Claude 产生 tool call,应用执行或接入 server-side tools通用 workflow 状态机、完整托管 runtime
MCP工具协议层工具如何暴露、发现、授权和跨客户端复用Agent loop、状态、业务审批
Claude Managed Agents托管 Agent RuntimeAnthropic 管理 agent loop、session、container、事件流、工具执行工作区所有云接入面都可用、完全自有 runtime

Claude API Tool Use 适合:Claude-first、自己管理 loop 和工具执行、需要强审批、权限和审计放在自有系统。

MCP 适合:多工具生态、工具跨客户端复用、GitHub/Linear/Notion 等第三方接入、工具协议标准化。但 MCP 是 Tool Protocol,不是 Agent Runtime。

Claude Managed Agents 适合:希望 Anthropic 托管 agent loop、需要持久 agent config 和 container workspace、需要 bash/文件读写/代码执行等工具环境。当前是 beta / 特定 API surface,不要默认 Bedrock、Vertex、Foundry 等接入面也支持。

选型顺序

text
只是一次模型调用?
  -> 不要 Agent 框架

只有一两个工具?
  -> Claude/OpenAI tool use + 自研轻量 loop

需要快速接模型、工具、retriever?
  -> LangChain

知识库和索引复杂?
  -> LlamaIndex / Haystack

流程有状态、分支、恢复、人机确认?
  -> LangGraph

多角色协作实验?
  -> AutoGen / CrewAI

.NET / Azure 企业集成?
  -> Semantic Kernel

OpenAI-first,并接受平台 runtime?
  -> OpenAI Agents SDK

Claude-first,自有 runtime?
  -> Claude API Tool Use + 自研 loop + MCP

Claude-first,想要托管长任务和 workspace?
  -> Claude Managed Agents

工具要跨多个 Agent / 客户端复用?
  -> MCP

业务人员要可视化配置?
  -> Dify / Flowise / Langflow,但核心产品要评估迁移成本

典型误判

误判问题
有工具调用就要 Agent 框架一个 tool call 用轻量 loop 就够
有多步就要 LangGraph固定 pipeline 不需要状态图
LlamaIndex 能替代业务 workflow它主战场是 RAG,不是审批流
AutoGen / CrewAI 角色越多越智能角色多通常只是责任边界更模糊
MCP 是 Agent 框架MCP 是工具协议,不管理 agent loop
Managed Agents 等于 MCPManaged Agents 是托管 runtime,MCP 是工具协议
平台 SDK 一定锁死模型锁定常在 runtime、trace、session、guardrail,而不只是模型
自研 loop 不专业简单流程自研更透明、更可控

框架准入检查

引入 Agent Framework 前,至少回答:

  • 是否有明确状态 schema;
  • 是否有工具错误结构;
  • 是否有停止条件;
  • 是否有 trace 和 replay 需求;
  • 是否有分支测试样本;
  • 是否需要人工确认;
  • 是否能接受框架升级和迁移成本。

如果这些问题答不上来,先用轻量 loop 跑通业务样本。框架应该承载已经清楚的流程,不应该替团队发现流程。

框架带来的不是免费能力,而是新的约束:状态 schema 要设计、trace 要接入、工具错误要规范化、任务停止条件要明确、测试样例要覆盖分支、后续迁移要考虑平台锁定。

推荐策略

场景推荐
单轮分类、总结、抽取普通模型调用
少量工具调用Tool Use + 自研轻量 loop
RAG 原型LlamaIndex / LangChain
企业知识库LlamaIndex / Haystack + 自有权限和评估
长流程行动 AgentLangGraph 或自有 workflow runtime
多 Agent 研究原型AutoGen / CrewAI
OpenAI-first 产品OpenAI Agents SDK
Claude-first 自有 runtimeClaude API Tool Use + MCP
Claude-first 托管长任务Claude Managed Agents
企业 .NET / AzureSemantic Kernel
工具生态标准化MCP

最终判断

text
少量工具:轻量 loop
集成生态:LangChain
显式状态:LangGraph
知识检索:LlamaIndex / Haystack
多角色实验:AutoGen / CrewAI
企业微软栈:Semantic Kernel
OpenAI-first runtime:OpenAI Agents SDK
Claude-first 自有控制:Claude Tool Use + MCP
Claude-first 托管工作区:Managed Agents
工具协议:MCP

不要从框架品牌开始。先问清楚你要的是工具调用、状态机、RAG、协议,还是托管运行时。