O ecossistema de ferramentas para agentes de inteligência artificial acaba de ganhar uma peça que promete mudar a forma como pipelines de dados lidam com documentos corporativos. O AnyDoc, lançado pela equipe do Firecrawl como projeto open source, é uma biblioteca escrita em Rust capaz de converter Word, PowerPoint, Excel, PDF, EPUB, RTF, CSV e OpenDocument em Markdown estruturado em tempo médio de 4,4 milissegundos por arquivo. O número não é marketing: é o resultado de um benchmark público contra seis concorrentes estabelecidos, rodando em hardware real.
Para quem trabalha com construção de agentes, LLMOps ou pipelines de dados corporativos, a promessa é direta: uma entrada consistente, independentemente do formato que chega pelo outro lado. Isso resolve um dos problemas mais silenciosos e mais caros da operação com IA generativa — a fragmentação no pré-processamento de documentos.
O problema que o AnyDoc resolve
Qualquer time que já tentou alimentar um LLM com documentos reais de uma organização conhece o calvário. Um arquivo vem como DOCX, outro como PDF escaneado, um terceiro como apresentação PPTX com tabelas embutidas. Cada formato exige um parser diferente, e cada parser tem seu próprio conjunto de bugs, inconsistências de encoding e comportamentos inesperados com arquivos mais antigos, como os .doc e .xls do Office 2003.
A solução convencional costuma ser empilhar ferramentas: LibreOffice para conversão, Pandoc para estruturação, Unstructured para PDFs, markitdown para casos simples. O resultado é um zoo de dependências com latências que vão de 50ms a mais de um segundo por documento, e qualidade de saída que varia radicalmente entre formatos. Não é exagero dizer que o pré-processamento de documentos consome uma fração desproporcional do tempo de engenharia em projetos de IA corporativa.
O AnyDoc ataca esse problema pela raiz. Em vez de orquestrar ferramentas externas, ele implementa parsers nativos em Rust para cada formato, todos alimentando um modelo de documento unificado. Esse modelo intermediário é então serializado por um único renderizador de Markdown GitHub-Flavored (GFM). O efeito prático é que uma correção no tratamento de tabelas ou notas de rodapé beneficia automaticamente todos os formatos suportados, e não apenas aquele que motivou o fix.
O que o benchmark revela
Os números do benchmark oficial são o ponto mais revelador do projeto. A equipe do Firecrawl testou o AnyDoc contra LibreOffice, Unstructured, markitdown, Pandoc, Docling e Mammoth em 100 documentos reais cobrindo 14 formatos. O critério de qualidade foi avaliado por um juiz LLM (Claude Sonnet 5) comparando as saídas de cada ferramenta contra o ground truth visual dos documentos, em rodadas duplas com outputs embaralhados para eliminar viés de posição.
O AnyDoc foi o único a cobrir todos os 14 formatos avaliados. Sua mediana de conversão foi 4,4ms contra 52,5ms do Mammoth (segundo mais rápido), 102ms do Pandoc e 1.129ms do LibreOffice. Em qualidade agregada, atingiu score 81 contra 69 do Mammoth (que cobre apenas DOCX) e 64 do markitdown. Em formatos específicos como RTF, DOC legado e DOCM, a vantagem é ainda mais pronunciada, já que a maioria dos concorrentes simplesmente não suporta esses formatos.
Para operações em lote, o impacto é imediato: 500 arquivos DOCX convertidos em 1,7 segundo. Em pipelines de ingestão contínua de documentos corporativos, essa diferença de ordem de magnitude entre o AnyDoc e o LibreOffice (que precisaria de quase dez minutos para o mesmo volume) muda completamente a arquitetura viável da solução. A diferença entre processar em tempo real e processar em batch deixa de ser uma escolha de design e passa a ser uma consequência direta da ferramenta utilizada.
Arquitetura: por que Rust importa aqui
A escolha de Rust não é acidental e vai além da performance bruta. A linguagem garante segurança de memória sem garbage collector, o que é crítico quando se está parseando arquivos de origem desconhecida, possivelmente malformados ou deliberadamente adversariais. O AnyDoc implementa limites de segurança explícitos contra ataques de descompressão (zip bombs), profundidade de aninhamento e contagem de nós, com erros tipados via variantes de ConvertError.
A detecção de formato é feita por leitura de bytes, não por extensão de arquivo. O cabeçalho PDF, o grupo de abertura RTF, os nomes de streams OLE para formatos .doc/.xls legados, o mimetype do pacote ZIP para DOCX/PPTX/XLSX e os arquivos OpenDocument, tudo é lido diretamente do conteúdo. Isso significa que arquivos renomeados incorretamente ainda convertem de forma correta, o que é mais comum do que parece em ambientes corporativos reais.
O modelo de documento intermediário captura não apenas o texto, mas headings com âncoras, tabelas com células mescladas e linhas de cabeçalho, listas aninhadas com numeração original, notas de rodapé e notas de apresentação (speaker notes), código inline e blocos de código, links internos e cross-references, e assets embutidos como imagens com seus bytes originais e tipo de mídia. Para aplicações de RAG (Retrieval-Augmented Generation) que precisam preservar estrutura semântica, esse nível de fidelidade é significativo. A diferença entre um chunk de texto plano e um chunk que preserva a hierarquia de headings pode ser determinante na qualidade da recuperação.
Integração com agentes: o Agent Skill
Um dos diferenciais mais práticos do AnyDoc para quem trabalha com desenvolvimento assistido por IA e agentes autônomos é o suporte nativo ao modelo de Agent Skill. Com um único comando npx skills add firecrawl/anydoc, agentes compatíveis com Claude Code, Codex, Cursor e OpenCode adquirem a capacidade de ler qualquer documento de escritório que encontrarem durante a execução de tarefas.
Isso elimina um ponto de fricção recorrente em automações que envolvem documentação técnica, relatórios em PDF, planilhas de dados e apresentações corporativas. O agente deixa de precisar de instruções específicas sobre como lidar com cada formato e passa a tratar documentos como cidadãos de primeira classe no seu contexto de trabalho.
O projeto também expõe o endpoint /parse do Firecrawl como alternativa hospedada para quem não quer operar a biblioteca localmente. Nesse caso, a conversão local via AnyDoc é complementada por modelos de OCR para PDFs baseados em imagem, que a biblioteca por si só não cobre, por design: o foco é em documentos baseados em texto, sem dependência de ML ou serviços externos.
Bindings para Node.js, Python e WebAssembly
A biblioteca principal em Rust é acompanhada de bindings oficiais para três ambientes. No Node.js, a conversão roda no thread pool do libuv e nunca bloqueia o event loop, com tipos TypeScript incluídos. Em Python, o GIL é liberado durante a conversão para não penalizar threads concorrentes, com stubs de tipo para autocompletar. A versão WebAssembly permite converter documentos diretamente no navegador, sem upload para servidor, o que tem implicações óbvias para aplicações que lidam com dados sensíveis.
Para times que trabalham com estratégia de governança de dados e arquitetura de sistemas, a possibilidade de converter documentos localmente no cliente antes de enviar apenas o Markdown processado para um LLM representa uma redução significativa de superfície de exposição de dados. Em vez de enviar o arquivo original, o sistema envia apenas o conteúdo extraído, o que pode ser relevante para conformidade com a LGPD em cenários de processamento de contratos e documentos internos.
Impacto nos pipelines de IA corporativa
O AnyDoc chega num momento em que a eficiência operacional dos pipelines de IA saiu do papel e virou pressão de custo real. Organizações que operam com ingestão contínua de documentos, sejam bases de conhecimento, repositórios de contratos, acervos de políticas internas ou catálogos técnicos, enfrentam o dilema entre qualidade de parsing e custo computacional.
A combinação de latência abaixo de 5ms por documento, cobertura de 14 formatos e saída Markdown consistente posiciona o AnyDoc como componente de infraestrutura para pipelines de RAG, sistemas de busca semântica e agentes com acesso a bases documentais. Não substitui OCR para documentos escaneados, mas para o universo de arquivos de escritório digitalmente criados, cobre o caso de uso com uma eficiência que as alternativas atuais não atingem.
A Associação Brasileira de Ciência de Dados e IA tem monitorado de perto o surgimento de ferramentas de infraestrutura para LLMs que priorizam eficiência e privacidade. O AnyDoc representa exatamente o tipo de evolução que a comunidade de dados precisa: open source, auditável, sem dependência de serviços externos e com performance que permite uso em produção sem overhead proibitivo.
O repositório está disponível em github.com/firecrawl/anydoc sob licença MIT. Para quem trabalha com desenvolvimento moderno assistido por IA, vale explorar tanto a integração direta via Rust quanto os bindings para Node.js e Python, dependendo do stack existente. O benchmark completo, incluindo o harness de teste, está na pasta bench/ do repositório para quem quiser reproduzir ou adaptar para seus próprios cenários de uso.

