AI Agent 框架大比拼:LangChain vs LlamaIndex vs AutoGen vs CrewAI 选型指南
TL;DR:做 AI Agent 该用哪个框架?LangChain 全家桶、LlamaIndex 检索专精、AutoGen 多 Agent 对话、CrewAI 角色扮演协作。本文从设计哲学、适用场景、代码示例、性能四个维度对比,帮你选对框架。
1. 先说结论
🔧 LangChain
定位:通用 AI 应用框架
适合:从原型到生产的全链路
学习曲线:陡
📚 LlamaIndex
定位:数据检索 / RAG 专精
适合:知识库 / 文档问答
学习曲线:中
💬 AutoGen
定位:多 Agent 协作对话
适合:复杂任务分解
学习曲线:中
🎭 CrewAI
定位:角色扮演式 Agent 团队
适合:业务流程自动化
学习曲线:低
2. LangChain:全家桶式框架
2.1 设计哲学
LangChain 的核心是「链(Chain)」:把 LLM 调用、工具、数据源串成流水线。
Python - LangChain 构建一个 Agent
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain.tools import tool
from langchain_core.prompts import ChatPromptTemplate
# 定义工具
def search_web(query: str) -> str:
"""搜索互联网"""
return f"关于 '{query}' 的搜索结果..."
# 创建 Agent
llm = ChatOpenAI(model="gpt-4o", temperature=0)
tools = [search_web]
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个有用的助手"),
("human", "{input}"),
("placeholder", "{agent_scratchpad}")
])
agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({"input": "今天有什么AI新闻?"})
print(result["output"])
2.2 优点与缺点
| 优点 | 缺点 | |
|---|---|---|
| 生态 | 最丰富(100+ 集成) | 版本变动频繁 |
| 文档 | 齐全 | 有时过于复杂 |
| 适用 | 几乎所有场景 | 简单任务杀鸡用牛刀 |
3. LlamaIndex:检索增强专精
3.1 设计哲学
LlamaIndex 专注一件事:把你的数据接入 LLM。索引、检索、RAG 是它的强项。
Python - LlamaIndex RAG
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
# 加载文档
documents = SimpleDirectoryReader("./data").load_data()
# 创建索引
index = VectorStoreIndex.from_documents(
documents,
embed_model=OpenAIEmbedding(model="text-embedding-3-small")
)
# 查询引擎
query_engine = index.as_query_engine(
llm=OpenAI(model="gpt-4o"),
similarity_top_k=5
)
response = query_engine.query("公司报销流程是什么?")
print(response)
3.2 适用场景
- 企业知识库问答
- 文档检索 / 摘要
- 私有数据接入 LLM
4. AutoGen:多 Agent 对话协作
4.1 设计哲学
AutoGen 让多个 Agent 互相对话完成任务。一个写代码,一个审查,一个执行。
Python - AutoGen 多 Agent
import autogen
config = {
"model": "gpt-4o",
"api_key": "your-key"
}
# 定义两个 Agent
coder = autogen.AssistantAgent(
name="coder",
llm_config=config,
system_message="你是一个 Python 专家,负责写代码"
)
reviewer = autogen.AssistantAgent(
name="reviewer",
llm_config=config,
system_message="你是一个代码审查专家,负责检查代码质量和 Bug"
)
user = autogen.UserProxyAgent(
name="user",
code_execution_config={"work_dir": "coding"},
human_input_mode="NEVER"
)
# 启动对话
user.initiate_chat(
coder,
message="用 Python 写一个快速排序,并测试它"
)
4.2 适用场景
- 代码生成 + 自动执行
- 复杂任务多角色分解
- 研究实验 / 原型验证
5. CrewAI:角色扮演式团队
5.1 设计哲学
CrewAI 用「角色 + 任务 + 流程」组织 Agent。像组建一个团队:CEO、分析师、执行者。
Python - CrewAI 团队
from crewai import Agent, Task, Crew
# 定义角色
researcher = Agent(
role="市场研究分析师",
goal="深入分析 AI 编程工具市场",
backstory="你有多年的技术市场分析经验",
llm="gpt-4o"
)
writer = Agent(
role="技术内容作者",
goal="把研究结果写成一篇博客",
backstory="你擅长把技术内容写得更易读",
llm="gpt-4o"
)
# 定义任务
research_task = Task(
description="调研 Cursor、Copilot、AtomCode 的优缺点",
agent=researcher,
expected_output="一份对比分析报告"
)
write_task = Task(
description="基于报告写一篇 2000 字博客",
agent=writer,
context=[research_task],
expected_output="一篇完整博客文章"
)
# 组建团队并执行
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
print(result)
5.2 适用场景
- 内容生产流水线
- 业务流程自动化
- 多步骤协作任务
6. 四维对比
| 维度 | LangChain | LlamaIndex | AutoGen | CrewAI |
|---|---|---|---|---|
| 核心能力 | 全链路 | 检索/RAG | 多 Agent 对话 | 角色协作 |
| 上手难度 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 生产成熟度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 社区活跃 | 最高 | 高 | 高 | 中 |
| 代码量(同任务) | 多 | 中 | 中 | 少 |
| 调试难度 | 高 | 中 | 中 | 低 |
7. 选型决策树
做知识库 / 文档问答? → LlamaIndex
做多 Agent 自动协作(写代码+执行)? → AutoGen
做内容流水线 / 业务流程? → CrewAI
通用 AI 应用,从原型到生产? → LangChain
不确定 / 学习阶段? → 从 LangChain 开始,需要 RAG 时引入 LlamaIndex
8. 组合使用建议
实际项目中框架可以组合:
- LangChain + LlamaIndex:LangChain 做编排,LlamaIndex 做检索
- LangGraph + AutoGen:LangGraph 定义流程,AutoGen 执行多 Agent 对话
- CrewAI + LangChain:CrewAI 定义团队,底层用 LangChain 工具
我的推荐:新手从 LangChain 入手(生态全、资料多);做 RAG 项目用 LlamaIndex(更专注);做自动化协作用 CrewAI(代码最少);做实验性多 Agent 用 AutoGen(对话模型最灵活)。
9. 总结
| 框架 | 一句话定位 | 选它 |
|---|---|---|
| LangChain | AI 应用瑞士军刀 | 通用场景、要生产落地 |
| LlamaIndex | 数据检索专家 | 知识库、RAG 问答 |
| AutoGen | 多 Agent 对话引擎 | 代码生成、实验研究 |
| CrewAI | 角色扮演团队 | 内容生产、流程自动化 |
框架只是工具。真正决定成败的是:你对任务的理解、Prompt 的质量、数据准备的充分程度。
如果对你有帮助,欢迎在评论区聊聊你用的 Agent 框架。
更多推荐


所有评论(0)