开源精选 RAGFlowRAG文档理解Agent知识库
云
云铭
进化之路 · 扫码阅读
微信 · 浏览器扫码
在手机上获得更好的阅读体验
RAGFlow深度解析:领先开源RAG引擎的Agent化之路
大多数RAG系统只能”找到相关段落然后喂给LLM”。RAGFlow说:“让我们真正理解文档——表格、图表、结构、层次——然后让Agent基于真正的理解来回答问题。“
项目速览
| 维度 | 详情 |
|---|---|
| GitHub | infiniflow/ragflow |
| Stars | ~82K |
| 语言 | Python |
| 许可证 | Apache 2.0 |
| 定位 | 深度文档理解的RAG引擎 + Agent平台 |
为什么需要”深度文档理解”
普通RAG vs RAGFlow
普通RAG Pipeline:
PDF → 提取文本 → 切块 → 向量化 → 关键词搜索 → 喂给LLM
问题:表格变乱码、图丢失、文档结构丢失
RAGFlow Pipeline:
PDF → 版面分析 → 表格结构识别 → 图表理解 → 语义分块
↓ ↓ ↓ ↓
保留阅读顺序 保留行列关系 生成图描述 基于语义而非字数
↓
多模态Chunk → DeepDoc理解 → 混合索引 → Agent推理
RAGFlow能处理的文档
支持格式:
├── PDF(含扫描件OCR)
├── Word / Excel / PPT
├── Markdown / HTML
├── 图片(含表格和图表识别)
├── 网页
└── CSV / JSON 数据文件
特色能力:
├── 表格结构保留(不是读成纯文本)
├── 图表理解(自动生成图表描述)
├── 版面分析(多栏、图文混排)
├── 手写体OCR
└── 公式识别(LaTeX)
核心架构
DeepDoc引擎
文档进入
↓
版面分析(Layout Detection)
├── 识别段落、标题、表格、图片、公式区域
└── 建立阅读顺序
↓
表格结构识别(Table Structure Recognition)
├── 识别行列结构
├── 有合并单元格的复杂表格
└── 输出结构化JSON(非纯文本)
↓
内容提取
├── 文字 → OCR/提取
├── 图片 → 多模态理解(生成描述文本)
├── 公式 → LaTeX转换
└── 表格 → 结构化数据
↓
智能分块(Semantic Chunking)
├── 基于语义边界而非固定字数
├── 保持表格完整性
├── 保留上下文重叠
└── 生成Chunk摘要
↓
多向量索引
├── 全文向量(用于语义搜索)
├── 关键词索引(用于精确匹配)
├── 表格索引(独立的结构化查询通道)
└── 知识图谱索引(实体关系)
混合检索
# RAGFlow的检索是多种模式的组合
class HybridRetrieval:
def retrieve(self, query, top_k=10):
# 1. 语义向量检索
semantic_results = self.vector_search(query, top_k)
# 2. 关键词精确匹配(BM25)
keyword_results = self.keyword_search(query, top_k)
# 3. 表格查询(如果问题涉及表格)
if self.is_table_query(query):
table_results = self.table_search(query, top_k)
# 4. 知识图谱检索(实体关系)
if self.has_entity(query):
kg_results = self.knowledge_graph_search(query, top_k)
# 5. RRF(倒数排名融合)合并
final_results = self.reciprocal_rank_fusion([
semantic_results,
keyword_results,
table_results,
kg_results
])
# 6. 重排序
reranked = self.reranker.rerank(query, final_results)
return reranked[:top_k]
Agent能力
2026年RAGFlow的Agent化演进
RAGFlow不再只是”搜索+回答”,而是演进为Agent驱动的知识工作平台:
# RAGFlow Agent = DeepDoc检索 + 多步推理 + 工具调用
from ragflow import RAGFlowAgent
agent = RAGFlowAgent(
knowledge_base="企业合规文档库",
tools=[
"deep_doc_search", # 深度文档检索
"cross_document_compare", # 跨文档对比
"table_query", # 结构化表格查询
"timeline_extract", # 时间线提取
"citation_generator", # 引文生成
]
)
result = agent.query("""
对比2025年和2026年数据隐私法规的变化,
列出所有新增的合规要求,按行业分类。
每种要求标注法规来源(章节号)。
""")
多知识库联邦查询
# Agent可以同时查询多个知识库并交叉验证
agent = RAGFlowAgent(
knowledge_bases=[
"内部产品文档",
"行业标准库",
"竞品公开文档"
]
)
result = agent.query("""
我们的产品在数据加密方案上与行业标准的差距?
参考竞品做法,给出改进建议。
""")
# Agent自动:
# 1. 从内部文档提取当前加密方案
# 2. 从行业标准库提取合规要求
# 3. 从竞品文档提取行业做法
# 4. 交叉对比
# 5. 生成差距分析和建议
部署
Docker Compose
# 核心服务
services:
ragflow-server:
image: infiniflow/ragflow:latest
ports: ["9380:9380"]
depends_on:
- mysql
- es
- redis
- minio
mysql: # 元数据存储
es: # Elasticsearch(全文检索)
redis: # 缓存和消息队列
minio: # 对象存储(文档和向量)
资源规划
| 场景 | 文档量 | 推荐配置 | 月成本 |
|---|---|---|---|
| 个人/小团队 | <1万份 | 4C8G x1 | ~$50 |
| 中型企业 | 1-10万份 | 8C16G x2 + GPU | ~$500 |
| 大型企业 | >10万份 | 集群部署 | 咨询商务 |
RAGFlow vs 其他RAG方案
| 维度 | RAGFlow | Dify RAG | LlamaIndex | LangChain RAG |
|---|---|---|---|---|
| 文档理解深度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| 表格处理 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐ |
| 多模态 | ⭐⭐⭐⭐ | ⭐⭐ | ⭐ | ⭐ |
| Agent能力 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 可视化 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | ⭐ |
| 检索质量 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 学习曲线 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
最佳适用场景
✅ RAGFlow最适合:
├── 大量PDF/扫描件需要处理
├── 文档含复杂表格(财报、医疗报告)
├── 需要精确引用(法律、合规)
├── 多语言文档场景(中英文支持好)
└── 图表密集型文档(论文、研报)
RAGFlow的差异化定位很清晰——“真正理解文档,而不仅仅是搜索文档”。在表格理解、排版分析、多模态处理这些硬核能力上,它明显领先于通用Agent平台的RAG模块。如果你需要的是一个”能读懂复杂文档的AI”,而非一个”能聊天的知识库”,RAGFlow是最佳选择。