课程0基础Agent开发课 / 框架与平台对比 / LangChain-vs-LlamaIndex-vs-AutoGen-框架选型指南
— 15 min read

LangChain-vs-LlamaIndex-vs-AutoGen-框架选型指南

进入 AI 应用开发领域,面对 LangChain、LlamaIndex、AutoGen、CrewAI、LangGraph 等众多框架名称,往往令人无从下手。搜索 RAG 教程,用的是 LlamaIndex;搜索 Agent,大多是 LangChain;搜索多 Agent 协作,AutoGen 和 CrewAI 交替出现;搜索复杂工作流,又有观点认为 LangGraph 才是正解。

LangChain vs LlamaIndex vs AutoGen:AI 框架选型指南

进入 AI 应用开发领域,面对 LangChain、LlamaIndex、AutoGen、CrewAI、LangGraph 等众多框架名称,往往令人无从下手。搜索 RAG 教程,用的是 LlamaIndex;搜索 Agent,大多是 LangChain;搜索多 Agent 协作,AutoGen 和 CrewAI 交替出现;搜索复杂工作流,又有观点认为 LangGraph 才是正解。

这些框架定位差异显著,并不处于同一赛道。理解它们各自解决的核心问题,是做出合理选型的前提。

为什么需要框架?框架解决了什么问题

在讨论具体框架之前,先理解一个根本问题:为什么需要框架,而不是直接调用 LLM 的 API?

直接调用 API 完全可行。但随着应用复杂度提升,你会重复解决以下问题:怎么管理多轮对话的历史?怎么把文档切块存入向量数据库再检索出来?怎么让 LLM 调用外部工具?怎么在多个步骤之间传递状态?框架的本质是把这些通用问题的解法沉淀下来,让你不必每次从头写。

框架带来的核心价值是:

  • 标准化接口:切换不同的 LLM 提供商(OpenAI、Anthropic、DeepSeek、本地模型)只需改一行配置
  • 组件复用:文档加载、向量化、检索、记忆管理等模块开箱即用
  • 减少胶水代码:把组件串联起来的"管道"逻辑由框架处理

框架的代价是:

  • 封装带来不透明性,出问题时调试困难
  • 框架本身的 bug 和版本变动会影响你的代码
  • 过度封装可能让你不理解底层发生了什么

理解了这个权衡,再看各个框架就有了判断标准:这个框架解决了什么问题,它的抽象层次和我的需求是否匹配。

2026 年框架生态的变化

框架生态演进时间线
AI Agent 主流框架从发布到成熟的演进历程(2022-2026)

在介绍具体框架之前,先说明 2026 年的一些重要变化:

LangGraph 已成为 LangChain 生态的核心。2024 年前,"LangChain Agent"通常指 AgentExecutor。2025 年起,LangGraph 已成为构建 Agent 的推荐方式,大多数新的 Agent 教程和项目直接使用 LangGraph。AgentExecutor 仍然存在但不再是首选。

AutoGen v0.4 的重大架构调整。微软在 v0.4 对 AutoGen 进行了重写,从基于对话的架构转向事件驱动的 Actor 模型。迁移成本较高,新旧版本几乎不兼容。评估 AutoGen 时需要明确是哪个版本。

Spring AI 1.0 稳定发布。Spring AI 在 2025 年发布了 1.0 稳定版,Java 团队的生产使用案例大幅增加,是 Java 栈 AI 开发的重要选择。

LangChain:通用框架,入门首选

LangChain 是目前生态最完整的 AI 应用开发框架。GitHub 星数最多,文档最全,社区最活跃,遇到问题基本都能检索到解决方案。

其核心设计哲学是组合优于继承——把 AI 应用分解为一组可互换的积木块(组件),每个组件定义统一接口,通过链式调用(LCEL,LangChain Expression Language)把它们组合在一起。这个设计让 LangChain 在灵活性和扩展性之间取得了平衡:更换某个组件(比如把 OpenAI 换成 DeepSeek)不影响其他组件。

链式调用的直觉理解:想象一条流水线,每个工站负责一道工序,产品从左边进,加工后传给下一个工站。LangChain 的"链"就是这样的流水线,输入从第一个组件进入,逐步经过每个组件的处理,最终得到输出。| 操作符表达"传递给下一个"的语义。

python
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

# 定义链:提示词 → 模型 → 解析器
prompt = ChatPromptTemplate.from_template("用一句话总结:{text}")
model = ChatOpenAI(model="gpt-4o-mini")
parser = StrOutputParser()

chain = prompt | model | parser

result = chain.invoke({"text": "LangChain 是一个用于构建 AI 应用的框架。"})
print(result)

LangChain 的关键优势

  • 社区最大,遇到问题最容易找到解答
  • 支持 100 余种 LLM、各种向量数据库、各种文档加载器
  • LangSmith 可观测性平台,开发调试体验好
  • LangGraph 作为复杂 Agent 的解决方案

适合的场景:通用 AI 应用开发,入门阶段的第一个框架,需要快速找到各类现成集成的场景。

需要注意的问题

  • LangChain 版本迭代速度较快,API 变动频繁,旧版本代码可能出现废弃警告
  • 封装层次较深,排查问题时需要了解底层行为
  • 对于简单应用,引入 LangChain 可能得不偿失

2026 年现状:LangChain + LangGraph 的组合已成为 Python Agent 开发的事实标准。纯 LangChain(不用 LangGraph)适合简单应用,复杂 Agent 推荐直接上 LangGraph。

LlamaIndex:RAG 专家

LlamaIndex 的定位高度聚焦:做 RAG(检索增强生成),做数据索引

理解 LlamaIndex 的设计哲学,需要先理解 RAG 本质上是一个"信息检索 + 生成"的两阶段问题。信息检索领域有几十年的研究积累:如何切分文档、如何建立倒排索引、如何进行语义匹配、如何对结果重排序。LlamaIndex 把这套信息检索的工程实践,与 LLM 的生成能力结合起来,专门服务于"让 LLM 回答基于你自有数据的问题"这个场景。

如果说 LangChain 是通才,LlamaIndex 是 RAG 领域的专科工具。同样实现知识库问答,LlamaIndex 提供的工具粒度更细,可控性更强。

它将整个 RAG 流程拆分为清晰的几层:

  • Document Loader:加载各类数据源(PDF、Word、数据库、网页、API)
  • Node Parser:将文档切分为合适的块,支持多种切割策略
  • Index:建立索引,支持向量索引、关键词索引、知识图谱索引
  • Retriever:检索,支持向量检索、BM25、混合检索
  • Query Engine:查询引擎,将检索结果与问题一起输入 LLM 生成答案
python
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.core.node_parser import SentenceSplitter

# 加载文档
documents = SimpleDirectoryReader("./docs").load_data()

# 切块
splitter = SentenceSplitter(chunk_size=512, chunk_overlap=50)
nodes = splitter.get_nodes_from_documents(documents)

# 建索引
index = VectorStoreIndex(nodes)

# 查询
query_engine = index.as_query_engine()
response = query_engine.query("我们的退款政策是什么?")
print(response)

LlamaIndex 还内置了多种高级 RAG 技术:

  • HyDE(先让 LLM 生成假设性回答,再用这个假设回答去检索,效果往往优于直接用问题检索)
  • 句子窗口检索(检索时扩大上下文窗口,提高语义完整性)
  • 递归检索(从大范围到小范围递进检索)
  • 知识图谱索引(利用实体关系提高检索精准度)

适合的场景:知识库问答系统、企业文档分析、PDF/合同/报告检索、任何以 RAG 为核心需求的场景。

需要注意的问题:Agent 能力相对薄弱。需要多步推理或调用多个工具的场景,使用 LangChain 或 AutoGen 更为顺手。

2026 年现状:LlamaIndex 已成为企业 RAG 场景的首选,与 LangChain 的定位分工越来越清晰——LangChain 做通用应用,LlamaIndex 做 RAG 专项。两者可以配合使用。

AutoGen:多 Agent 协作,代码生成最强

AutoGen 是微软推出的框架,专注于解决一个具体问题:让多个 Agent 通过对话协作完成复杂任务

AutoGen 的核心设计哲学来自一个观察:人类解决复杂问题时,往往通过协作而非独立完成——一个人提方案,另一个人审查,审查发现问题再修改,循环迭代直到满意。AutoGen 把这个协作模式形式化为 Agent 之间的对话。

这个模式对代码生成任务特别有效。代码的正确性可以通过执行来验证,这天然适合 AutoGen 的"生成-执行-反馈-修改"循环。

AutoGen 的两个核心角色

  • AssistantAgent:AI 助手,负责生成代码或回答问题,不会主动执行代码
  • UserProxyAgent:代理用户,负责执行代码并反馈结果,代码出错时把错误信息反馈给 AssistantAgent

两个 Agent 相互对话:AssistantAgent 编写代码,UserProxyAgent 执行代码,执行失败则将报错反馈给 AssistantAgent,由其修改后再次执行,如此循环直至成功。

python
import autogen

config_list = [{"model": "gpt-4o", "api_key": "your-key"}]

assistant = autogen.AssistantAgent(
    name="assistant",
    llm_config={"config_list": config_list},
)

user_proxy = autogen.UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "workspace", "use_docker": False},
)

user_proxy.initiate_chat(
    assistant,
    message="写一个 Python 脚本,分析 sales.csv 文件,输出每个月的销售额柱状图。",
)

适合的场景:代码生成和自动调试、数据分析自动化、需要多个 Agent 角色分工协作的复杂任务。

需要注意的问题:流程控制不够精确。Agent 之间通过自然语言交互,执行路径有时不可预测,调试过程也不够直观。如果需要严格控制执行路径,LangGraph 是更合适的选择。

2026 年现状:AutoGen v0.4 进行了重大架构重写,从对话驱动转向事件驱动的 Actor 模型。新架构更适合复杂的企业级场景,但迁移成本高,社区仍在适应中。对于新项目,建议评估清楚 v0.4 的稳定性再决定。

LangGraph:有状态工作流,生产级 Agent 的选择

LangGraph 是 LangChain 团队开发的,但独立于 LangChain,可单独使用。它解决的是 LangChain 本身难以胜任的问题:精确控制 Agent 的执行流程

LangGraph 借用了图论的思想:把 Agent 的执行过程建模为有向图(类似流程图,节点是处理步骤,连线有方向规定执行顺序)。每个节点是一个处理步骤,边是流转路径,一个叫做 State 的数据结构在节点之间传递,记录当前任务的所有上下文。

这个设计带来了两个关键能力:条件分支(根据状态决定走哪条路)和循环(Agent 可以反复回到某个节点,直到满足条件才前进)。

python
from langgraph.graph import StateGraph, START, END
from typing import TypedDict

class AgentState(TypedDict):
    question: str
    search_results: str
    answer: str

def search_node(state: AgentState) -> dict:
    results = do_search(state["question"])
    return {"search_results": results}

def answer_node(state: AgentState) -> dict:
    answer = generate_answer(state["question"], state["search_results"])
    return {"answer": answer}

def should_search(state: AgentState) -> str:
    if needs_search(state["question"]):
        return "search"
    return "answer"

graph = StateGraph(AgentState)
graph.add_node("search", search_node)
graph.add_node("answer", answer_node)
graph.add_conditional_edges(START, should_search)
graph.add_edge("search", "answer")
graph.add_edge("answer", END)

app = graph.compile()

LangGraph 的核心优势:执行路径完全可预测,状态管理清晰,支持循环,支持断点和人工审核(Human-in-the-loop),支持持久化(Checkpointer)。

适合的场景:需要精确控制执行流程的生产级 Agent、有复杂条件分支的工作流、需要 Human-in-the-loop 审核的场景、长时间运行需要断点续跑的任务。

2026 年现状:LangGraph 已成为复杂 Agent 开发的首选框架,LangChain 官方推荐所有新的 Agent 项目使用 LangGraph 而非旧的 AgentExecutor。LangGraph Cloud 提供托管部署选项,降低了生产部署门槛。

框架综合对比

维度 LangChain LlamaIndex AutoGen LangGraph
核心定位 通用 AI 应用框架 RAG 专项 多 Agent 对话 有状态 Agent 编排
学习曲线 中等 中等(RAG 专项) 中等 较陡
RAG 能力 中等(通用) 强(专项优化) 不内置
Agent 能力 中等(配合 LangGraph) 强(对话式) 强(图式)
流程控制 弱(线性链) 弱(自然语言驱动) 强(精确图结构)
持久化 不原生支持 不原生支持 不原生支持 原生支持(Checkpointer)
社区活跃度(2026) 极高 中(v0.4 过渡期) 高(快速成长)
生产稳定性
适合团队 所有规模 中小团队 技术团队 中大团队

框架综合对比雷达图
四大框架在学习难度、文档质量、生态丰富、生产稳定、灵活性、社区活跃6个维度的综合评分

框架适用场景矩阵
四大框架在RAG知识库、多轮对话、多Agent协作、工作流编排、数据处理、快速原型6个场景的适合度(1-5分)

选型决策树

我要做什么?

核心需求是什么?

知识库问答/文档检索

通用 AI 应用/快速入门

代码生成/多 Agent 协作

复杂工作流/精确流程控制

现有 Java 系统集成 AI

LlamaIndex

LangChain

AutoGen

LangGraph

Spring AI

需要复杂流程控制?

组合使用的常见模式

这几个框架不是互斥关系,可以组合使用:

LangChain + LangGraph:最常见的组合。LangChain 提供模型抽象、Prompt 管理、文档处理等基础组件;LangGraph 负责 Agent 的图结构和状态管理,用 LangChain 的组件作为图节点的具体实现。

LlamaIndex + LangGraph:RAG 能力用 LlamaIndex,Agent 编排用 LangGraph。适合 RAG 需求复杂同时需要精确控制 Agent 流程的场景。

AutoGen + LangChain:AutoGen 负责多 Agent 对话协作,LangChain 负责文档处理和 RAG。适合需要代码执行能力同时又需要知识库支撑的场景。

关于框架选型的建议

这几个框架本质上都是对 LLM API 的封装。产品做得好不好,核心因素是对业务的理解和 Prompt 的质量,不是框架本身。

选定一个,深入用,遇到框架解决不了的问题再研究其他的。横向浅尝五个框架,不如纵向把一个用透。

不知道从哪开始的话,从 LangChain 入手。社区最大,问题最容易找到答案,入门成本最低。RAG 和 Agent 基础掌握之后,再看 LlamaIndex 和 LangGraph,上手会快很多。

有了 Java 背景的开发者,可以先用 Spring AI 把概念跑通,再切换到 Python 生态做更深入的学习——两者的核心概念是相通的。

本页目录