现在,把 PDF 或项目里的文档交给桌面端 Agent,它们已经可以直接回答其中的问题。偶尔查看一两份文件,使用 Codex 或 Claude Code Desktop 自带的工具就够了。
但是,如果是一批 Word、PPT、Excel 和 EPUB,还要反复搜索、切块,或者交给不同的 Agent 使用,这些文件就可能要一次次重新解析。不同的工具保留下来的标题、表格、脚注和页面结构也很可能不一样。而 AnyDoc 则会先在本地把它们统一转成 Markdown。完成一次转换以后,生成的 Markdown 可以继续用于总结、搜索和知识库。项目还提供了一个 Agent Skill,Codex、Claude Code、Cursor 和 OpenCode 都能调用。
这个项目 8 月 3 日才公开,目前已经有 1.5 万 Star。
安装这个 Skill 后,Agent 实际会做什么
AnyDoc 的 Skill 文件很短。它主要告诉 Agent,遇到 DOCX、PPTX、XLSX、EPUB 或 PDF 时,可以运行下面这条命令。
npx -y @firecrawl/anydoc report.docx -o report.mdSkill 调用的是一套 Rust 解析库。Word、PPT、Excel、OpenDocument、RTF、EPUB、CSV 和文本型 PDF 会先进入同一个文档模型,再由同一套规则输出 Markdown。标题、列表、表格、脚注和 PPT 的演讲者备注,都可以继续保留下来。
除了通过 Skill 调用,AnyDoc 还提供了 Node.js、Python、Rust 和浏览器 WASM 等入口。普通用户可以直接打开官方 Demo,把文件拖进去转换。浏览器版本在本地运行,文件不会上传。

AnyDoc 官方浏览器 Demo,文件可以直接拖进页面,并在本地转换。
我拿五种文件跑了一遍
我从仓库里选了 DOCX、PPTX、XLSX、EPUB 和 PDF 各一份,通过 Skill 使用的 npx 命令进行转换。五份文件都成功生成了 Markdown。
官方给出的中位转换时间是 4.4 毫秒,而我这里是 2.3 到 5.8 秒。两组数据的统计范围不同。官方只计算 Rust 库处理文件的时间,我记录的是 Agent 调用 npx 命令后的整段等待,其中还包括 Node 和命令启动的开销。
如果开发者把 AnyDoc 库放进长期运行的服务里,毫秒级数据更有参考意义。通过 Skill 偶尔转换一份文件时,实际体验更接近几秒。这个速度仍然够用,只是不能把 README 里的 4.4 毫秒直接当成 Skill 的响应时间。
我还把 DOCX 的扩展名改成了 .bin,AnyDoc 依然识别出了真实格式,并顺利完成转换。收到扩展名写错的附件时,这项能力很实用。
我又试了一份扫描 PDF
这一次,AnyDoc 直接停止了转换,并明确提示这是一份没有可提取文字的扫描 PDF,需要先做 OCR。它处理 PDF 时调用的正是前几天介绍过的 pdf-inspector,所以两者的边界也一样,只能读取文本型 PDF。
其他格式也有需要留意的地方。当前版本可能丢失 Excel 的百分比和货币格式。项目 Issue 里有一个例子,表格中的 7.5% 被转换成了 0.075。遇到财务数据时,这种变化可能直接改变数值含义。
PPT 如果连续出现没有标题的页面,转换后的 Markdown 可能看不出页面边界。文档里的图片虽然能保留在内部数据模型中,Markdown 目前也无法在原位置完整引用这些图片。
AnyDoc 适合先处理文字和表格结构清楚的文件。扫描件、图片里的文字、图表含义和复杂版面,需要继续交给 OCR 或视觉模型。
同样是转 Markdown,它和其他工具的差别是什么
这类工具看起来很像,选择时需要先看输入文件和后续用途。
MarkItDown 与 AnyDoc 最接近,不过它覆盖的输入更杂,还能通过插件调用视觉模型做 OCR。AnyDoc 的安装和运行更轻,老版本 Word、PPT、Excel 以及 OpenDocument 的覆盖也更完整。
Docling 和 Unstructured 解决的问题更大。前者会使用 OCR、版面和表格模型,后者还要继续完成元素分类、切块和嵌入。它们适合复杂文档或完整 RAG 流水线,部署成本也会随之增加。
如果文件主要是普通 Office 文档,可以先用 AnyDoc。发现扫描页、复杂表格或视觉内容以后,再把问题文件交给更重的工具。这样,普通文件不必经过 OCR,只有问题文件需要承担额外的模型时间和费用。
桌面端已经能读文档,AnyDoc 主要给谁用
Codex 桌面端目前预装了 PDF、文档、演示文稿和表格插件,相关的解析与渲染工具也会跟着运行环境提供。用户把 PDF、Word、PPT 或 Excel 放进项目后,Agent 会自动选择对应工具,一般不需要另外安装文档 Skill。
Claude Code Desktop 的官方说明更加保守。桌面附件直接支持图片和 PDF,本地 Code 会话也能访问项目文件。遇到 Word、PPT 和 Excel 时,Agent 会使用电脑里已有的工具,或者自己编写代码提取内容。官方没有说明桌面端预装了一套完整的 Office 文档解析器。
所以,如果你在 Codex 桌面端临时问一份常见文档,或者在 Claude Code Desktop 里询问 PDF,直接使用现有功能就够了。Claude Code 需要稳定读取 Word、PPT 和 Excel 时,AnyDoc 可以补上一套明确的转换工具。
AnyDoc 更适合开发者和需要批量处理文档的人。它可以把不同格式统一转换成 Markdown,输出结果能够保存、缓存和重复使用,也可以继续送进搜索、RAG 或知识库。开发者还可以在 Node.js、Python、Rust 和浏览器中调用同一套解析库,不必依赖某一款 Agent 的内部实现。
AnyDoc 的重点仍然是统一转换。它让不同 Agent 使用同一套解析规则,也让开发者拿到可以保存和继续处理的 Markdown。附带的 Skill 负责接入 Agent,Node.js、Python、Rust 和浏览器版本则用于接入自己的产品。
安装 Skill 只需要一条命令。
npx skills add firecrawl/anydoc项目目前仍处于 0.1.x。准备让它处理财务表格或外部用户上传的文件时,最好先用自己的样本测试,并关注格式失真和安全依赖的更新。
项目地址:https://github.com/firecrawl/anydoc
夜雨聆风