Hermes ya puede leer documentos PDF, Word, Excel, EPUB y RTF: guía práctica

Conseguir que una IA lea un documento parece trivial, pero en la práctica resulta sorprendentemente complicado: los PDF necesitan extracción de texto, los archivos de Word requieren librerías de parseo, y los formatos RTF o EPUB heredados apenas tienen herramientas preparadas. Tu primer instinto suele ser “copiar y pegar el contenido en el chat”, algo que deja de funcionar en cuanto te enfrentas a un informe de 40 páginas, a un contrato con formato o a una hoja de cálculo con cientos de filas.
Hermes Agent acaba de convertir esto en una operación de un solo comando. read_file, la herramienta más utilizada del repertorio del agente, ahora puede leer directamente PDF, Word, Excel, EPUB, RTF y una docena de formatos de documento más, convirtiéndolos en Markdown limpio para que el modelo los consuma. Este artículo se basa en la verificación práctica del código upstream más reciente: qué formatos están soportados, cómo funciona por debajo, qué hacer con los documentos escaneados y casos de uso realistas para cada tipo de archivo.
El resumen en un párrafo
read_file incluye extracción automática integrada para tres formatos — cuadernos Jupyter (.ipynb), Word (.docx) y Excel (.xlsx) — sin dependencias adicionales.
Además, Hermes ha introducido una dependencia opcional, firecrawl-anydoc (núcleo en Rust, importada como anydoc), que amplía la cobertura a PDF, Office heredado (.doc/.ppt/.xls), OpenDocument (.odt/.ods/.odp), RTF y EPUB, todos convertidos a Markdown a través de un único modelo de documento compartido. Una vez instalada, leer estos formatos es indistinguible de leer un archivo de texto plano.
Matriz completa de formatos
| Categoría | Formatos | Vía de extracción |
|---|---|---|
| Cuadernos | .ipynb |
Integrada (stdlib, sin dependencias) |
| Word | .docx |
Integrada (stdlib, sin dependencias) |
| Excel | .xlsx |
Integrada (stdlib, sin dependencias) |
.pdf |
anydoc (opcional) | |
| Office heredado | .doc .docm .ppt .pps .pot .pptx .pptm .ppsx .ppsm .xls .xlsm .xlsb |
anydoc (opcional) |
| OpenDocument | .odt .ods .odp |
anydoc (opcional) |
| RTF | .rtf |
anydoc (opcional) |
| EPUB | .epub |
anydoc (opcional) |
Un detalle de diseño que merece la pena destacar: los extractores integrados siguen siendo la vía autoritativa para .docx/.xlsx. Incluso con anydoc instalado, esos dos formatos continúan pasando por la ruta stdlib, de modo que el comportamiento es idéntico haya o no anydoc presente.
Cómo usarlo: basta con llamar a read_file
No hay comandos nuevos ni parámetros nuevos para el usuario. Solo tienes que pasarle a read_file la ruta de un documento:
read_file(path="/tmp/quarterly-report.pdf")
Lo que devuelve es texto Markdown numerado por líneas, con el mismo soporte de paginación offset/limit, el mismo truncamiento por presupuesto de caracteres y la misma redacción de información sensible que con cualquier otro archivo. Los documentos sobredimensionados se truncan al presupuesto de una sola lectura con una indicación para continuar mediante offset, exactamente igual que al leer un archivo de texto grande.
Lazy install: se instala automáticamente en la primera lectura, sin bloquear nunca
anydoc no es una dependencia obligatoria. Está registrada en lazy_deps como tool.doc_extract (firecrawl-anydoc==0.1.6) y se instala automáticamente la primera vez que lees un archivo de este tipo, con prompt=False para que read_file nunca se quede bloqueado esperando confirmación.
Si la instalación falla o el archivo está corrupto, el ConvertError de anydoc se mapea a ExtractionError, y read_file cae en el manejo normal de rutas/archivos binarios en lugar de fallar. Los documentos cifrados, los PDF dañados y los EPUB vacíos siguen todos esta vía de respaldo segura.
Salida de muestra verificada
Tomemos como ejemplo un contrato DOCX real. El extractor integrado analiza los párrafos y nodos de texto de word/document.xml:
1|Quarterly report: revenue up 23%
2|Second paragraph with contract terms.
Las tablas, saltos de línea y tabulaciones se conservan; el XLSX se emite por hoja, omitiendo las hojas ocultas:
1|# ── Sheet: Q1 ──
2|region\trevenue\tgrowth
3|APAC\t$12.4M\t18%
4|EMEA\t$9.1M\t12%
Documentos escaneados: la vía OCR
Los PDF basados en texto se extraen sin problemas, pero los PDF escaneados (basados en imagen) necesitan OCR. En ese caso, las vías integrada/anydoc no pueden resolver ningún texto, y la herramienta adecuada es la skill ocr-and-documents (incluida con Hermes por defecto, v2.3.0).
La skill proporciona dos extractores locales:
| Capacidad | pymupdf (ligero) | marker-pdf (alta calidad) |
|---|---|---|
| PDF basado en texto | ✅ | ✅ |
| PDF escaneado (OCR) | ❌ | ✅ (90+ idiomas) |
| Tablas | ✅ (básicas) | ✅ (alta precisión) |
| Ecuaciones / LaTeX | ❌ | ✅ |
| Bloques de código / formularios | ❌ | ✅ |
| Detección de orden de lectura | ❌ | ✅ |
| EPUB | ✅ | ✅ |
| Tamaño de instalación | ~25MB | ~3-5GB |
| Velocidad | Instantánea | ~1-14s/página (CPU) |
pip install pymupdf pymupdf4llm
python scripts/extract_pymupdf.py scanned.pdf --markdown
Documentos por URL: web_extract primero
Si el documento está en la web (artículos de arXiv, informes de empresa, PDF públicos), prueba primero web_extract — convierte PDF a Markdown mediante Firecrawl sin dependencias locales:
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
Solo cuando el archivo es local, cuando web_extract falla o cuando necesitas procesamiento por lotes deberías ir a la vía local. La decisión es clara: URL → web_extract, documentos de texto locales → read_file, escaneos/diseños complejos → ocr-and-documents.
Escenarios del mundo real
Escenario 1: Revisar contratos (Word / RTF)
Pasa contract.docx o un contract.rtf heredado directamente a read_file y deja que el modelo extraiga las cláusulas clave, marque los términos de riesgo y compare dos versiones. El RTF es el formato heredado más habitual en las grandes empresas, y ahora ya no hace falta convertirlo manualmente a DOCX antes.
Escenario 2: Leer informes (Excel)
read_file emite el .xlsx como texto de tabla por hoja, de modo que el modelo puede calcular totales, detectar anomalías y elaborar directamente un resumen del análisis. Las hojas ocultas se omiten automáticamente, manteniendo las áreas de trabajo internas alejadas del modelo.
Escenario 3: Análisis de PDF por lotes
Pásale a Hermes una lista de rutas de informes PDF y deja que haga read_file de cada uno para después resumirlos. Combinado con un script de execute_code que recorra un directorio, una pila de decenas de documentos se puede resumir en una sola sesión.
Escenario 4: Leer libros electrónicos (EPUB)
El EPUB es el formato estándar de libro electrónico. Pásale un .epub a Hermes para resumir capítulos, extraer las ideas clave y construir notas de lectura; tanto anydoc como marker-pdf soportan EPUB.
Escenario 5: Artículos de investigación
Los artículos basados en texto van directamente a read_file; los escaneados pasan por ocr-and-documents con marker-pdf; y cualquier cosa con URL pasa por web_extract. Tres vías cubren todo el flujo, desde la descarga del PDF hasta la lectura en profundidad.
Actualización y disponibilidad
La funcionalidad llega en dos capas:
- Trío integrado (.ipynb/.docx/.xlsx): disponible con Hermes desde junio de 2026 — ejecuta
hermes updatea cualquier versión reciente y listo. - Extensión anydoc (PDF/Office heredado/ODF/RTF/EPUB): introducida por el commit
b2598b41e(fusionado en main upstream el 2026-08-05), es la capacidad más nueva después de v0.20.0 y aún no forma parte de una release etiquetada. Ejecutahermes updatepara traer el main más reciente; al leer un archivo de este tipo se activará automáticamente la instalación diferida de anydoc.
Resumen
| Dónde está el archivo | Qué usar | Dependencias |
|---|---|---|
| Local, .ipynb/.docx/.xlsx | read_file |
Ninguna |
| Local, PDF/Office heredado/ODF/RTF/EPUB | read_file + anydoc |
Lazy install automático |
| Local, escaneos/diseños complejos | skill ocr-and-documents |
pymupdf o marker-pdf |
| URL web | web_extract |
Ninguna |
La lectura de documentos es una de las capacidades más fundamentales — y más infravaloradas — de un agente de IA. Hermes ha condensado todo este flujo en un solo comando, y la instalación diferida reduce a cero la barrera de las capacidades opcionales. La próxima vez que te encuentres un contrato en PDF, un informe en Excel o un ebook EPUB, solo léelo: sin copiar y pegar.
¿Quieres seguir explorando las capacidades de archivos y datos de Hermes? Echa un vistazo a nuestro resumen de consejos de productividad, a la guía de optimización de almacenamiento, o consigue la última versión de Hermes con la guía de instalación.