Hermes 现在能读 PDF、Word、Excel、EPUB、RTF 文档了:一份实用指南


让 AI 读一份文档,听起来是件小事,做起来却常常很烦:PDF 要转文本、Word 要装解析库、老旧的 RTF 和 EPUB 几乎找不到现成工具。你的第一个念头往往是“先把内容复制粘贴进聊天框”——遇到几十页的报告、带格式的合同、上百行的报表,这条路立刻走不通。

Hermes Agent 刚刚把这件事变成了一个命令的事。read_file 这个最常用的工具,现在能直接读取 PDF、Word、Excel、EPUB、RTF 等十余种文档格式,并把它们转成干净的 Markdown 交给模型阅读。本文基于最新上游代码实测梳理:支持哪些格式、底层怎么工作、扫描件怎么办、以及每类文档的真实使用场景。

一句话总结

read_file 内置支持三种格式的自动提取:Jupyter 笔记本(.ipynb)、Word(.docx)、Excel(.xlsx)——不需要任何额外依赖。

在此基础上,Hermes 引入了可选依赖 firecrawl-anydoc(Rust 内核,导入名为 anydoc),把覆盖面扩展到 PDF、旧版 Office(.doc/.ppt/.xls)、OpenDocument(.odt/.ods/.odp)、RTF、EPUB,统一转换为 Markdown。安装后,读取这些格式与读取普通文本文件没有任何区别。

支持格式全景

类别 格式 提取方式
笔记本 .ipynb 内置(stdlib,无依赖)
Word .docx 内置(stdlib,无依赖)
Excel .xlsx 内置(stdlib,无依赖)
PDF .pdf anydoc(可选)
旧版 Office .doc .docm .ppt .pps .pot .pptx .pptm .ppsx .ppsm .xls .xlsm .xlsb anydoc(可选)
OpenDocument .odt .ods .odp anydoc(可选)
RTF .rtf anydoc(可选)
EPUB .epub anydoc(可选)

注意一个设计细节:内置提取器对 .docx/.xlsx 始终优先。即使安装了 anydoc,这两个格式仍走标准库路径,保证有没有 anydoc 行为完全一致。

怎么用:直接 read_file 就行

对用户来说没有任何新命令、新参数。给 read_file 一个文档路径即可:

read_file(path="/tmp/quarterly-report.pdf")

返回的内容是带行号的 Markdown 文本,和其他文件一样支持 offset/limit 分页、字符预算截断、敏感信息脱敏。超大文档会被截断到单次读取预算内,并提示你用 offset 继续读——和读普通大文件完全一致。

懒安装:读取时自动装,不会卡住

anydoc 不是硬依赖。它通过 lazy_deps 机制注册为 tool.doc_extractfirecrawl-anydoc==0.1.6),在第一次读取此类文件时才自动安装,且安装过程 prompt=False——read_file 永远不会因为等待确认而阻塞。

如果安装失败或文件损坏,anydoc 的 ConvertError 会被映射为 ExtractionErrorread_file 回退到普通的路径/二进制处理,而不是报错崩溃。加密文档、损坏的 PDF、空的 EPUB 都会走这条安全回退路径。

实测样例

以一份真实的 DOCX 合同为例,内置提取器解析 word/document.xml 中的段落与文本节点,输出:

  1|Quarterly report: revenue up 23%
  2|Second paragraph with contract terms.

表格、换行、制表符都会保留;XLSX 则按 Sheet 输出,隐藏工作表会被跳过:

  1|# ── Sheet: Q1 ──
  2|region	revenue	growth
  3|APAC	$12.4M	18%
  4|EMEA	$9.1M	12%

扫描件怎么办:OCR 路径

文本型 PDF 直接提取没问题,但扫描件(图片型 PDF)需要 OCR。这种情况下 read_file 的内置/anydoc 路径解不出文字,正确的做法是用 ocr-and-documents skill(随 Hermes 默认安装,v2.3.0)。

该 skill 提供两个本地提取器:

能力 pymupdf(轻量) marker-pdf(高质量)
文本型 PDF
扫描件 OCR ✅(90+ 语言)
表格 ✅(基础) ✅(高精度)
公式 / LaTeX
代码块 / 表单
阅读顺序检测
EPUB
安装体积 ~25MB ~3-5GB
速度 即时 ~1-14 秒/页(CPU)
pip install pymupdf pymupdf4llm
python scripts/extract_pymupdf.py scanned.pdf --markdown

URL 文档:web_extract 是首选

如果文档在网络上(arXiv 论文、公司报告、公开 PDF),先试 web_extract——它通过 Firecrawl 做 PDF 转 Markdown,不需要本地任何依赖:

web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

只有当文件在本地、web_extract 失败、或需要批量处理时,才走本地提取。三条路径的取舍非常清晰:URL 用 web_extract,本地文本文档用 read_file,扫描件/复杂排版用 ocr-and-documents

真实场景

场景一:审合同(Word / RTF)

contract.docx 或老旧的 contract.rtf 直接喂给 read_file,让模型提取关键条款、标注风险点、对比两版差异。RTF 是老企业内部最常见的历史格式,现在终于不用先手动转成 DOCX 了。

场景二:读报表(Excel)

read_file.xlsx 按 Sheet 输出为表格文本,模型可以直接计算合计、识别异常值、生成分析摘要。隐藏 Sheet 自动跳过,不会把内部工作区漏给模型。

场景三:批量分析 PDF

把一摞 PDF 报告路径列表交给 Hermes,让它逐份 read_file 并汇总。配合 execute_code 脚本遍历目录,几十份文档的摘要工作可以在一次会话里完成。

场景四:读电子书(EPUB)

EPUB 是标准电子书格式。把一本 .epub 交给 Hermes,可以总结章节、提取观点、整理书摘——anydoc 和 marker-pdf 都支持 EPUB。

场景五:科研论文

文本型论文直接 read_file;扫描版走 ocr-and-documents 的 marker-pdf;有 URL 则用 web_extract。三条路径覆盖了从 PDF 下载到精读的全流程。

升级与可用性

这个功能分为两层:

  • 内置三件套(.ipynb/.docx/.xlsx):自 2026 年 6 月起随 Hermes 提供,hermes update 到任意较新版本即可使用。
  • anydoc 扩展(PDF/旧版 Office/ODF/RTF/EPUB):由提交 b2598b41e(2026-08-05 合入 upstream main)引入,属于 v0.20.0 之后的最新能力,尚未随正式版本发布。通过 hermes update 拉到最新 main 后即可体验;安装 anydoc 后读取此类文件会自动触发懒安装。

小结

文件在哪里 用什么 依赖
本地,.ipynb/.docx/.xlsx read_file
本地,PDF/旧版 Office/ODF/RTF/EPUB read_file + anydoc 自动懒安装
本地,扫描件/复杂排版 ocr-and-documents skill pymupdf 或 marker-pdf
网络 URL web_extract

文档读取是 AI Agent 最基础也最容易被低估的能力。Hermes 把这条链路打通成“一个命令”,并且用懒安装把可选能力的门槛降到了零——下次遇到 PDF 合同、Excel 报表或 EPUB 电子书,直接读就好,不用再复制粘贴了。

想继续探索 Hermes 的文件与数据能力?可以看看我们的生产力技巧合集存储空间优化指南,或者通过安装指南把最新版 Hermes 跑起来。