给 AI 应用喂文档,最磨人的一步就是文档转 Markdown。几百份 PDF、Word、PPT 要一份份处理干净,才能喂给模型。
GitHub 上刚火的 anydoc,把这件事压到了 4.4 毫秒。建议先收藏,后面讲怎么用。

{为什么文档转 Markdown 这么折腾}
这活儿坑比想象中多。每个库只覆盖一部分格式,markitdown 只跑通 6 种,pandoc 5 种,docling 4 种。
想全支持,就得把四五个库拼起来,各自的依赖、输出格式和失败方式都不一样。转完的风格还不统一,喂给模型效果打折。
速度也让人着急。LibreOffice 转一个文件要一秒钟以上,复杂表格容易乱码,合并单元格直接丢失。
更离谱的是,有人传过来的文件后缀写 .docx,内容其实是 PDF,解析程序当场崩溃。
Firecrawl 开源的 anydoc,就是冲着这些痛点来的:一个 Rust 库,14 种格式,一种输出。
{anydoc 是什么:一个库,14 种格式}
anydoc 是 Firecrawl 开源的一个 Rust 库,把办公文档和 PDF 全部转成 GitHub Flavored Markdown。

复杂结构都在:标题带锚点、合并单元格表格、脚注、任务列表、演讲者备注。没 API key、没系统依赖,npm 包零依赖。
{实测:4.4 毫秒和 81 分}
官方基准用了 100 个真实文档、14 种格式,再用 Claude 盲评打分。anydoc 的中位转换时间是 4.4 毫秒,比 LibreOffice 快了约 250 倍。
全场只有 anydoc 覆盖全部 14 种格式,质量分 81 也是最高,单项全拿第一。
{原理:先统一,再输出}
anydoc 的设计思路是先统一再输出。每种格式先走自己的解析器,全部汇入同一个共享文档模型,再经同一个 Markdown 序列化器输出。
所以转义、表格、标题锚点这些行为,在所有格式下完全一致。一处修复,全格式生效,比如 docx 的表格转义修好,rtf、odt 自动跟着好。
还有个细节很实用。它按文件内容识别格式,压根不看扩展名。PDF 头、RTF 开放组、ZIP 的 mimetype,靠这些内容标记,后缀名造假的文件也能正常转换。
{怎么用:一行命令,全平台}
最省事的是 CLI,一行命令,Markdown 直接输出到终端:
npx @firecrawl/anydoc report.docx
npx @firecrawl/anydoc slides.pptx -o slides.md
Python 和 Node 也有官方包,装完几行代码就能转:
pip install firecrawl-anydoc
import anydoc
markdown = anydoc.to_markdown("report.docx")
它还以 Agent Skill 形式发布,npx skills add firecrawl/anydoc 即可让 Claude Code、Cursor 等代理直接读文档。
值得一提,anydoc 就是 Firecrawl 自家 Parse 服务的底层引擎,托管版额外带 OCR,扫描件也能处理。
浏览器版用 WebAssembly 跑在本地,文件不离开你的机器,合同也能放心转。
说实话,这个项目上线不到两周就冲到 1 万星,不意外。它解决的正是 RAG 和 Agent 落地时最磨人的一环,把文档洗干净喂给模型。
如果你也在做文档处理流水线,去 GitHub 给它点个 Star 吧。
anydoc
文档转 Markdown 的 Rust 库
https://github.com/firecrawl/anydoc
#anydoc #开源 #RAG #文档转换 #Markdown #AI工具 #LLM #效率工具 #Firecrawl #GitHub
{ 感谢阅读 }
如果本文对您有帮助,欢迎 “点赞“,点“推荐”
夜雨聆风