返回
Kevin Riedl

10 分钟 阅读 · 2026年8月10日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

Firecrawl AnyDoc 评测:14 种格式转 AI 可用 Markdown

Firecrawl AnyDoc 是一款快速的本地文档转 Markdown 库,但不是完整的文档智能平台。这个开源 Rust 项目用统一文档模型处理 Word、PowerPoint、Excel、OpenDocument、RTF、EPUB 和 CSV,文本型 PDF 则交给 pdf-inspector。对于 RAG 入库、AI 智能体文件上传或企业知识导入,它的价值很直接:常规文档只需一个依赖,输出统一 Markdown,也不必调用外部 API。

我们在 2026 年 8 月 10 日核对代码、benchmark 方法和替代方案后得出的结论是:如果办公文档占多数,而且本地处理很重要,AnyDoc 值得用真实语料试点。如果主要输入是扫描件、手写内容、复杂视觉版式或需要按 schema 提取字段,它不适合作为默认方案。本文专门回答 AnyDoc、Docling、MarkItDown 与托管解析器之间的采购问题,并把 PDF 与 OCR 路由留给已有的专门文章。

Firecrawl AnyDoc 是什么?

AnyDoc 先把文档 bytes 转换为共享结构模型,再把该模型序列化为 GitHub-Flavored Markdown。官方仓库和 API 参考提供 Rust、Node.js、Python、CLI 与浏览器 WebAssembly 接口。它根据文件内容中的 marker 判断格式,而不是只相信扩展名。CSV 没有格式签名,因此需要扩展名或显式格式。

输入类别示例可用输出
WordDOC、DOCX、DOCM标题、列表、表格、链接、注释与行内格式
PowerPointPPT、PPTX 及相关格式幻灯片内容、表格、链接、媒体引用与讲者备注
ExcelXLS、XLSX、XLSM、XLSB旧版与新版工作簿都输出统一 Markdown 表格
OpenDocumentODT、ODS、ODP与 Microsoft 格式共用同一个 serializer
其他结构化文件RTF、EPUB、CSV无需安装办公套件即可获得规范化文本
文本型 PDF带可用文本层的 PDF通过 pdf-inspector 在本地输出 Markdown

能力边界比格式数量更重要。嵌入资源会以 bytes 保留在文档模型中,Markdown 则使用 alt text 或引用表示它们。AnyDoc 不执行 OCR,不理解图表,不推断发票字段,不为 embedding 分块,也不评估检索质量。它解决的是这些步骤之前的格式转换。

4.4 ms benchmark 到底证明了什么?

Firecrawl 报告称,AnyDoc 在 14 种 benchmark 格式上的单文档转换时间中位数为 4.4 ms,质量总分为 81。官方发布说明与 benchmark 方法称,该比较使用 100 份真实文档和六种替代工具。AnyDoc 是这次测试中唯一覆盖全部 14 种格式的工具。

公开数据可以得出的结论尚未证明的部分
4.4 ms 中位数在测试机器上,本地转换路径开销很低冷启动、上传、p95 与你的容器规格
质量总分 81完整性、结构、格式与整洁度表现较好独立人工评审与行业字段正确性
100 份真实文档测试比单个 DOCX demo 更广语料不可公开,外部无法检查分布
LLM 盲评并交换输出顺序方法尝试降低位置偏差与专业人工判断的一致性,以及关键错误成本
各工具覆盖格式不同逐格式比较比一个总分更有用所有工具都完整支持的同一份语料

这是一份值得参考的厂商证据,不是通用速度纪录。试点时要固定 AnyDoc 版本、硬件、预热方式和样本,并测量 p50、p95、结构验收率、内容缺失、人工更正分钟数与失败文档。一个几毫秒完成但损坏财务表格的 parser,在业务上并不快。

AnyDoc、Docling、MarkItDown 还是 Firecrawl Parse?

方案最适合主要代价
AnyDoc需要留在本地的混合 Office、OpenDocument、RTF、EPUB 与 CSV没有 OCR,也不做语义字段提取
Docling扫描件、图片、复杂 PDF 版式、表格与更丰富的无损文档模型模型、依赖、配置与算力更多
MarkItDown需要广泛格式、插件与可选云集成的 Python 团队不同格式有不同依赖,转换器质量也不同
Firecrawl Parse希望直接购买托管 OCR、摘要或 schema JSON 的团队网络传输、供应商条款、按次成本与文档所列 50 MB 限制
保留现有 parser当前验收率、成本与延迟已经达到产品目标迁移前必须先证明收益足以覆盖开发与维护

Docling 当前支持格式文档列出 PDF、Office、OpenDocument、EPUB、图片、HTML、markup、音频和视频,工具包其他部分还提供 OCR 与结构化导出。这种广度很适合版式复杂或多模态语料,但不代表它一定是更轻量的 Office 转换器。

Microsoft MarkItDown 官方文档介绍了按格式安装的可选依赖、通过插件实现的 OCR,以及用于高质量版式和结构化提取的付费 Azure 路径。它适合重视扩展性的 Python 产品。AnyDoc 更适合需要聚焦、本地、多语言 binding 和统一办公文档输出的团队。

Firecrawl 的托管 Parse 文档还提供 OCR 模式、摘要和 schema 引导 JSON。如果托管异常处理比让所有数据和 parser 都留在自己的边界更有价值,可以考虑该服务。虽然 AnyDoc 支撑其中一部分流程,但本地库与托管 API 不是同一种产品。

构建产品,而不只是 backlog

如果这篇文章对应的是一个真实产品决策,Wavect 可以用高级创始人级判断帮你界定范围、构建、加固或领导软件工作。

可选服务路径:

AnyDoc 应该放在 AI 智能体或 RAG 流水线的哪里?

  1. 限制接收范围:只允许必要格式,限制原始和解压后大小,替换用户文件名,并把上传放入隔离区。
  2. 根据 bytes 识别:比较声明的扩展名与 AnyDoc 内容识别结果。不一致时应拒绝,除非产品有明确恢复路径。
  3. 隔离解析:限制 CPU、内存、嵌套与执行时间。公开上传不能与 web 进程或凭据存储处于同一信任边界。
  4. 保留来源:记录文件 hash、原始格式、parser 版本、提取时间、标题、表格与资源引用。
  5. 验收 Markdown:入库前检查必要章节、字符质量、行数、合计、链接和空输出。
  6. 路由例外:纯图片 PDF 与嵌入扫描页进入获批 OCR 或视觉路径。加密、损坏和不支持文件进入受控审核或拒绝队列。
  7. 验收后再分块:Parsing 只生成源文本。元数据、权限、embedding、检索与答案引用仍是独立责任。
  8. 测量验收文档:记录端到端成本和审核时间,而不只看 parser 毫秒数。

PDF 专项请看我们的 pdf-inspector 与 OCR 路由评测。那篇文章负责原生文本判断、混合页面分流,以及何时开始 OCR。Markdown 验收之后,则由欧盟企业 RAG 生产就绪清单负责权限、检索评测和答案引用。清晰划分搜索意图可以避免内容相互竞争。

Node.js 快速接入与生产边界

import { toMarkdownBytes } from "@firecrawl/anydoc"

export async function parseAcceptedUpload(file) {
  enforceUploadLimits(file)
  const bytes = new Uint8Array(await file.arrayBuffer())
  const markdown = await toMarkdownBytes(bytes, file.name)
  const result = validateDocument(markdown)

  if (!result.accepted) {
    return routeForReview(file, result.reasons)
  }

  return {
    markdown,
    sha256: await hash(bytes),
    parser: "anydoc@PINNED_VERSION",
    sourceName: safeDisplayName(file.name)
  }
}

enforceUploadLimitsvalidateDocumentrouteForReviewhashsafeDisplayName 都是产品代码,不是 AnyDoc API。架构估算必须保留这条边界。安装 parser 只是可靠文档入库功能中最小的一部分。

哪些场景不适合 AnyDoc?

  • 扫描件与照片:AnyDoc 没有 OCR 模型,支持文本型 PDF 并不改变这个限制。
  • 视觉语义:图表、签名、手写修改和空间表单需要视觉或文档理解层。
  • 类型化业务字段:把发票转成 Markdown,并不等于按 schema 验证供应商、税额、明细与总计。
  • 完美还原 Office:目标是干净的结构化文本,不是像素级复现工作簿或演示文稿。
  • 无限制公开上传:Rust 和库内资源限制有帮助,但不能替代 sandbox、队列限制、恶意软件检查与补丁责任。
  • 必须有独立 benchmark:公开性能数据来自项目团队,测试语料也未公开。

OWASP 的文件上传安全指南建议采用多层防护:扩展名白名单、Content-Type 与签名检查、重命名、大小限制、隔离存储、恶意软件扫描和 parser 加固。本地转换减少一种数据传输风险,但不会让外部 Office 文件自动可信。

十天 AnyDoc 评测计划

  1. 抽取真实样本:至少选择 200 份文档,覆盖所有相关格式、语言、年代与来源,并加入损坏、加密、含宏与超大文件。
  2. 定义验收:按文档类型标记必须保留的标题、备注、表格、合并单元格、链接、公式、页码与资源。
  3. 建立当前基线:记录验收率、p50、p95、基础设施成本、人工审核分钟数与 fallback 比例。
  4. 测试固定版本:使用同一指标,并把 warm parsing 与进程启动、上传时间分开。
  5. 比较两种替代方案:在困难视觉子集上测试 Docling,在共有办公格式上测试 MarkItDown。
  6. 攻击边界:在计划中的 sandbox 内测试伪装、压缩、嵌套和高资源消耗文件。
  7. 计算 fallback:统计 OCR 调用、人工审核、拒绝和最终影响用户的失败。
  8. 按验收行动决策:只有在质量与安全过线,并且总成本或延迟改善时才上线。

使用我们的 AI 智能体单次行动成本模型,把重试和人工修复留在分母里。如果文档入库即将成为产品基础设施,Wavect 的 AI enablement 服务可以帮助评测语料、构建路由层,并连接检索或流程自动化。Twinsoft AI 案例展示我们如何约束并追踪 AI 输出,MVP 技术栈选择指南则帮助判断哪些解析层应由团队自持。

常见问题

Firecrawl AnyDoc 是什么?
AnyDoc 是一款采用 MIT 许可证的 Rust 库,可把 Word、PowerPoint、Excel、OpenDocument、RTF、EPUB 和 CSV 转成统一的 GitHub-Flavored Markdown。它提供 Rust、Node.js、Python、CLI 和浏览器 WebAssembly 接口,并通过 pdf-inspector 支持文本型 PDF。
AnyDoc 会执行 OCR 吗?
不会。它能处理机器可读内容和文本型 PDF,但扫描件、照片和纯图片页面需要独立 OCR 或视觉路径。
AnyDoc 比 Docling 快吗?
在 Firecrawl 公布的本地 benchmark 中,AnyDoc 的 4.4 ms 中位数更快。但两者覆盖的问题不同,语料也未公开。Docling 还提供 OCR、版式模型和更多多模态格式。应在各自负责的生产子集上测试。
应该选 AnyDoc 还是 MarkItDown?
如果需要一个覆盖混合办公格式,并提供 Rust、Node.js、Python 与 WebAssembly 接口的紧凑本地 parser,可选 AnyDoc。如果更看重 Python 插件生态、其他媒体和可选 Azure 提取路径,可选 MarkItDown。
AnyDoc 可以完全在浏览器运行吗?
可以。WebAssembly 包接收文档 bytes,官方 demo 也在本地转换。大文件和外部文件仍需要 Web Worker、明确限制与拒绝路径,避免界面失去响应。
AnyDoc 足以构建 RAG 吗?
不足。它可以提供结构化 Markdown,但生产 RAG 仍需验收、分块、元数据、权限、embedding、检索评测、答案引用、监控与删除处理。

研究边界

状态核对日期为 2026 年 8 月 10 日。本文 benchmark 数据来自厂商,不是 Wavect 实测。我们核对了公开仓库、benchmark 方法和替代方案官方文档,但没有拿到 AnyDoc 私有语料,也没有执行安全审计。版本、格式、托管限制与价格可能变化,采购前应固定并复核。

最终思考

AnyDoc 消除了一类常被低估的基础设施成本:为用户上传的每种办公格式维护不同 parser 和不同输出。共享文档模型、本地执行与多语言 binding,使它有资格成为常规文档转 Markdown 的默认候选。

采购决策取决于异常集合。如果扫描件、视觉版式和类型化字段占多数,应选择更丰富或托管的流水线。如果原生办公文档占多数,就用最难的真实文件试点 AnyDoc,隔离 parser,保留来源,并测量验收文档。最快的 parser 应该降低整体审核和恢复成本,同时不削弱质量闸门。

构建产品,而不只是 backlog

如果这篇文章对应的是一个真实产品决策,Wavect 可以用高级创始人级判断帮你界定范围、构建、加固或领导软件工作。

可选服务路径:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

10 分钟 阅读 · 2026年8月10日
最近审核

下一篇

通过邮件获取新文章

我们发布时给你一封简短邮件。免费,不做跟踪。

免费、双重确认、不使用跟踪像素。