最后更新: 2026-03-14 | 分类: AI 开发框架
LangChain 和 LlamaIndex 是当前 LLM 应用开发领域最具影响力的两个开源框架。两者虽然都服务于”用 LLM 构建应用”这一目标,但设计哲学和侧重点有本质差异:
截至 2025 年底,LangChain 在 GitHub 上拥有超过 100k stars,LlamaIndex 超过 38k stars(GitHub 仓库数据,2025 年 Q4)。两者在 PyPI 上的月下载量均达到数百万级别,共同构成了 LLM 应用开发的事实标准工具链。
核心结论: 如果你的核心需求是 RAG 和数据索引,LlamaIndex 更专注、开箱即用;如果你需要构建复杂的 Agent 工作流或多步骤链条,LangChain 更灵活。两者可以互补使用。
竞品概览:除 LangChain 和 LlamaIndex 外,LLM 应用开发领域还有其他值得关注的框架: - Haystack(deepset)— 端到端 NLP/RAG 管线框架,深度集成 Elasticsearch,适合企业搜索场景 - Semantic Kernel(Microsoft)— 微软推出的 AI 编排 SDK,原生集成 .NET/Python/Java,适合 Azure 生态用户 - DSPy(Stanford)— 编程式 Prompt 优化框架,侧重自动化提示工程
本报告聚焦 LangChain 与 LlamaIndex 的深度对比,对上述竞品不做展开分析。
LangChain 的核心抽象是 Chain(链)——将多个步骤串联起来形成完整的工作流。其设计哲学是:
关键组件层次:
LlamaIndex 的核心抽象是 Index(索引)——将非结构化数据构建为可高效检索的结构。其设计哲学是:
关键组件层次:
| 维度 | LangChain | LlamaIndex |
|---|---|---|
| 核心抽象 | Chain / Graph | Index / Query Engine |
| 设计重心 | 编排与工作流 | 数据与检索 |
| 学习曲线 | 较陡(概念多) | 中等(RAG 为核心) |
| 灵活性 | 高(但复杂) | 中等(场景聚焦) |
| 2025 演进方向 | Agent 全面化 (LangGraph) | Workflows + 多模态 RAG |
LangChain 通过 BaseChatModel 统一接口,支持 OpenAI、Anthropic、Google、Mistral、Cohere 等数十家提供商。通过 langchain-openai、langchain-anthropic 等独立包维护。
LlamaIndex 通过 LLM 基类统一接口,同样支持主流提供商。其嵌入模型抽象 (BaseEmbedding) 与索引系统深度集成,选择嵌入模型对检索质量影响更大。
两者都支持: - 流式输出 (Streaming) - 函数调用 (Function Calling / Tool Use) - 结构化输出 (Structured Output) - 多模态输入(图像、PDF)
LangChain Agent 演进:
- 早期: AgentExecutor(单轮工具选择循环)
- 2024+: LangGraph(基于有向图的 Agent 工作流)
- 支持循环、分支、状态持久化
- Human-in-the-loop 支持
- 多 Agent 协作(Supervisor 模式)
- 时间旅行调试
LlamaIndex Agent 演进:
- 早期: ReActAgent、OpenAIAgent(简单工具调用)
- 2024+: Workflows(事件驱动的异步工作流)
- 步骤之间通过事件触发
- 支持并行执行、循环、条件分支
- 内置 RAG 专用 Agent 模式(如 QueryPipeline)
对比: LangGraph 更通用、功能更强;LlamaIndex Workflows 更简洁、对 RAG 场景更友好。
这是 LlamaIndex 的绝对优势领域:
| 索引类型 | 说明 | 适用场景 |
|---|---|---|
| VectorStoreIndex | 向量相似度检索 | 语义搜索 |
| SummaryIndex | 摘要式检索 | 全局概览 |
| TreeIndex | 层次化树结构 | 概念到细节的导航 |
| KnowledgeGraphIndex | 知识图谱 | 实体关系推理 |
| PropertyGraphIndex | 属性图 (2024 新增) | 复杂图谱 RAG |
| SQL Index | SQL 数据库查询 | 结构化数据 |
LangChain 的检索能力主要通过 VectorStore 和 Retriever 抽象实现,相对更基础,需要更多手动配置。
LangChain 提供丰富的记忆类型:
- ConversationBufferMemory: 完整历史
- ConversationSummaryMemory: 摘要压缩
- ConversationBufferWindowMemory: 滑动窗口
- VectorStoreRetrieverMemory: 基于检索的记忆
LlamaIndex 的记忆能力相对简单,主要通过 ChatMemoryBuffer 实现,或借助外部存储。对于需要复杂记忆管理的场景,LangChain 更成熟。
| 类别 | LangChain | LlamaIndex |
|---|---|---|
| LLM 提供商 | 60+ | 40+ |
| 向量数据库 | 40+ | 30+ |
| 数据加载器 | 100+ (社区) | 200+ (LlamaHub) |
| 工具/集成 | 700+ | 300+ |
| 可观测性 | LangSmith, LangFuse, etc. | LlamaTrace, LangFuse |
| 指标 | LangChain | LlamaIndex |
|---|---|---|
| GitHub Stars | ~108k | ~38k |
| Contributors | 3,000+ | 1,200+ |
| PyPI 月下载 | ~15M | ~5M |
| Discord 成员 | 30,000+ | 15,000+ |
| 贡献公司 | 500+ | 200+ |
(数据来源: GitHub 仓库统计及 PyPI 下载趋势,2025 年第四季度)
LangChain 生态: - LangSmith: 托管的可观测性、评估、Prompt 管理平台 - LangGraph Cloud: 托管的 Agent 部署平台 - LangServe: 免费的 API 部署工具
LlamaIndex 生态: - LlamaCloud: 托管的数据解析与索引服务(LlamaParse 为核心) - LlamaDeploy: 开源 Agent 部署框架 - LlamaParse: 高质量文档解析(PDF 表格、复杂布局)
在标准 RAG 基准测试(HotpotQA、SQuAD)中,两者表现差异不大,主要取决于: - 嵌入模型选择 - 分块策略 - 检索参数(top-k、相似度阈值) - 重排序模型
LlamaIndex 的优势 在于其内置的优化策略:
- SentenceWindowRetrieval: 检索时扩展上下文窗口
- AutoMergingRetrieval: 自动合并子节点以保持上下文完整性
- Metadata Filtering: 结合元数据过滤提升精度
- Hybrid Search: 关键词 + 向量混合检索
| 维度 | LangChain | LlamaIndex |
|---|---|---|
| 异步支持 | 全面 (async/await) | 全面 (async/await) |
| 流式处理 | ✅ 原生支持 | ✅ 原生支持 |
| 分布式执行 | LangGraph 分布式节点 | LlamaDeploy 多服务 |
| 水平扩展 | 依赖部署框架 | 依赖部署框架 |
| 缓存策略 | 内置 LLM 缓存 | 内置嵌入缓存 |
两个框架都经历了重大 API 变更: - LangChain: 0.1 → 0.2 版本进行了大幅重构,引发社区争议。稳定后 API 变更频率降低。 - LlamaIndex: 从 0.9 到 0.10+,逐步引入 Workflows 替代旧的 Query Pipeline。
建议: 生产环境固定版本号,关注 changelog,避免自动升级。