乐于分享
好东西不私藏

Claude Code 是怎么读取 PDF 的?

Claude Code 是怎么读取 PDF 的?

前一篇我们讲了 Codex 是怎么读取 PDF 的。接下来把另一个问题补上:Claude Code 读 PDF 时,走的是什么流程?

这次答案看起来简单一点。Claude Code 确实把 PDF 放进了内置的 Read 工具。短 PDF 可以整份读取;超过 10 页后,应通过 pages 指定页码范围,每次最多读 20 页。

但查到这里,最容易多走一步:有 Read,只说明 Claude Code 给 PDF 留了一个专门入口。内部怎么实现,以及最后读得准不准,是另外两个问题。

Anthropic 公开了 Claude Code 的分页行为,也公开了 Claude Platform 处理 PDF 时会同时分析每页文字和页面图像;它没有公开证明 Claude Code 的 Read 一定复用了这套后端,更没有公开内部 parser、OCR、页面分辨率和冲突处理规则。

下面把已知和未知分开说。

先把两层分开

Claude Code 是我们在终端或编辑器里使用的 Agent。给它一个文件路径后,它调用内置 Read 工具。官方公开的是工具参数、分页方式和文件限制。

Claude Platform API 是开发者上传 PDF 的服务接口。官方公开的是:完整视觉模式会处理每页文字,同时把每页作为图像交给模型。

两者最后都可能由 Claude 回答,但入口和公开合约不同。Platform 文档描述的能力,不能直接变成 Code 内部实现的证据。

Read 到底公开了什么

截至 2026 年 8 月 24 日,Claude Code 官方 Tools reference 写得很明确:短 PDF 可以整份读取;超过 10 页,应通过 pages 指定范围,例如 "1-5";一次最多读 20 页。

错误文档还给出了另一条限制:整份直接附加的 PDF 最多 100 页、20 MB。文件太大时,可以用 Read 分段,或者先用 pdftotext 抽出文字。

这两组数字不能混在一起。100 页、20 MB 是整份附件限制;20 页是一次 Read 的页码范围。一份 80 页报告可以分四次读完。

但是,“可以分四次”和“已经分四次”之间,还差四条真实调用记录。如果 Agent 只读了 1-20 页,随后就说读完整份报告,后面 60 页仍然没有覆盖。

要判断它有没有读完,直接看实际调用过哪些页码范围。一句“已阅读”不够。

内部用的什么解析器?不知道

我们没有在官方资料里找到这些信息:

  • PDF 在本地还是服务端解析;
  • 使用哪一个 PDF parser;
  • 扫描页是否调用独立 OCR;
  • 页面以什么分辨率转成图像;
  • 抽取文字与页面显示冲突时相信哪一个;
  • 是否有逐页完整性检查和失败重试。

我们能确认到这里:Claude Code 原生支持 PDF。至于“它内部使用某个解析库和 OCR,因此能保证准确”,目前没有公开证据。

Platform 为什么同时看文字和页面

Claude Platform 的 PDF support 文档说得更具体:完整视觉模式会提取 PDF 文字,同时把每一页作为图像交给 Claude。

文字适合查找人名、段落和精确字符;页面图像保留表格位置、图表、扫描内容和版面。

双栏论文的文字顺序如果抽乱了,页面图像能帮助模型看回布局。图片里的表格字号太小,文字层又可能补上更清楚的字符。

这也谈不上“双保险”。错误的文字层和模糊的页面图像可能同时误导模型。Platform 给了模型什么可以确认,Claude Code 的 Read 是否采用同样封装,仍然未知。

有页码引用,就能证明读对了吗

Claude API 可以启用 citations。回答会带上引用文字和 PDF 页码,方便人回到原文核对。

它让答案更容易回到原文核对。正确率还要另查。

当前 PDF citations 只支持文字引用,不能直接引用 PDF 中的图像。模型解释一张图表时,即使给了页码,也不能证明它看对了曲线、颜色和刻度。

引用位置只是第一关。还要继续看:原文真的支持这个结论吗?附近有没有被漏掉的限定条件?

而且 citations 是 API 功能,不能写成 Claude Code 的 Read 默认就会返回同样的引用。

怎样判断它有没有读完整、读准确

我们没有查到一个“准确性保证”开关。真正有用的是让阅读过程留下证据:

  • 先报告 PDF 总页数;
  • 超过 10 页时,列出每次读取的页码区间;
  • 重要结论附页码和短证据;
  • 单独列出未读页、看不清的小字、图表和冲突;
  • 没有证据时回答“无法确认”,不要补出一个完整故事。

合同、财务数字等高风险内容,还要增加外部核验。用 pdfinfo 对总页数,用 pdftotext 或 pdfplumber 对文字,把关键页渲染成图片并放大,扫描件再补 OCR。

比如表格里写着 -3.8%。文字抽取可能漏掉负号,OCR 可能认错小数点,页面图片又可能因为字号太小而看不清。同一个问题多问模型一次没有帮助;要核对的是主体、日期、正负号、小数点、单位和脚注。

官方也没有承诺“完美准确”

Anthropic 的 Vision 文档明确提醒:低质量、旋转、很小的图像可能被误判;空间位置和大量小对象的计数并不精确;高风险任务需要仔细检查,也不应在无人监督时用于要求完美精度的场景。

“支持 PDF”说的是输入能力。要证明它读对了,还需要具体文件、具体问题、预先确定的标准答案和评分规则。

目前 Anthropic 没有给出一个可以套在所有 Claude Code 场景上的 PDF 准确率,也没有公开统一评分公式或通过线。

这次还有哪些事没查清

我们仍然不知道,Claude Code 的 Read 最终把什么内容块发给模型;文字、页面和 OCR 冲突时如何取舍;内置 Read、API PDF 与外部工具链,在真实文件上分别会错在哪里。

我们原本准备让 Claude Code 跑同一组受控样本,但测试时 OAuth 会话已经过期,所以本轮没有 Claude Code 分数。这里宁可留空,也不拿 Codex 的结果代替,更不会用一次小样本做产品排名。

下一步会换成公开的真实 PDF,先冻结标准答案和评分规则,再比较不同读取路径。到时应该公布的不只是平均分,还包括具体错题、证据页和失败原因。

这篇先把已经查清的部分分享出来。没有查清的,继续查。


资料来源

  • Claude Code Tools reference:https://code.claude.com/docs/en/tools-reference
  • Claude Code Error reference:https://code.claude.com/docs/en/errors
  • Claude Platform PDF support:https://platform.claude.com/docs/en/build-with-claude/pdf-support
  • Claude Platform Citations:https://platform.claude.com/docs/en/build-with-claude/citations
  • Claude Platform Vision limitations:https://platform.claude.com/docs/en/build-with-claude/vision