简介:文档是大模型应用最主要的知识来源,解析质量直接决定 RAG 与 Agent 的效果上限。本文从数据层视角拆解文档解析的核心能力要求,围绕双栏报告、扫描合同、图文手册三类真实业务文档开展实测与对照实验,厘清“多模态直读”与“先解析再理解”的适用边界,并给出选型指标、避坑清单与分层架构建议,助你把文档链路做对、做稳、可审计。
很多团队做 RAG / Agent 落地时,注意力都放在模型选型、提示词工程和编排框架上,却把“文档怎么进系统”当成装个依赖就能解决的小事。实际项目复盘时你会发现:检索效果差、Agent 答非所问、字段抽错,根因有相当一部分出在解析环节——分块把表格拦腰截断、双栏文档读串行、扫描件识别错误百出,下游模型再强,也只能在脏数据上“编”。
业内把这一层称为“面向大模型与 Agent 的文档智能基础设施”,翻译成大白话就是一句话:你丢给它一份复杂文档,它还你一份干净、一致、AI 可直接消费的结构化数据(通常是 Markdown 或带坐标的 JSON)。下游无论是接 RAG 知识库、Agent 工作流,还是训练数据清洗,都能直接使用。
在整体链路上,可以抽象成层层递进的三层:
当前主流的 Agent 编排平台与工作流引擎,普遍已把文档解析列为标准连接器。这从侧面说明:解析早已不是可选项,而是 Agent 数据供给链的第一道工序。
把“文档解析”拆开,本质是四个子问题:
一份理想的输出大致长这样(示意):
{"doc_id": "contract_001","pages": [{"page_no": 3,"blocks": [{"type": "paragraph","bbox": [88, 120, 520, 260],"text": "甲方应在合同签订之日起 30 日内完成首期付款……"},{"type": "table","bbox": [88, 300, 520, 480],"markdown": "| 期次 | 比例 | 金额(万元) |\n|---|---|---|\n| 首期 | 30% | 90 |\n| 尾款 | 70% | 210 |","cells": [{"row": 1, "col": 2, "bbox": [400, 335, 510, 360], "text": "90"}]}]}]}
有了坐标,才能实现“答案定位到第 3 页表格第 2 行”这种可信引用。
评测要公平,先固定变量:同一批文档、同一组人工校对的金标准、同一套下游模型与提示词,只更换解析链路。我选了三类最有代表性的业务文档,分别对应三种典型痛点。
场景一:双栏研究报告(含公式与跨页表格)
场景二:扫描版采购合同(含印章、手写签名、票据附件)
场景三:图文混排产品手册(含流程图与数据图表)
评估不要只算一个总分。示意代码如下:
def evaluate(parsed_md, golden_md, golden_fields):scores = {}# 1) 标题层级一致性:树结构编辑距离scores["heading"] = tree_edit_distance(headings(parsed_md), headings(golden_md))# 2) 表格单元格召回:错一个单元格可能就是错一笔钱pred, gold = cells(parsed_md), cells(golden_md)scores["cell_recall"] = len(pred & gold) / len(gold)# 3) 阅读顺序:抽样段落首句比对相对顺序scores["order"] = kendall_tau(first_sentences(parsed_md), first_sentences(golden_md))# 4) 关键字段准确率(合同/票据类)scores["field_acc"] = sum(f(k) == v for k, v in golden_fields.items()) / len(golden_fields)return scores
要特别强调:按信息价值加权看指标。表格 90% 召回听起来不错,但如果错的 10% 恰好是金额列,业务价值就是负的——这是解析评测与普通文本评测最大的不同。
同一批文档走两条链路:路径 A 用多模态大模型直读(整页渲染成图直接提问);路径 B 先解析成结构化文本,再交给文本模型或 RAG 检索回答。从准确率、幻觉率、Token 成本、时延、可溯源五个维度观察,可得出几条规律性结论:
据此可以整理成一张决策表:
| 判断条件 | 建议路径 |
|---|---|
| 单次交互、约三五页以内、版面简单 | 直读可用 |
| 文档将被多次查询或共享给多个 Agent | 先解析 |
| 存在跨页表格、多栏、扫描件 | 先解析 |
| 需要引用溯源、审计合规 | 先解析 |
| 交互式临时翻看 | 直读 |
更务实的架构是两者混合:解析做底座,直读做兜底——图表这类解析覆盖不了的元素,在检索命中后交给多模态模型对原图细看。
完整的落地链路可以概括为:
原始文档 → [解析层] Markdown/JSON + 坐标→ [处理层] 拆套分类 → 字段抽取 → 校验 → 人工复核→ [知识层] 向量化入库 → 检索服务 → 多 Agent 共享
工程化部署时,可依托云平台上的通用组件快速搭建:对象存储放原始件与解析产物,容器平台承载解析服务并弹性扩缩容,消息队列解耦解析与入库,向量数据库与检索服务支撑知识层,日志与监控服务观测解析成功率、字段准确率、检索命中率等全链路指标。以百度智能云为代表的一体化云平台提供了上述通用类目组件,可以显著降低自建与运维成本。
另一个值得关注的趋势是多 Agent 共享记忆库:过去每个 Agent 各挂一套知识库,同一份文档被重复解析、重复向量化,答案还不一致。把知识加工收敛到一条统一链路,让多个 Agent 消费同一份可追溯的知识,是当前企业级落地更合理的形态,也是“企业知识服务引擎”类方案兴起的行业背景。
上线前自查清单:
一句话总结:解析不是文档到知识的“格式转换器”,而是决定 Agent 知识上限的地基。地基打歪了,上面的模型再强,也是危楼。