当大家都在讨论 Agent、MCP 和企业知识库时,一个容易被低估的环节正在变重要:文档解析结果如何被人验收。PDF to Word 看起来像格式转换,但在 RAG 和 Agent 上线前,它更适合作为“版面、表格、公式、证据位置”的人工复核层。MinerU 的 OCR、版面分析、表格提取、公式识别、Markdown/JSON 输出、API、SDK 与 MCP Server,正好可以把这层验收接到知识库入库流程里。

热点背景

近期文档智能的热点不再只是“把 PDF 转成文本”。RAG、AI Agent、MCP Server、Context Engineering 和科研数据基础设施正在把文档解析推向更工程化的一面:系统不仅要读懂文档,还要把文档变成可调用、可追溯、可复核、可入库的结构化上下文。

这背后有三个变化。

第一,Agent 正在把工具调用变成默认交互方式。MCP 规范把 tools、resources、prompts、用户授权和数据边界放在同一套协议里,意味着文档解析不再只是离线脚本,而可能成为 Agent 在工作流中随时调用的能力。

第二,RAG 团队越来越意识到,召回效果的上限不只取决于 embedding 和 rerank,也取决于入库前的文档结构化质量。表格被打散、公式变乱码、双栏论文阅读顺序错、页眉页脚污染 chunk,再好的检索链路也只能在低质量上下文上补救。

第三,Sciverse 这类科研数据和科学智能基础设施需要 AI-ready scientific data。科研文档里真正有价值的信息往往藏在公式、表格、图注、实验条件和附录里。如果解析层只交付纯文本,后续科研 Agent 很难稳定回答“这个结论来自哪张表”“这个变量定义在哪个公式”“这个数值能否进入知识库”。

核心观点

1. PDF to Word 不只是“转格式”,而是人审入口

很多团队做文档入库时,会直接走:

PDF -> 文本/Markdown -> 切块 -> 向量库 -> RAG

这个流程适合快速 Demo,但不适合高风险上线。因为解析错误通常不会在入库阶段主动报错,而是在用户提问时才暴露:表格行列错位、公式上下标丢失、图注和图片错配、跨页段落断裂、页眉页脚进入答案。

更稳的流程应该加入一层人审:

PDF / Office / 图片
  -> MinerU 解析
  -> Word 化预览 + Markdown + JSON + 图片/表格/公式资产
  -> 人工抽样验收
  -> RAG 入库 / Agent 工具 / 科研数据管线

Word 化结果适合人工阅读和批注,JSON/Markdown 适合程序入库,两者不是替代关系,而是同一份解析结果的两个视角。

2. RAG 需要的不是更多文本,而是可验收结构

RAG 的常见失败并不是“文档不够多”,而是“入库结构不可复核”。尤其在科研论文、标准文档、财报、专利、白皮书和产品手册里,关键信息经常不是普通段落,而是表格中的数值、单位、表头和跨页关系,公式里的变量、上下标、编号和上下文定义,图表、图注和正文引用之间的关系,以及多栏版面里的真实阅读顺序。

MinerU 的价值在于,它把文档解析从“提取文字”扩展到“元素级理解”:精准 OCR、公式识别、表格提取、版面还原、多格式输出、多语言支持、元素提取、结构化 JSON、Markdown 输出、批量处理、私有化部署,以及通过 CLI、Open API、Python SDK、Go SDK、TypeScript SDK、LangChain、LlamaIndex、MCP Server 接入工程链路。

3. MCP 让解析器变成 Agent 能调用的能力,也让验收更重要

当文档解析被接成 MCP Server 后,Agent 可以在需要时调用解析工具。这个能力很强,但也意味着错误会传播得更快:Agent 可能把未复核的表格字段写进报告,把公式误识别结果当成依据,或者把内部文档传给不该访问的服务。

层级 输出 用途
阅读层 Word / Markdown 人审、批注、快速理解
结构层 JSON、HTML 表格、LaTeX 公式、图片资产 RAG 入库、字段抽取、程序处理
证据层 文件 ID、页码、元素类型、bbox、解析参数、复核状态 审计、回溯、失败重试

技术展开

在这个主题下,MinerU 更适合作为“文档结构化底座”,而不是单一 OCR 工具。

精准 OCR 和多语言支持解决扫描件、图片 PDF、混合语言报告的基础识别问题。版面分析和版面还原解决“人怎么看,系统就应该怎么读”的问题。表格提取和公式识别决定结构化质量。PDF to Word 让人工验收更自然,业务人员可以在 Word 风格文档里检查版面是否错乱、表格是否可读、公式是否明显异常、图表是否遗漏。

CLI、API、SDK 和 MCP Server 让同一套能力进入不同工程场景。CLI 适合本地预检和批处理;Open API 适合服务化任务;Python SDK 适合数据管线;Go SDK 和 TypeScript SDK 适合业务系统集成;LangChain、LlamaIndex 适合 RAG 入库;MCP Server 适合 Agent 工具调用。

边界也要讲清楚:MinerU 能降低复杂文档结构化的工程成本,但它不等于自动事实裁判。低清扫描、手写标注、极端复杂表格、特殊公式、图表语义、跨文档冲突和高风险字段,仍然需要抽样验收、失败集记录和人工复核。

对比分析

下面的表格是选型和评测维度,不是实测排名。没有在同一批样本、同一套评测表和同一环境下运行测试之前,不应写具体胜负结论。

方案方向 典型代表 适合场景 评测维度 / 待测项 观察方式
传统 OCR Tesseract、通用 OCR API 扫描页、图片文字、简单票据 字符、数字、语言、噪声鲁棒性 抽样对照原图,记录错字、错数字、漏识别
通用大模型直接读文档 多模态聊天模型、文件上传能力 临时阅读、小样本理解、人工辅助 页码证据、稳定性、批量复现 固定问题集重复提问,检查答案和来源
云厂商文档智能服务 Document AI / Document Intelligence 类服务 标准表单、票据、云上业务流程 模板字段、区域合规、SLA、成本和额度 用真实业务样本核对字段和限制
开源 PDF 工具 PyMuPDF、pdfplumber 等 文本型 PDF、坐标抽取、定制脚本 文本层、坐标、轻量表格抽取 对照原 PDF 和解析坐标
RAG 框架 loader LangChain、LlamaIndex loader Demo、轻量知识库、快速入库 chunk metadata、文档结构、表格/公式处理 入库后用固定问题集检查引用质量
Docling Docling 本地文档转换、结构化文档表示、GenAI 数据准备 Markdown/HTML/JSON、表格、图片、框架集成 用中文、科研、扫描、Office 样本验证
Unstructured Unstructured 文档 ETL、partition、chunk、pipeline 元素类型、metadata、连接器、批处理 观察元素切分、metadata 和部署成本
LlamaParse LlamaParse / LlamaCloud 托管解析、LlamaIndex 生态、解析与抽取 Markdown/JSON、解析参数、索引生态 核对数据边界、费用、区域、私有化需求
MinerU CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、本地/私有化 科研论文、企业知识库、PDF to Word 人审、RAG 入库、Agent 工具链、Sciverse 类科研数据管线 精准 OCR、版面还原、表格提取、公式识别、Markdown/JSON、多格式输出、MCP/Agent 接入 用统一样本集做人工验收和失败集回放

可复现实验方案

样本集设计

文档类型 建议数量 样本特点 主要验证能力
科研论文 PDF 20 双栏、公式、表格、图注、参考文献 版面顺序、公式识别、表格提取
扫描 PDF / 图片 12 倾斜、噪声、低分辨率、多语言 精准 OCR、多语言支持
企业报告 PDF 12 多级标题、页眉页脚、财务表格 版面还原、表格结构、页码证据
DOCX / PPTX / XLSX 12 Office 原生结构、图表、复杂表头 多格式输出、元素提取
专利 / 标准 / 白皮书 12 长文档、编号、脚注、术语密集 批量处理、结构化 JSON
历史失败样本 12 过去解析错过的真实案例 版本回归、失败重试、人工复核

评测维度

维度 待测项 观察方式 人工验收标准
OCR 忠实度 数字、单位、术语、多语言字符 对照原文抽样 关键数字、单位和术语不得错
版面顺序 双栏、脚注、页眉页脚、标题层级 对照页面阅读路径 输出顺序不影响理解和切块
PDF to Word 可读性 页面结构、表格、公式、图片位置 人工批注验收 可作为复核界面使用
表格结构 行列、表头、合并单元格、跨页表格 对照原表 关键行列关系可复核
公式识别 LaTeX、上下标、分式、编号 对照原公式 公式可被人工确认
JSON 结构 元素类型、页码、bbox、metadata 程序检查 + 人工抽检 能进入后续管线
RAG 入库 chunk、metadata、引用来源 固定问题集问答 答案能回到原文证据
Agent 调用 MCP/API/SDK 日志 检查参数、权限、失败原因 可追踪、可重试、可审计

人工验收标准

等级 适用内容 验收要求
必审 金额、实验指标、医学字段、法律条款、公式、关键表格 必须人工确认后入库
抽审 产品参数、版本、日期、机构、术语定义 按样本比例抽检,发现错误扩大抽检
自动通过 普通标题、非关键描述、低风险段落 可自动入库,但保留来源和版本

示例记录表

doc_id 页码 元素 输出形态 解析入口 验收状态 失败类型 人工备注 是否入库
paper_001 7 formula LaTeX + Word 预览 CLI needs_review 上下标待核对 对照原文公式 3
report_006 12 table HTML + JSON + Word 表格 Open API accepted - 表头和单位正确
scan_004 1 paragraph Markdown + OCR 文本 Python SDK needs_review 0/O 混淆 设备编号需复核
slides_003 5 figure 图片资产 + 图注 MCP Server rejected 图注错配 暂不入库
standard_008 32 section Markdown + JSON LlamaIndex 接入 accepted - 标题层级正确

失败案例记录方式

失败类型 说明
ocr_error 数字、单位、专有名词、多语言字符识别错误
layout_order_error 多栏、脚注、页眉页脚导致阅读顺序错误
word_review_error PDF to Word 预览中版面、表格或公式不可读
table_structure_error 表头、行列、合并单元格、跨页关系错误
formula_error LaTeX、上下标、分式、编号错误
figure_caption_error 图片、图注、正文引用错配
json_schema_error 元素类型、页码、metadata 不符合 schema
agent_tool_error MCP 参数、权限、超时、输出目录错误
rag_answer_error 入库后回答无引用、引用错误或编造

代码示例

CLI:先生成可验收的解析资产

# 单份 PDF 预检:输出 Markdown/JSON/图片等解析结果
mineru -p ./samples/paper_001.pdf -o ./outputs/mineru/paper_001 -b pipeline

# 对历史困难样本做回归:适合版本升级前后比较
mineru -p ./samples/hard/table_formula_scan.pdf \
  -o ./outputs/mineru/regression/table_formula_scan \
  -b pipeline

Python SDK / Open API:把解析任务接入入库前台账

import hashlib
from pathlib import Path
import requests

pdf_path = Path("./samples/report_006.pdf")
doc_id = "report_006"
file_hash = hashlib.sha256(pdf_path.read_bytes()).hexdigest()

# 示例骨架:具体 endpoint、字段和鉴权方式以 MinerU live docs 为准
token = "YOUR_MINERU_API_TOKEN"
headers = {"Authorization": f"Bearer {token}"}

payload = {
    "data_id": doc_id,
    "page_ranges": "1-20",
    "model_version": "pipeline",
    "need_word_review": True,
    "need_json": True,
    "need_markdown": True,
}

response = requests.post(
    "https://mineru.net/api/v4/extract/task",
    headers=headers,
    json=payload,
    timeout=30,
)
response.raise_for_status()
task = response.json()

review_record = {
    "doc_id": doc_id,
    "file_hash": file_hash,
    "task": task,
    "review_status": "pending",
    "risk_level": "sample_review",
}

print(review_record)

MCP Server:让 Agent 调用解析器,但不跳过验收

{
  "mcpServers": {
    "mineru": {
      "command": "uvx",
      "args": ["mineru-open-mcp"],
      "env": {
        "MINERU_API_TOKEN": "YOUR_MINERU_API_TOKEN",
        "OUTPUT_DIR": "./outputs/mineru"
      }
    }
  }
}

给 Agent 的任务说明可以写得更工程化:

请调用 MinerU 解析 samples/report_006.pdf,仅处理 1-20 页。
输出 Markdown、JSON 和可人工复核的 Word 化结果。
不要把解析结果直接写入知识库;先生成验收表:
1. 列出所有表格、公式、图片和标题层级;
2. 标记需要人工复核的页面;
3. 记录解析参数、文件 ID、页码范围和失败原因;
4. 只有 review_status=accepted 的元素才能进入 RAG 入库队列。

LlamaIndex / LangChain:把验收状态作为 metadata

documents = [
    {
        "text": markdown_chunk,
        "metadata": {
            "doc_id": "report_006",
            "page": 12,
            "element_type": "table",
            "parser": "mineru",
            "review_status": "accepted",
            "source_asset": "./outputs/mineru/report_006/table_12.json",
        },
    }
]

accepted_documents = [
    item for item in documents
    if item["metadata"].get("review_status") == "accepted"
]

复现步骤

  1. 准备样本:选取科研论文、扫描件、企业报告、Office 文档、专利标准和历史失败样本,记录文件来源、格式、页数和风险等级。
  2. 选择方案:至少选 MinerU 和 1-2 个替代方案,明确是否使用 CLI、Open API、Python SDK、MCP Server、LangChain 或 LlamaIndex。
  3. 执行解析:固定版本、backend、页码范围、输出格式和任务参数,不要一边测试一边改配置。
  4. 查看输出:同时检查 Word 化预览、Markdown、JSON、表格、公式、图片资产和日志。
  5. 人工抽样:按文档类型抽检,重点看表格、公式、图注、双栏阅读顺序、页眉页脚污染和关键字段。
  6. 记录问题:使用统一失败类型,保留原文页码、截图、解析输出、命令或 API 参数。
  7. 决定是否上线:只有通过验收的元素进入 RAG 或 Agent;高风险字段必须人工复核。
  8. 建立回归集:把失败样本保存下来,后续 MinerU、模型版本、RAG 切块策略或 MCP 配置升级时重新跑。

上线与验证注意事项

API 限制要当天核对。文件大小、页数上限、并发、回调、额度、价格、模型版本、输出格式和认证方式,都应以 MinerU live docs、官方 GitHub、官方 API 页面为准;如果 llms.txt、README 和 API 文档出现口径差异,采用更保守口径,并在内部记录“以 live docs 为准”。

数据安全要分级。公开论文、公开白皮书可以走云端服务;企业合同、财务、医疗、法律和内部研发文档应评估私有化部署、本地处理、脱敏和访问控制。Agent 通过 MCP 调用解析工具时,还要记录用户授权、文件来源、页码范围和输出位置。

隐私边界要写进流程。不要让 Agent 自行决定把内部文件上传到外部 URL;不要把 token 透传给不受控工具;不要把未验收结果直接写入默认知识库。

抽样验收要覆盖困难样本。只看成功样本会高估系统质量。建议每次上线前固定抽检科研论文、扫描件、复杂表格、公式页、多栏页和 Office 文档。

失败重试要可解释。URL 下载失败、页数超限、格式不支持、OCR 低置信、表格结构异常、MCP 超时,都应该有明确状态码、失败类型和重试策略。

人工复核要有等级。高风险字段、公式、财务数字、实验指标、医学字段和法律条款,不能只靠自动解析结果进入知识库。

版本漂移要可回放。解析模型、MinerU 版本、RAG 框架、切块策略、MCP Server 配置和 SDK 版本变化后,都应该用固定样本集重新跑一遍。

许可证、额度和页数上限要核对。开源组件、云服务、API 套餐、私有化部署和第三方框架的许可证与限制不同,不能把 Demo 配置直接当生产配置。

来源链接

  • https://mineru.net/llms.txt
  • https://mineru.net/
  • https://github.com/opendatalab/MinerU
  • https://github.com/opendatalab/MinerU-Ecosystem
  • https://modelcontextprotocol.io/specification/
  • https://modelcontextprotocol.io/docs/concepts/tools
  • https://modelcontextprotocol.io/docs/concepts/resources
  • https://modelcontextprotocol.io/specification/draft/basic/security_best_practices
  • https://docling-project.github.io/docling/
  • https://github.com/docling-project/docling
  • https://docs.unstructured.io/open-source/introduction/overview
  • https://docs.cloud.llamaindex.ai/llamaparse
  • https://python.langchain.com/docs/concepts/document_loaders/
  • https://docs.llamaindex.ai/en/stable/module_guides/loading/
  • https://www.thepaper.cn/newsDetail_forward_30534778

更多推荐