RAGFlow:87.9k stars 的开源 RAG+Agent 引擎,把 "深文档理解" 做成生产级底座

一个每天都遇到的问题:扔给 LLM 的 PDF,为什么” 喂不进去”?

如果你做过企业知识库、客服机器人或者法务 / 医疗问答,一定会反复撞到同一面墙:

  • 客户发来一个 200 页的产品手册 PDF,里面有正文、表格、图片、二维码、页眉页脚、章节标题、附录…… 你塞给 GPT,” 请总结一下第 3 章的退货政策”。模型要么答得含混,要么一本正经地胡说。
  • 财务让 AI “从这堆扫描件里找出所有超过 50 万的付款凭证”。OCR 文本明明抽出来了,但表格行列一乱,模型就把” 借方” 当” 贷方” 读了。
  • 法务让 AI “对比新旧两版合同第 7 条的差异”。两份都是 Word 转 PDF,章节序号还不一样,模型给的对比表跟原文对不上。

这些都是典型的” 非结构化数据 + 复杂版式” 场景。传统做法是先 OCR、再切块、再向量化、最后丢给 LLM。但问题就出在” 切块”—— 把整段 PDF 文本按固定长度一刀切,等于把一份有结构、有上下文、有图注的法律合同当成一篇散文去检索,模型当然找不到”needle in haystack”。

我们今天要聊的项目,就是冲着这个” 切块不智能” 的核心痛点来的:RAGFlow

项目背景:RAG 2.0 的开源答案

项目名称:RAGFlow
GitHub 地址github.com/infiniflow/ragflow
一句话简介:领先的开源 RAG 引擎,把” 深度文档理解” 和”Agent 能力” 融合在一起,为 LLM 提供可生产的上下文层。
当前数据:87.9k+ stars,当日新增 465 stars,Go + TypeScript 实现,长期保持高活跃度。

RAGFlow 由 infiniflow 团队开源,定位是”Enterprise-ready RAG engine”。它不只是又一个 LangChain wrapper 或者向量数据库 UI,而是一套端到端的 RAG 工作流

  1. 文档解析:支持 PDF、Word、Excel、PPT、图片、扫描件、网页等十几种格式;
  2. 智能切片:基于 ** 模板(Template-based chunking)** 和深度文档理解,按版式结构切分,保留标题、表格、图注的语义;
  3. 检索层:内置可配置的全文检索 + 向量检索混合;
  4. 答案生成:所有回答都带来源引用(citation),点一下能跳回原文段落;
  5. Agent 层:内置工作流(Workflow)和 Agentic 双模式,可画布编排多步骤任务。

和市面上常见 RAG 工具相比,RAGFlow 的差异化是 “Quality in, quality out”—— 它把” 文档解析质量” 当成一等公民,而不是只关心向量检索效果。

核心功能:五个真正能用的亮点

1. 基于深度文档理解的非结构化数据抽取

这是 RAGFlow 的看家本领。普通 RAG 用的是 PyPDF 抽文本,对扫描件、表格、双栏排版无能为力。RAGFlow 内置了 OCR + 版式分析(layout analysis)模型,能识别:

  • 文本块、表格、图、公式、页眉页脚;
  • 阅读顺序(多栏、跨页表格、图片环绕);
  • 章节标题层级(一级标题、二级标题、列表项)。

换句话说,丢给它一份带图表的研究报告,它能告诉你” 第 5 页那张柱状图说的是 2024 Q3 营收下降 12%”,而不是干巴巴一段被切碎的字符串。

2. Template-based chunking(模板化切片)

这是 RAGFlow 最被低估的特性。你可以为同一类文档(合同、发票、论文、API 文档)定义一个切片模板,告诉 RAGFlow:” 合同时按’条款 - 子条款’切”、”API 文档按’接口 - 参数 - 返回’切”。

好处是:

  • 检索时召回的片段天然是” 语义完整” 的,不会出现” 半句话” 作为答案依据;
  • LLM 看到的上下文是结构化的,可以基于结构做 reasoning(比如” 对比两份合同的’违约责任’章节”)。

对比传统 fixed-length chunking,模板切片在专业领域的准确率提升非常明显。

3. 可信引用(Citation-backed answers)

RAGFlow 强制要求每条答案附带引用来源,包括文档名、页码、原文片段。这对生产环境至关重要:

  • 合规场景下用户可以” 一键核查”AI 的回答是否真的来自原始资料;
  • 减少 hallucination,因为答案生成时 RAGFlow 会把引用片段作为强约束;
  • 支持” 可解释 AI”—— 可以把引用图谱可视化出来,回答问题的推理链路一目了然。

4. 混合检索(全文 + 向量)+ 灵活配置

RAGFlow 默认走 hybrid search(BM25 全文 + 向量相似度),支持:

  • 多种 rerank 模型(bge-reranker、Cohere、BGE 等);
  • 多种 embedding 模型(bge-large-zh、bge-m3、text-embedding-3 等);
  • Elasticsearch / Infinity 作为底层存储后端,开箱即用;
  • 可配置的权重、top-k、过滤器。

对中文场景特别友好,自带中文 tokenizer 和中文 embedding 选项。

5. Agent + Workflow 双模式编排

2026 年的 RAG 已经不够” 问答”,得能” 干活”。RAGFlow 内置:

  • Workflow 模式:画布式编排,适合做固定流程(” 先检索 → 再总结 → 再翻译 → 再写入飞书”);
  • Agentic 模式:让 LLM 自己决定调用哪个工具 / 检索哪个数据集,适合开放式任务;
  • 预置 Agent 模板:Deep Research、报表分析、客服助理等可直接复用;
  • 代码执行 + 多模态检索:Agent 可以写代码、处理图片、调用外部 API。

这让它从” 问答系统” 升级成了”AI 员工”—— 你可以让它自动读完 50 篇行业研报,输出一份带引用的竞争分析。

实战示例:5 分钟搭一个” 产品手册问答机器人”

下面是 RAGFlow 的最小启动流程,假设你要做一个内部” 产品手册问答机器人”。

步骤 1:拉取镜像并启动

RAGFlow 官方推荐 Docker Compose 一键启动:

1
2
3
4
5
6
# 克隆仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow

# 启动(需要 Docker + 至少 4GB 内存)
docker compose -f docker/docker-compose.yml up -d

启动后访问 http://localhost:9380,第一次会让你注册管理员账号。

步骤 2:配置模型供应商

进入 Settings → Model Providers,填上你的 LLM API(OpenAI、DeepSeek、通义千问、月之暗面都支持)。建议同时配:

  • Chat 模型:用于回答生成(推荐 GPT-4o、DeepSeek-V3);
  • Embedding 模型:用于向量化(中文推荐 bge-large-zh-v1.5bge-m3);
  • Rerank 模型:用于精排(可选,但能显著提升效果)。

步骤 3:创建知识库并上传文档

1
2
3
4
Knowledge Base → Create → 名称: "产品手册"
└─ Chunk method: Table (推荐结构化文档)
└─ Embedding model: bge-m3
└─ Parser: 自带 OCR(处理扫描件)

上传 PDF/Word/Excel 即可,RAGFlow 会自动:

  1. 解析版式(识别标题、表格、图片);
  2. 按模板切片(按章节切,或按 N tokens 切,二选一);
  3. 调用 embedding 模型向量化;
  4. 写入 Elasticsearch / Infinity。

完成后它会告诉你切成了多少个 chunk,覆盖了哪些页。

步骤 4:开一个 Agent 对话

进入 Agent → New Agent,选择 “Chat Agent”:

1
2
3
4
5
6
7
System Prompt:
你是一名产品手册助手,回答时必须引用原文,给出文档名 + 页码 + 原文片段。
如果用户问题不在手册里,明确说"手册中未提及"。

Tools:
- knowledge_base_search(产品手册, top_k=5)
- web_search (可选,用于补充外部信息)

保存后即可在前端问:” 手册第几页提到过保修期?”——RAGFlow 会把答案和原文高亮一起返回。

步骤 5(可选):用 API 集成到业务系统

RAGFlow 提供 REST API:

1
2
3
4
5
6
7
8
9
# 对话接口
curl -X POST http://localhost:9380/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "your-agent-id",
"messages": [{"role":"user","content":"手册第几页提到过保修期?"}],
"stream": true
}'

返回的 JSON 里每条答案都带 reference 字段(chunk_id、文档名、页码、原文),前端可以直接渲染成” 带引用的回答卡片”。

适用场景与限制

推荐场景

  • 企业知识库:产品手册、规章制度、SOP、行业规范;
  • 法务 / 合规:合同对比、法规检索、条款审查;
  • 金融 / 医疗:研报分析、扫描件抽取、结构化数据查询;
  • 客服:把历史工单 + 文档 + FAQ 一起灌进去,做可信回答;
  • 研究助手:学术论文、技术文档的深度检索 + 总结。

当前限制

  • 硬件要求不低:默认需要至少 4GB 内存 + GPU 可选(OCR 模型吃显存);
  • 学习曲线:相比纯向量数据库(如 Chroma),RAGFlow 的概念更多(chunk template、agent、parser),上手需要 1-2 天;
  • 文档量大时解析慢:1000+ PDF 初次入库需要排队,适合离线批处理;
  • 英文效果 > 中文效果(虽然已经做了大量中文优化,但部分场景下仍有差距);
  • 生态相对封闭:RAGFlow 没有像 LangChain 那样庞大的 connector 生态,外部工具集成需要自己包装。

总结

RAGFlow 不是又一个” 向量数据库 + LangChain Wrapper”,而是一套为生产环境设计的 RAG 操作系统。它把” 文档理解” 和” 答案可信度” 当作一等公民,让企业真正能把非结构化数据变成 LLM 可消费的上下文层。

如果你的痛点是” 扔给 LLM 的文档喂不进去” 或者”AI 回答不可信”—— 而不是” 我想试试向量检索”——RAGFlow 几乎是你在 2026 年能找到的最完整的开源答案。

相比同类的 Dify、Haystack、Verba,RAGFlow 的差异化是:深度文档解析 + 模板切片 + 强制引用。这三件事 Dify 也做,但 Dify 的强项是 workflow 编排,文档理解是 RAGFlow 的核心壁垒。

未来值得关注的演进方向:

  • 多模态 Agent:文档里的图、表、视频片段也能成为检索对象;
  • 更轻量的部署:边缘设备 + 量化模型,让小团队也能跑;
  • 更深的 Workflow / Agent 融合:用一个画布同时编排 RAG 和 Agentic 任务。

有兴趣的话,下一篇我会拆解 RAGFlow 的 Deep Research 模板和它的多 Agent 协同机制,敬请期待。