以前把PDF或Excel交给Agent,你得先想一层——它能不能读、要不要先转Markdown、表格会不会乱、图片型PDF会不会直接失败。Hermes Agent接入Firecrawl开源的anydoc之后,这条链路变直接了:文件交给Hermes,本地调用anydoc转成Markdown,Agent接着读。这篇是Windows端真实安装和批量转换的完整记录。 你可能也遇到过这种情况:文件明明就在本机目录里,Agent却还要等一个额外的解析器或在线API才能开工。这次在Windows版Hermes里跑通了安装和批量转换,结果先说清楚——CLI安装成功,anydoc --help成功,CSV转Markdown成功,批量处理6个文件全部成功,0失败。这6个文件里,XLSX 3个,PDF 3个。
anydoc解决的是哪一步
anydoc不是聊天Agent,也不是OCR服务,它做的事很单一:把常见办公文档和PDF转成统一的GitHub-Flavored Markdown。支持格式覆盖Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF。内部路径大致是文件字节进来,识别内容,调对应格式解析器,统一成一个Document模型,再序列化成GFM Markdown。重点在"统一"——不同格式最后走同一套文档模型和同一个Markdown输出器,标题、列表、表格、链接这些不用每种格式单独处理一遍。
官方公开资料给的数字挺激进,单文档转换能到毫秒级,Rust实现,本地运行,已经用在Firecrawl Parse里。但你在Hermes里看到的那几秒钟,是Agent执行命令、扫描目录、启动CLI加写文件的全过程,跟官方的单文档毫秒级不是一回事,别拿来直接对比。
安装和验证过程
在Windows Hermes里让它安装anydoc,Hermes会先克隆仓库,读项目文件,根据README判断安装方式,最终走npm全局安装。装完执行anydoc --help确认命令可用。这里有个小细节值得记一下:源码仓库的commit版本和npm CLI版本不是一回事,截图里能同时看到两个版本号。
别装完就直接丢一整个目录进去,先拿CSV做最小验证——用stdin输入,记得加--format csv这个参数,因为stdin没有文件扩展名,anydoc没法从文件名判断格式。这一步能验证CLI能不能被Hermes调用、stdin输入行不行、CSV能不能转成Markdown表格。这步都跑不通,后面几十个文件也没必要测。
批量转换怎么做
给Hermes的指令要写清楚输入目录、要处理的格式、输出目录,还得要求它返回每个文件的格式、路径、字数和失败原因。指令模糊的话,Agent可能只处理第一个文件,或者结果只打印在对话里没法复用。
批量脚本用Python写,遍历目录里符合扩展名的文件,逐个调用anydoc命令行转换,成功的记录字符数,失败的记录错误信息。这里故意没用npx,而是用已经全局安装的anydoc,这样每个文件独立记录状态,不会因为一个坏文件让整批任务静默中断。
这次Windows测试目录找到6个可转换文件,3个XLSX、3个PDF全部成功,DOCX和PPTX这轮没有测试样本。输出的Markdown文件字数从702到4771不等,这个字数是包含Markdown标记和换行符的字符统计,不是纯中文正文的汉字数。这张结果最有价值的不是"6个成功"这几个字,而是它把本地目录读取、格式识别、Markdown写入、每个文件独立路径和字符数、失败统计这些环节完整串起来了。
为什么要转成Markdown
文档转Markdown不只是格式好看。PDF或DOCX被直接读成一整块文本时,Agent很难判断哪些是标题、表格标题、脚注;转成Markdown后结构显式保留,Agent能按章节检索。Excel转成Markdown表格后,Agent能直接找最高值、按字段筛选、汇总数据、对比多份表格。合同、产品说明、会议材料、报表这些不同格式的文件,最后都进入同一种Markdown输入,后面的摘要、问答、写作不用为每种文件单独设计接口。
能做什么,不能做什么
anydoc适合读取结构化办公文档、批量转Markdown、给Agent统一输入、提取标题列表表格链接、处理不想上传第三方的本地资料。它替代不了的是扫描版PDF和纯图片PDF——没有文本层,anydoc本身不会OCR,这类文件得交给专门的OCR工具;加密或密码保护的文件会直接报错,不能指望Agent自动绕过;结构损坏的文件应该记录失败原因转人工处理。转换完成只是第一步,内容理解、合同风险判断、财务异常这些还是得靠Agent接手。
失败分支一定要保留,别写成"失败就跳过"。至少记录原文件路径、错误类型、是否需要OCR或密码。anydoc自己会区分Unsupported、Malformed、Encrypted、ResourceLimit这几类错误,不同错误对应的下一步动作也不一样,比原始的"转换失败"有用得多。
如果你只是偶尔打开一份PDF,单独用CLI就够了。如果你每天都要让Agent处理一批本地资料,把anydoc接进Agent工具链会顺手很多——转换、输出、失败原因都能留在同一条任务记录里,不用自己在资源管理器里找文件、开转换器、复制粘贴回对话框。
这次Windows实测证明安装链路能走通,CLI能被Hermes调用,CSV能转Markdown,批量扫描能完成,XLSX和PDF这轮全部成功输出。但DOCX、PPTX还需要下一轮真实文件补测,别一上来就全信"支持14种格式",先拿自己的文件跑一遍再说,尤其是最难处理的格式和扫描版PDF。如果你经常把本地资料丢给Agent处理,这套anydoc+Hermes的组合值得试试,也值得转给身边还在手动复制PDF表格进聊天框的人。