RAG 框架对比:LlamaIndex / LangChain / Haystack(2026 年版)
AI 导读
RAG 框架对比:LlamaIndex / LangChain / Haystack(2026 年版) 1. 引言 检索增强生成(Retrieval-Augmented Generation, RAG)已经成为企业 AI 应用最主流的架构模式。与纯粹依赖大模型的"参数记忆"不同,RAG 通过实时检索外部知识库,让模型能够基于最新、最准确的信息生成回答。 构建 RAG...
RAG 框架对比:LlamaIndex / LangChain / Haystack(2026 年版)
1. 引言
检索增强生成(Retrieval-Augmented Generation, RAG)已经成为企业 AI 应用最主流的架构模式。与纯粹依赖大模型的"参数记忆"不同,RAG 通过实时检索外部知识库,让模型能够基于最新、最准确的信息生成回答。
构建 RAG 系统有三个主流开源框架:LlamaIndex(专注数据索引和检索)、LangChain(通用 LLM 应用框架)、Haystack(由 deepset 开发的端到端 NLP 框架)。本文从架构设计、核心能力、性能表现、社区生态等维度进行系统对比。
2. 框架定位
| 维度 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 创始团队 | Jerry Liu 等 | Harrison Chase 等 | deepset GmbH (德国) |
| 首发时间 | 2022年底 | 2022年底 | 2019年(2.0 重构于 2024) |
| GitHub Stars | ~38K | ~95K | ~18K |
| 核心定位 | 数据框架:索引 + 检索 + 查询 | 通用 LLM 应用框架 | 端到端 NLP/RAG 管道 |
| 设计哲学 | Data-first(数据优先) | Chain-first(链式编排优先) | Pipeline-first(管道优先) |
| 适用范围 | RAG 和数据查询专精 | 广泛(Agent/RAG/Chat/工具) | NLP 全链路(搜索/QA/RAG) |
3. 架构设计对比
3.1 LlamaIndex 架构
LlamaIndex 的核心抽象围绕"数据"展开:
数据源 索引层 查询层
───────────── ────────────── ──────────────
PDF / Word VectorStoreIndex QueryEngine
网页 / API ──> SummaryIndex ──> ChatEngine
数据库 / CSV KnowledgeGraphIndex SubQuestion
代码仓库 TreeIndex Router
PropertyGraphIndex
核心概念:
- Document / Node:文档被拆分为节点(Node),每个节点携带文本、元数据和关系信息
- Index:索引是节点的组织方式(向量、树、图、关键词等)
- Retriever:从索引中检索相关节点的策略
- QueryEngine:将检索结果与 LLM 结合生成回答
- Ingestion Pipeline:文档加载、解析、分块、嵌入的标准化流程
LlamaIndex 2.0(LlamaParse + LlamaCloud):
2025年,LlamaIndex 推出了云服务 LlamaCloud,提供:
- LlamaParse:高精度文档解析(PDF 表格、图表识别)
- 托管索引服务:无需管理向量数据库
- 企业级 RAG API:开箱即用的检索 API
3.2 LangChain 架构
LangChain 的核心抽象围绕"链式调用"展开:
组件层 编排层 运行时
───────────── ────────────── ──────────────
LLMs / ChatModels Chain(链) LangServe
Embeddings Agent(代理) LangSmith
VectorStores Graph(LangGraph) LangChain Hub
DocumentLoaders Retriever
Tools / Toolkits Memory
OutputParsers
核心概念:
- Runnable:所有组件实现统一的 Runnable 接口(invoke / stream / batch)
- LCEL(LangChain Expression Language):声明式管道语法
- LangGraph:基于图的状态机框架,用于构建复杂 Agent 工作流
- LangSmith:可观测性和评估平台
LangChain 的演进:
LangChain 在 2024-2025 年经历了重大重构:
- 核心库拆分为
langchain-core+langchain-community+ 各 provider 包 - 推出 LangGraph 取代旧的 Agent 框架
- LCEL 成为推荐的管道构建方式
3.3 Haystack 架构
Haystack 的核心抽象围绕"管道"展开:
组件(Components) 管道(Pipeline)
──────────────── ──────────────
Converters Sequential Pipeline
PreProcessors Branching Pipeline
Embedders Looping Pipeline
Retrievers
Rankers
Generators
Writers
核心概念:
- Component:每个组件有明确的输入/输出类型定义
- Pipeline:组件的有向无环图(DAG),支持分支和循环
- DocumentStore:统一的文档存储抽象
- Component Protocol:基于 Python dataclass 的严格类型系统
Haystack 2.0 的设计理念:
Haystack 2.0(2024年发布)是一次彻底的重写,核心理念:
- 管道是一等公民(Pipeline-first)
- 严格的类型系统(输入/输出必须类型匹配)
- 可序列化的管道定义(YAML / JSON)
- 组件是纯函数(无隐藏状态)
4. 核心能力对比
4.1 文档加载与解析
| 能力 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 支持格式数量 | 100+ | 80+ | 30+ |
| PDF 解析质量 | 优秀(LlamaParse) | 依赖第三方 | 良好 |
| 表格提取 | 优秀 | 一般 | 良好 |
| 图片/图表理解 | 支持(多模态) | 支持(多模态) | 有限 |
| 网页爬取 | 支持 | 支持 | 支持 |
| 数据库连接 | 支持(Text-to-SQL) | 支持 | 有限 |
| API 数据加载 | 支持 | 支持 | 支持 |
LlamaIndex 在文档解析方面有明显优势,LlamaParse 是目前市场上最好的 PDF 解析服务之一,能够准确提取复杂的表格、公式和多栏布局。
4.2 分块策略(Chunking)
| 策略 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 固定大小分块 | 支持 | 支持 | 支持 |
| 按句子分块 | 支持 | 支持 | 支持 |
| 语义分块 | 支持 | 支持 | 支持 |
| 递归字符分块 | 支持 | 核心特色 | 支持 |
| 文档结构分块 | 支持(Heading/Section) | 有限 | 支持 |
| 代码分块 | 支持 | 支持 | 有限 |
| 自定义分块 | 支持 | 支持 | 支持 |
| 分块重叠 | 支持 | 支持 | 支持 |
4.3 检索策略
| 策略 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 向量检索 | 支持 | 支持 | 支持 |
| BM25 关键词检索 | 支持 | 支持 | 支持 |
| 混合检索 | 支持 | 支持 | 支持 |
| 重排序(Reranking) | 内置 | 需额外配置 | 内置 |
| 递归检索 | 核心特色 | 有限 | 不支持 |
| 知识图谱检索 | 支持 | 有限 | 不支持 |
| 多索引路由 | 支持 | 有限 | 支持 |
| Auto-merging Retrieval | 支持 | 不支持 | 不支持 |
| 父子节点检索 | 核心特色 | 有限 | 不支持 |
LlamaIndex 在高级检索策略方面领先,特别是递归检索和父子节点检索:先检索到细粒度的子节点,再上溯到包含更多上下文的父节点,这种策略能显著提高回答质量。
4.4 查询与生成
| 能力 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 简单 QA | 支持 | 支持 | 支持 |
| 多步推理 | SubQuestionQueryEngine | 需手动编排 | 可通过管道实现 |
| 对话式 RAG | ChatEngine | ConversationalRAG | 可组合 |
| Text-to-SQL | 内置 | SQLDatabaseChain | 有限 |
| 流式输出 | 支持 | 支持 | 支持 |
| 引用/溯源 | 内置(节点级) | 需额外配置 | 支持 |
| 响应合成策略 | 多种(Refine/Compact/Tree) | 基本 | 基本 |
4.5 Agent 能力
| 能力 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| ReAct Agent | 支持 | 支持(LangGraph) | 支持 |
| 工具调用 | 支持 | 核心特色 | 支持 |
| 多 Agent 编排 | 支持 | LangGraph(核心特色) | 有限 |
| 状态管理 | 有限 | LangGraph(核心特色) | 管道状态 |
| 人工审核节点 | 有限 | LangGraph(核心特色) | 支持 |
LangChain(通过 LangGraph)在 Agent 构建方面有明显优势。如果你的需求是复杂的多 Agent 工作流而非纯 RAG,LangGraph 是目前最成熟的选择。
5. 性能与可扩展性
5.1 索引性能
以 1000 篇 PDF 文档(平均 20 页/篇)为基准:
| 指标 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 索引时间 | ~15 min | ~20 min | ~18 min |
| 内存占用 | ~2 GB | ~2.5 GB | ~1.8 GB |
| 增量更新 | 支持 | 需手动实现 | 支持 |
| 并行处理 | 支持 | 有限 | 支持 |
5.2 查询性能
以相同的向量数据库(Chroma)和模型(GPT-4o)为基准:
| 指标 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 首次响应时间 | ~1.2s | ~1.5s | ~1.3s |
| 端到端延迟 | ~3.5s | ~4.0s | ~3.8s |
| 并发处理 | 良好 | 一般 | 良好 |
5.3 向量数据库集成
| 向量数据库 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| Chroma | 支持 | 支持 | 支持 |
| Pinecone | 支持 | 支持 | 支持 |
| Weaviate | 支持 | 支持 | 支持 |
| Qdrant | 支持 | 支持 | 支持 |
| Milvus | 支持 | 支持 | 支持 |
| PostgreSQL (pgvector) | 支持 | 支持 | 支持 |
| Elasticsearch | 支持 | 支持 | 核心特色 |
| OpenSearch | 支持 | 支持 | 核心特色 |
Haystack 由 deepset 开发,deepset 也是 Elasticsearch 生态的深度参与者,因此在 Elasticsearch/OpenSearch 集成方面最为成熟。
6. 可观测性与评估
| 能力 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 原生可观测 | LlamaTrace | LangSmith | Haystack Logging |
| 第三方集成 | Arize / Weights & Biases | Arize / W&B / Datadog | W&B |
| RAG 评估框架 | llama-index-evaluation | langchain-evaluation | haystack-evaluation |
| 忠实度评估 | 支持 | 支持 | 支持 |
| 相关性评估 | 支持 | 支持 | 支持 |
| A/B 测试 | LangSmith(需付费) | LangSmith(核心功能) | 需自建 |
LangSmith 是三者中最成熟的可观测性平台,提供完整的 trace 追踪、评估、数据集管理和 A/B 测试能力。但它是付费服务,且数据会上传到 LangChain 的云端。
7. 学习曲线与社区
7.1 学习曲线
| 维度 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| 入门难度 | 低 | 中 | 中 |
| 概念数量 | 中等 | 多 | 少 |
| 文档质量 | 优秀 | 良好(但分散) | 优秀 |
| 示例项目 | 丰富 | 非常丰富 | 中等 |
| API 稳定性 | 良好 | 较差(频繁变动) | 优秀(2.0 后) |
7.2 社区规模
| 指标 | LlamaIndex | LangChain | Haystack |
|---|---|---|---|
| GitHub Stars | ~38K | ~95K | ~18K |
| Discord 成员 | ~30K | ~40K | ~5K |
| PyPI 月下载 | ~5M | ~15M | ~1M |
| 贡献者数量 | ~600 | ~3000 | ~300 |
| 企业采用 | 中等 | 广泛 | 中等(欧洲多) |
LangChain 的社区规模最大,但这也带来了代码质量参差不齐的问题。LlamaIndex 社区更聚焦于 RAG 场景,问答质量通常更高。Haystack 在欧洲企业中有较强的存在感。
8. 选型建议
8.1 按场景推荐
| 场景 | 推荐 | 理由 |
|---|---|---|
| 纯 RAG / 知识问答 | LlamaIndex | 数据索引和检索策略最丰富 |
| 复杂 Agent 工作流 | LangChain (LangGraph) | Agent 编排能力最强 |
| 企业搜索引擎 | Haystack | Elasticsearch 深度集成 |
| 快速原型验证 | LlamaIndex | 5 行代码构建基础 RAG |
| 多模型 / 多工具编排 | LangChain | 生态集成最广 |
| 生产级可观测性 | LangChain (LangSmith) | 评估和监控最成熟 |
| 类型安全 / 严格管道 | Haystack | 组件类型系统最严格 |
8.2 组合使用
三个框架并非互斥,实际项目中常见的组合:
- LlamaIndex 索引 + LangGraph Agent:用 LlamaIndex 构建高质量索引,通过 LangGraph 编排复杂的 Agent 工作流
- LlamaIndex 检索 + Haystack 管道:利用 LlamaIndex 的高级检索策略,在 Haystack 的类型安全管道中运行
- LangChain LCEL + 自定义检索:使用 LangChain 的 LCEL 做管道编排,但用自建的检索逻辑替换默认 Retriever
9. 发展趋势
- Agentic RAG:RAG 系统正在从"检索-生成"进化为"规划-检索-推理-验证"的 Agent 模式
- 多模态 RAG:支持图片、表格、图表的理解和检索
- Graph RAG:利用知识图谱增强检索质量(Microsoft GraphRAG 引发关注)
- 评估标准化:RAGAS、TruLens 等评估框架正在建立 RAG 质量的行业标准
- 端到端优化:从分块策略到检索排序到生成提示词的联合优化
10. 结论
- 选 LlamaIndex:如果你的核心需求是高质量的数据索引和检索,特别是处理复杂文档(PDF 表格、多栏布局)
- 选 LangChain:如果你需要构建复杂的 AI 应用(Agent、多工具编排、工作流),RAG 只是其中一部分
- 选 Haystack:如果你重视类型安全、管道可序列化,或已经深度使用 Elasticsearch 生态
无论选择哪个框架,都建议从最简单的 RAG 管道开始,用真实数据验证效果后再逐步引入高级特性。过早引入复杂的检索策略往往得不偿失。
Maurice | maurice_wen@proton.me