Skip to content

九、RAG 框架

← 上一章:八、Agent 框架 | 返回总览 | 下一章:十、向量知识库 →

RAG(检索增强生成)框架。2026 年的趋势是向 Agentic RAG 和上下文工程演进。

主流 RAG 框架

框架特点
RAGFlow企业级知识处理引擎,深度文档解析,表格识别能力强
LlamaIndex数据框架,RAG 核心工具,支持 Agent 集成
LangChainRAG 基础组件丰富,生态最大
Haystackdeepset 出品,模块化 RAG 管线,支持主流向量库和 LLM
FastGPT高速内容生成专家,轻量易用

RAG 框架选型对比

框架文档解析企业级部署学习曲线适用规模典型场景
RAGFlow极强(深度文档解析、表格识别)自托管/云非结构化文档、表格密集型
LlamaIndex自托管数据框架、Agent 集成
LangChain强(组件丰富)自托管生态最大,需要灵活组合
Haystack强(模块化管线)自托管中-大模块化 RAG 管线,向量库自由切换
FastGPT自托管中小快速搭建知识库问答

5 分钟快速上手:用 LlamaIndex 搭建最简 RAG

bash
# 1. 安装
pip install llama-index llama-index-embeddings-huggingface chromadb

# 2. 创建 test_rag.py
cat > test_rag.py << 'EOF'
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 设置中文 Embedding 模型
Settings.embed_model = HuggingFaceEmbedding("BAAI/bge-small-zh-v1.5")

# 加载文档(放入 data/ 目录)
documents = SimpleDirectoryReader("data/").load_data()

# 构建索引并查询
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=3)
response = query_engine.query("文档的核心内容是什么?")
print(response)
EOF

# 3. 准备文档
mkdir -p data
echo "AI Wiki 是一个开源的 AI 开发知识导航项目..." > data/intro.txt

# 4. 运行
python test_rag.py

关键参数similarity_top_k 控制检索文档数量,chunk_size 控制切分粒度(默认 1024,中文建议 256-512)。

选型路径

  • 快速验证FastGPT:小时级上线知识库问答
  • 文档密集型(PDF/表格)RAGFlow:深度文档解析能力最强
  • 需要灵活编排 + Agent 集成LlamaIndex / LangChain
  • 模块化切换向量库和 LLMHaystack
  • 企业私有化部署RAGFlow / Dify(低代码,可私有部署)

RAG 演进方向

GraphRAG

GraphRAG 在传统向量检索之上叠加知识图谱层,通过实体-关系抽取构建结构化语义网络,解决"片段式检索看不到全局关联"的问题。

核心流程:

文档 → 实体/关系抽取(LLM) → 知识图谱构建 → 图遍历 + 向量混合检索 → 生成

代表项目:

  • Microsoft GraphRAG(23K+ star):微软开源,自动构建实体知识图谱,支持全局摘要(Global Search)和局部检索(Local Search)两种模式
  • Neo4j + LLM:图数据库原生集成,适合已有 Neo4j 基础设施的企业
  • LightRAG:港大出品,轻量级 GraphRAG,成本更低

典型实践案例:

场景为什么用 GraphRAG效果
法律判例检索法条之间相互引用,向量检索容易遗漏关联先例图遍历可沿引用链追溯,召回率提升 30%+
医药文献分析药物-靶点-疾病三者构成天然图结构发现跨文献的间接关联,辅助药物重定位
企业制度问答制度文件之间互相引用、存在层级关系理解"上级制度→下级细则"的层级链
科研文献综述论文引用网络是天然的知识图谱沿引用链追踪研究脉络,生成结构化综述

Agentic RAG

Agentic RAG 用 Agent 替代固定的检索流水线——Agent 自主判断"该不该查、去哪里查、怎么查、查完够不够",实现动态多步检索。

区别于传统 RAG:

传统 RAGAgentic RAG
检索次数一次多轮,直到满足需求
检索源固定向量库向量库 + Web 搜索 + API + 数据库
决策主体预设管线Agent 自主决策
失败处理静默返回不完整结果重写查询、换源、自我纠错

典型架构:

用户提问 → Agent 分析意图
              ├── 需要检索?→ 选择检索源(向量库/Web/API)
              │                   → 评估结果质量
              │                   → 不满足?→ 重写查询重试
              └── 信息充足?→ 综合生成回答(含引用来源)

典型实践案例:

场景Agent 行为技术栈
竞品分析报告先搜 Web 获最新动态 → 查内部文档补细节 → 交叉验证 → 生成报告LangGraph + Tavily + 向量库
客服工单排查查知识库 → 不够?查历史工单 DB → 还不够?查操作日志 → 给出根因LangChain + SQL + 向量库
学术研究助手检索论文摘要 → 筛选高相关 → 深度阅读全文 → 交叉引用追踪 → 综述LlamaIndex + Semantic Scholar API
合规审查检索法规条文 → 比对企业制度 → 标记冲突点 → 生成整改清单RAGFlow + 规则引擎

落地建议:

  • 从简单场景起步:先用传统 RAG 跑通,发现"一次检索不够"时再加入 Agent 循环
  • 控制检索步数:建议上限 3-5 步,避免 Agent 无限循环消耗 token
  • 记录检索链路:每次检索的 query、来源、结果都应可追溯,便于调试和优化

多模态 RAG

支持图像、表格、音视频等非文本数据的检索增强生成。

代表项目:

上下文工程

从"丢一段检索结果给 LLM"升级为系统性编排上下文:去噪、排序、压缩、多文档融合,确保每一 token 上下文都有信息量。相关工具:LangChain ContextLlamaIndex Ingestion Pipeline

基于 CC BY-NC-SA 4.0 发布