AI Agent 框架调研笔记

AI Agent 框架调研笔记

更新时间:2026-04-30

随着 AI Agent 技术的快速发展,各类 Agent 开发框架层出不穷。本文档对当前主流的 6 个 Agent 框架进行调研和对比分析,帮助开发者选择合适的工具。


目录


一、框架概览对比

维度 LangGraph CrewAI LlamaIndex Dify OpenAI Agents SDK Google ADK
开发方 LangChain Inc. CrewAI Inc. LlamaIndex Inc. LangGenius OpenAI Google
最新版本 v1.1.10 v1.14.3 v0.14.6 v1.6.0+ v0.14.6 v1.31.1
许可证 MIT MIT MIT Dify License (Apache 2.0+) MIT Apache 2.0
语言 Python / JS Python Python / TS 可视化(多语言 SDK) Python / JS Python / Java / Go / TS
核心理念 图编排 角色扮演团队 RAG + Agent 低代码平台 极简多 Agent 代码优先
模型支持 模型无关 模型无关 模型无关 模型无关 100+ LLM 模型无关
学习曲线 较陡 中等 中等 中等
适合场景 复杂有状态工作流 多角色协作 RAG + Agent 快速原型/非技术用户 OpenAI 生态应用 Google 生态应用

二、LangGraph

2.1 简介

LangGraph 是由 LangChain 团队开发的底层编排框架,专门用于构建长时间运行的、有状态的 AI Agent。设计灵感来自 Google 的 Pregel 和 Apache Beam。

核心定位:不抽象化提示词或架构,提供底层基础设施,让开发者精细控制 Agent 工作流。已被 Klarna、Replit、Elastic 等公司用于生产环境。

项目信息 详情
最新版本 v1.1.10(2026-04-27)
许可证 MIT
安装 pip install -U langgraph
GitHub langchain-ai/langgraph
文档 docs.langchain.com/oss/python/langgraph

2.2 核心架构

LangGraph 将 Agent 工作流建模为图(Graph),由三个核心组件构成:

  • State(状态):共享数据结构,通常用 TypedDictPydantic Model 定义
  • Nodes(节点):编码 Agent 逻辑的函数,接收当前状态、返回更新后的状态
  • Edges(边):决定下一个节点的函数,支持条件分支或固定转换

2.3 关键特性

  • 持久化(Persistence):每个执行步骤将图状态保存为 checkpoint,支持内存、Redis 等后端
  • 人机协作(Human-in-the-Loop):通过 interrupt() 暂停执行,等待人工输入后恢复
  • 流式输出(Streaming):支持 values、messages、updates 等多种流式模式
  • 子图(Subgraphs):支持图嵌套,子图拥有独立的 checkpoint 和中断能力
  • 时间旅行:可回溯到任意历史 checkpoint,支持 fork 和重放
  • 可视化:编译后可生成 Mermaid 图形展示工作流结构

2.4 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from typing import Literal
from langgraph.graph import StateGraph, MessagesState, START, END
from langchain.messages import SystemMessage, HumanMessage, ToolMessage

# 定义工具
def multiply(a: int, b: int) -> int:
"""Multiply two numbers."""
return a * b

def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b

tools = [multiply, add]
tools_by_name = {tool.name: tool for tool in tools}

# 定义节点
def llm_call(state: MessagesState):
"""LLM 决定是否调用工具"""
return {
"messages": [
llm_with_tools.invoke(
[SystemMessage(content="You are a helpful arithmetic assistant.")]
+ state["messages"]
)
]
}

def tool_node(state: dict):
"""执行工具调用"""
result = []
for tool_call in state["messages"][-1].tool_calls:
tool = tools_by_name[tool_call["name"]]
observation = tool.invoke(tool_call["args"])
result.append(ToolMessage(content=str(observation), tool_call_id=tool_call["id"]))
return {"messages": result}

# 定义条件边路由
def should_continue(state: MessagesState) -> Literal["tool_node", END]:
last_message = state["messages"][-1]
if last_message.tool_calls:
return "tool_node"
return END

# 构建并编译图
builder = StateGraph(MessagesState)
builder.add_node("llm_call", llm_call)
builder.add_node("tool_node", tool_node)
builder.add_edge(START, "llm_call")
builder.add_conditional_edges("llm_call", should_continue, ["tool_node", END])
builder.add_edge("tool_node", "llm_call")

agent = builder.compile()

# 运行
result = agent.invoke({"messages": [HumanMessage(content="Add 3 and 4, then multiply by 5.")]})

2.5 优势与局限

优势: 精细化控制、有状态执行、原生人机协作、容错恢复、时间旅行调试、框架无关

局限: 学习曲线较陡、样板代码多、最佳体验需配合 LangSmith 生态、版本迭代快


三、CrewAI

3.1 简介

CrewAI 是一个用于编排多个自主 AI Agent 的 Python 框架,完全从零构建,不依赖 LangChain 或其他框架。核心理念是通过角色扮演模拟真实团队协作。

项目信息 详情
最新版本 v1.14.3(2025-04-24)
许可证 MIT
安装 pip install 'crewai[tools]'
GitHub crewAIInc/crewAI
文档 docs.crewai.com

3.2 核心概念

  • Agent(智能体):通过 role(角色)、goal(目标)、backstory(背景故事)定义身份和行为
  • Task(任务):具体工作单元,可指定执行者、上下文依赖和输出格式
  • Crew(团队):一组协作 Agent 的集合,定义执行流程和记忆配置
  • Tools(工具):丰富的内置工具集(搜索、文件读写、代码执行等),支持 MCP 集成
  • Process(流程):Sequential(顺序)或 Hierarchical(层级,自动创建 Manager Agent)

3.3 关键特性

  • 角色扮演设计:直观的角色定义方式,贴近真实团队协作
  • 协作工作流:Agent 间可委派任务、传递上下文
  • 四种记忆系统:短期记忆、长期记忆、实体记忆、上下文记忆
  • Flows(流程编排):企业级事件驱动工作流,支持 @start@listen@router 装饰器
  • Checkpoint & Fork:支持执行状态的保存、恢复和分支
  • YAML 配置驱动:Agent 和 Task 可通过 YAML 文件定义

3.4 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from crewai import Agent, Task, Crew, Process

# 定义 Agent
researcher = Agent(
role='高级 AI 研究员',
goal='发现 AI Agent 领域的最新发展趋势',
backstory='你是一位经验丰富的研究员,擅长发现前沿技术的最新动态。',
verbose=True,
memory=True,
)

writer = Agent(
role='技术报告撰写专家',
goal='将研究发现转化为清晰、结构化的报告',
backstory='你是一位技术写作专家,擅长将复杂信息转化为易读的报告。',
verbose=True,
memory=True,
)

# 定义 Task
research_task = Task(
description='对 {topic} 进行全面调研,收集最新的发展趋势。',
expected_output='包含 10 个要点的详细研究发现列表',
agent=researcher,
)

writing_task = Task(
description='根据研究发现撰写一份完整的技术报告。',
expected_output='完整的 Markdown 格式报告',
agent=writer,
context=[research_task],
output_file='report.md',
)

# 组建 Crew 并执行
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process=Process.sequential,
verbose=True,
)

result = crew.kickoff(inputs={'topic': '多智能体协作系统'})

3.5 优势与局限

优势: 完全独立无依赖、角色扮演直观、四种记忆系统、YAML 配置驱动、活跃社区(10 万+ 认证开发者)

局限: 仅支持 Python、多 Agent 协作 API 开销大、调试复杂、企业功能需付费


四、LlamaIndex

4.1 简介

LlamaIndex(原名 GPT Index)是一个开源框架,最初专注于 RAG(检索增强生成),现已扩展为文档智能体和 OCR 平台。由 Jerry Liu 于 2022 年创立。

项目信息 详情
最新版本 v0.14.6
许可证 MIT
安装 pip install llama-index
GitHub run-llama/llama_index
文档 developers.llamaindex.ai

4.2 核心概念

  • Workflow(工作流):事件驱动的编排机制,通过 @step 装饰器定义步骤
  • Context(上下文):全局运行时上下文,协调步骤间数据传递,支持持久化
  • 事件驱动架构StartEvent → 自定义事件 → StopEvent,形成有向图
  • AgentWorkflow:高层封装,自动根据 LLM 能力选择合适的 Agent 类型

4.3 Agent 类型

类型 适用场景 特点
FunctionAgent LLM 支持函数调用时 直接使用原生 function calling,效率最高
ReActAgent LLM 不支持函数调用时 通过 ReAct(推理+行动)循环执行
CodeActAgent 需要执行代码的场景 通过 <execute> 标签生成并执行代码

4.4 关键特性

  • RAG + Agent 一体化:RAG 是核心能力而非补充,130+ 数据格式接入
  • 多智能体协作:原生支持多 Agent 交接(handoff)机制
  • Context 持久化:工作流状态可序列化恢复,适合生产环境
  • LlamaParse:企业级文档解析和 OCR
  • 300+ 集成包:覆盖主流 LLM、向量数据库、数据源

4.5 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
import asyncio

# 构建 RAG 索引
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

# 定义工具
def multiply(a: float, b: float) -> float:
"""Multiply two numbers."""
return a * b

async def search_documents(query: str) -> str:
"""Search documents for answers."""
response = await query_engine.aquery(query)
return str(response)

# 创建智能体
agent = FunctionAgent(
tools=[multiply, search_documents],
llm=OpenAI(model="gpt-4o-mini"),
system_prompt="You are a helpful assistant that can calculate and search documents.",
)

# 运行
async def main():
response = await agent.run("What did the author do in college? Also, what's 7 * 8?")
print(response)

asyncio.run(main())

4.6 优势与局限

优势: RAG + Agent 深度集成、事件驱动架构灵活、300+ 生态集成、多智能体支持、LlamaParse 企业级解析

局限: 学习曲线较陡、框架较重、TS 版本功能覆盖不全、版本迭代快有 breaking changes、企业功能需付费


五、Dify

5.1 简介

Dify(Do It For You)是一个开源的 LLM 应用开发平台,定位为智能体工作流构建器。将 Backend-as-a-Service 与 LLMOps 结合,让非技术用户和开发者都能快速构建 AI 应用。

项目信息 详情
最新版本 v1.6.0+
许可证 Dify Open Source License (Apache 2.0+)
部署 docker compose up -d
GitHub langgenius/dify
文档 docs.dify.ai

5.2 核心功能

  • 可视化工作流构建器:拖拽式画布,支持并行处理、条件分支、循环节点
  • Agent 策略:支持 Function Calling、ReAct 和自定义策略插件
  • RAG 管道:完整的数据源 → 处理 → 知识库 → 检索流程
  • 模型管理:无缝集成数百种 LLM,支持模型切换和性能比较
  • Prompt IDE:直观的提示词编写界面
  • LLMOps:监控和分析应用日志和性能

5.3 Agent 策略

策略 适用场景
Function Calling 模型原生支持工具调用(如 GPT-4、Claude)
ReAct 模型不支持原生函数调用,或需要显式推理追踪
自定义策略插件 需要多轮工具调用等复杂行为

5.4 创建 Agent 的方式

Dify 采用可视化/无代码方式:

  1. 在 Dify Studio 中创建 “Agent” 类型应用
  2. 选择 LLM 模型
  3. 设置 Agent 策略(自动检测 Function Calling 支持)
  4. 从 50+ 内置工具中选择或添加自定义工具
  5. 编写系统提示词
  6. 调试预览后一键发布

5.5 集成能力

  • API:完整的 RESTful API,支持 SSE 流式响应
  • SDK:Node.js、PHP、Java 客户端
  • 插件系统:模型、工具、Agent 策略、扩展、数据源、触发器六类插件
  • MCP 集成:原生支持 Model Context Protocol
  • 部署:Docker Compose、Kubernetes、Terraform、AWS CDK

5.6 优势与局限

优势: 低代码/无代码、开箱即用(50+ 内置工具)、快速原型到生产、多模型支持、活跃社区(800+ 贡献者)

局限: 自定义灵活性受限(不如代码框架)、执行有步骤/时间限制、许可证非纯 Apache 2.0、平台锁定风险、高级推理模式不如专用框架成熟


六、OpenAI Agents SDK

6.1 简介

OpenAI Agents SDK 是 OpenAI 官方推出的轻量级多智能体框架,从内部 Swarm 实验项目演化而来。核心理念是极简设计——只用 Agent / Handoff / Guardrail / Tool 几个概念构建复杂工作流。

项目信息 详情
最新版本 v0.14.6(2026-04-25)
许可证 MIT
安装 pip install openai-agents
GitHub openai/openai-agents-python
文档 openai.github.io/openai-agents-python

6.2 核心概念

  • Agent:配置了指令、工具、护栏和交接能力的 LLM
  • Runner:Agent 执行器,提供 run()(异步)、run_sync()(同步)、run_streamed()(流式)
  • Handoff:Agent 间的任务委托,被委托者继承完整对话历史
  • Guardrails:安全护栏,分输入护栏、输出护栏、工具护栏三类
  • Tools:支持函数工具、MCP 工具、OpenAI 托管工具、Agent as Tool

6.3 关键特性

  • 极简设计:核心原语少,学习曲线平缓
  • Provider 无关:通过 any-llm / LiteLLM 支持 100+ LLM
  • 三层护栏:输入 → 输出 → 工具级别的安全校验
  • 内置追踪(Tracing):可视化调试 Agent 运行流程
  • Realtime Agents:支持构建语音 Agent(gpt-realtime-1.5)
  • Sandbox Agents:v0.14.0 新增,在容器环境中执行代码
  • 结构化输出:通过 Pydantic Model 定义 output_type

6.4 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import asyncio
from agents import Agent, Runner, function_tool

# 定义工具
@function_tool
def get_weather(city: str) -> str:
"""获取指定城市的天气信息。"""
return f"The weather in {city} is sunny."

# 定义专业 Agent
billing_agent = Agent(
name="Billing Agent",
instructions="你是账单问题专家。",
)

refund_agent = Agent(
name="Refund Agent",
instructions="你是退款问题专家。",
)

# 定义分流 Agent
triage_agent = Agent(
name="Triage Agent",
instructions="根据用户问题路由到正确的专业 Agent:账单 -> Billing Agent;退款 -> Refund Agent。",
handoffs=[billing_agent, refund_agent],
tools=[get_weather],
)

# 运行
async def main():
result = await Runner.run(
triage_agent,
"我的订阅被扣了两次费用,请帮我处理。",
)
print(f"最终回答: {result.final_output}")
print(f"处理 Agent: {result.last_agent.name}")

asyncio.run(main())

6.5 优势与局限

优势: 官方维护、极简设计、Provider 无关、三层护栏、内置追踪、语音 Agent 支持

局限: 仍处 0.x 阶段 API 可能变动、深度依赖 OpenAI 生态、不支持并行 Agent 执行、无内置持久化记忆系统


七、Google ADK

7.1 简介

Google ADK(Agent Development Kit) 是 Google 推出的开源、代码优先的 Agent 开发框架。设计理念是让 AI Agent 开发更像传统软件开发,针对 Gemini 和 Google Cloud 优化,但保持模型无关和部署无关。

项目信息 详情
最新版本 v1.31.1(2026-04-30)
许可证 Apache 2.0
安装 pip install google-adk
GitHub google/adk-python
文档 google.github.io/adk-docs

7.2 核心概念

  • LlmAgent(别名 Agent):核心构建块,组合 LLM 模型 + 指令 + 工具
  • SequentialAgent:按顺序依次执行子 Agent(管道式)
  • ParallelAgent:并发执行多个子 Agent
  • LoopAgent:重复执行子 Agent,支持退出条件
  • sub_agents:通过嵌套构建层级式多 Agent 架构

7.3 关键特性

  • 多 Agent 编排:顺序、并行、循环和 LLM 驱动的动态路由
  • 内置工具:Google Search、Vertex AI Search、代码执行器等
  • Google 生态集成:原生 Gemini、Vertex AI Agent Engine、Cloud Run
  • 灵活部署:本地、Agent Engine(全托管)、Cloud Run、GKE、Docker
  • 内置评估:CLI 工具 adk eval 系统化评估 Agent 性能
  • A2A 协议:支持 Agent-to-Agent 远程通信
  • 生命周期回调before/after_agentbefore/after_modelbefore/after_tool 钩子

7.4 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import asyncio
from google.adk.agents import Agent, SequentialAgent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types
from google.adk.tools import google_search

# 定义天气 Agent
weather_agent = Agent(
name="weather_assistant",
model="gemini-2.5-flash",
instruction="你是一个天气查询助手。使用 Google 搜索查找最新天气信息。",
tools=[google_search],
)

# 定义翻译 Agent
translate_agent = Agent(
name="translate_assistant",
model="gemini-2.5-flash",
instruction="你是一个翻译助手,将内容翻译成中文。",
)

# 组合成顺序工作流
pipeline = SequentialAgent(
name="WeatherPipeline",
sub_agents=[weather_agent, translate_agent],
)

# 运行
session_service = InMemorySessionService()
runner = Runner(agent=pipeline, app_name="weather_app", session_service=session_service)

async def run_agent(query: str):
session = session_service.create_session(
app_name="weather_app", user_id="user_1", session_id="session_1"
)
content = types.Content(role='user', parts=[types.Part(text=query)])
async for event in runner.run_async(
user_id="user_1", session_id="session_1", new_message=content
):
if event.is_final_response() and event.content and event.content.parts:
print(f"Agent 回复: {event.content.parts[0].text.strip()}")

asyncio.run(run_agent("What's the weather in Tokyo today?"))

7.5 优势与局限

优势: 代码优先、强大编排能力(顺序/并行/循环)、Google 生态深度集成、内置评估、多语言支持(Python/Java/Go/TS)、Apache 2.0 开源

局限: 最佳体验需 Gemini 和 Google Cloud、框架较新社区生态初期、高频发布 API 可能变动、中国大陆访问 Google 服务受限


八、框架选型指南

按使用场景选择

场景 推荐框架 理由
复杂有状态工作流 LangGraph 底层图编排、持久化、时间旅行
多角色团队协作 CrewAI 角色扮演设计、委派机制、记忆系统
RAG + Agent LlamaIndex RAG 深度集成、130+ 数据格式、文档解析
快速原型 / 非技术团队 Dify 可视化拖拽、低代码、开箱即用
OpenAI 模型为主 OpenAI Agents SDK 官方维护、极简 API、追踪调试
Google Cloud 部署 Google ADK Gemini 优化、Vertex AI 集成、内置评估
需要精细控制 LangGraph / Google ADK 底层 API、回调钩子
需要生产级护栏 OpenAI Agents SDK 三层 Guardrails

按团队特点选择

团队特点 推荐
全栈开发团队 LangGraph、Google ADK
Python 数据科学团队 CrewAI、LlamaIndex
产品经理 / 运营团队 Dify
OpenAI 生态重度用户 OpenAI Agents SDK
Google Cloud 用户 Google ADK
需要快速验证想法 Dify、OpenAI Agents SDK

注意:以上框架信息基于 2026 年 4 月的调研,各框架迭代较快,建议使用前查看官方文档获取最新信息。