Hermes kann jetzt PDF-, Word-, Excel-, EPUB- und RTF-Dokumente lesen: Ein praktischer Leitfaden

Eine KI dazu zu bringen, ein Dokument zu lesen, klingt trivial, ist in der Praxis aber erstaunlich mühsam: PDFs brauchen Textextraktion, Word-Dateien benötigen Parser-Bibliotheken, und für veraltete RTF- oder EPUB-Formate gibt es kaum fertige Werkzeuge. Der erste Instinkt ist meistens „Inhalt einfach kopieren und in den Chat einfügen“ – was spätestens dann nicht mehr funktioniert, wenn du einen 40-seitigen Bericht, einen formatierten Vertrag oder eine Tabelle mit Hunderten von Zeilen vor dir hast.
Hermes Agent hat das jetzt zu einer Sache mit einem einzigen Befehl gemacht. read_file, das am häufigsten verwendete Werkzeug im Arsenal des Agents, kann jetzt PDF-, Word-, Excel-, EPUB-, RTF- und ein Dutzend weitere Dokumentformate direkt lesen und in sauberes Markdown umwandeln, das das Modell konsumieren kann. Dieser Beitrag basiert auf praktischer Verifikation gegen den aktuellen Upstream-Code: welche Formate unterstützt werden, wie es unter der Haube funktioniert, was mit gescannten Dokumenten zu tun ist und realistische Anwendungsfälle für jeden Dateityp.
Die Zusammenfassung in einem Absatz
read_file bringt eine eingebaute Auto-Extraktion für drei Formate mit – Jupyter-Notebooks (.ipynb), Word (.docx) und Excel (.xlsx) – ohne zusätzliche Abhängigkeiten.
Darüber hinaus hat Hermes eine optionale Abhängigkeit eingeführt, firecrawl-anydoc (Rust-Kern, importiert als anydoc), die die Abdeckung auf PDF, altes Office (.doc/.ppt/.xls), OpenDocument (.odt/.ods/.odp), RTF und EPUB ausweitet – alle werden über ein gemeinsames Dokumentmodell in Markdown umgewandelt. Nach der Installation unterscheidet sich das Lesen dieser Formate nicht mehr vom Lesen einer einfachen Textdatei.
Die vollständige Format-Matrix
| Kategorie | Formate | Extraktionspfad |
|---|---|---|
| Notebooks | .ipynb |
Eingebaut (stdlib, keine Abhängigkeiten) |
| Word | .docx |
Eingebaut (stdlib, keine Abhängigkeiten) |
| Excel | .xlsx |
Eingebaut (stdlib, keine Abhängigkeiten) |
.pdf |
anydoc (optional) | |
| Altes Office | .doc .docm .ppt .pps .pot .pptx .pptm .ppsx .ppsm .xls .xlsm .xlsb |
anydoc (optional) |
| OpenDocument | .odt .ods .odp |
anydoc (optional) |
| RTF | .rtf |
anydoc (optional) |
| EPUB | .epub |
anydoc (optional) |
Ein Designdetail ist erwähnenswert: die eingebauten Extraktoren bleiben für .docx/.xlsx maßgeblich. Selbst wenn anydoc installiert ist, laufen diese beiden Formate weiterhin über den Stdlib-Pfad, sodass das Verhalten identisch ist – egal ob anydoc vorhanden ist oder nicht.
So verwendest du es: einfach read_file aufrufen
Es gibt keine neuen Befehle und keine neuen Parameter für dich. Übergib read_file einfach einen Dokumentpfad:
read_file(path="/tmp/quarterly-report.pdf")
Zurück kommt nummerierter Markdown-Text, der dieselbe offset/limit-Paginierung, Zeichenbudget-Kürzung und Schwärzung sensibler Informationen unterstützt wie jede andere Datei. Überdimensionierte Dokumente werden auf das Einzel-Lese-Budget gekürzt, mit einem Hinweis, über offset fortzufahren – genau wie beim Lesen einer großen Textdatei.
Lazy Install: automatisch beim ersten Lesen installiert, blockiert nie
anydoc ist keine harte Abhängigkeit. Es ist in lazy_deps als tool.doc_extract registriert (firecrawl-anydoc==0.1.6) und wird automatisch installiert, sobald du zum ersten Mal eine solche Datei liest, mit prompt=False, damit read_file nie auf eine Bestätigung warten muss.
Schlägt die Installation fehl oder ist die Datei beschädigt, wird anydocs ConvertError auf ExtractionError abgebildet, und read_file fällt auf die normale Pfad-/Binär-Behandlung zurück, statt abzustürzen. Verschlüsselte Dokumente, korrupte PDFs und leere EPUBs nehmen alle diesen sicheren Fallback-Pfad.
Verifizierte Beispiel-Ausgabe
Nehmen wir einen echten DOCX-Vertrag als Beispiel. Der eingebaute Extraktor parst die Absätze und Textknoten von word/document.xml:
1|Quarterly report: revenue up 23%
2|Second paragraph with contract terms.
Tabellen, Zeilenumbrüche und Tabs bleiben erhalten; XLSX wird pro Sheet ausgegeben, wobei ausgeblendete Sheets übersprungen werden:
1|# ── Sheet: Q1 ──
2|region\trevenue\tgrowth
3|APAC\t$12.4M\t18%
4|EMEA\t$9.1M\t12%
Gescannte Dokumente: der OCR-Pfad
Textbasierte PDFs lassen sich sauber extrahieren, aber gescannte (bildbasierte) PDFs brauchen OCR. In diesem Fall können die eingebauten/anydoc-Pfade keinen Text auflösen, und das richtige Werkzeug ist die ocr-and-documents-Skill (standardmäßig in Hermes gebündelt, v2.3.0).
Die Skill bietet zwei lokale Extraktoren:
| Fähigkeit | pymupdf (leichtgewichtig) | marker-pdf (hohe Qualität) |
|---|---|---|
| Textbasiertes PDF | ✅ | ✅ |
| Gescanntes PDF (OCR) | ❌ | ✅ (90+ Sprachen) |
| Tabellen | ✅ (grundlegend) | ✅ (hohe Genauigkeit) |
| Gleichungen / LaTeX | ❌ | ✅ |
| Codeblöcke / Formulare | ❌ | ✅ |
| Erkennung der Lesereihenfolge | ❌ | ✅ |
| EPUB | ✅ | ✅ |
| Installationsgröße | ~25MB | ~3-5GB |
| Geschwindigkeit | Sofort | ~1-14s/Seite (CPU) |
pip install pymupdf pymupdf4llm
python scripts/extract_pymupdf.py scanned.pdf --markdown
URL-Dokumente: zuerst web_extract
Wenn das Dokument im Web liegt (arXiv-Papers, Unternehmensberichte, öffentliche PDFs), versuche zuerst web_extract – es wandelt PDFs über Firecrawl in Markdown um, ohne lokale Abhängigkeiten:
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])
Nur wenn die Datei lokal liegt, web_extract fehlschlägt oder du Stapelverarbeitung brauchst, solltest du lokal arbeiten. Die Entscheidung ist klar: URLs → web_extract, lokale Textdokumente → read_file, Scans/komplexe Layouts → ocr-and-documents.
Praxis-Szenarien
Szenario 1: Verträge prüfen (Word / RTF)
Gib contract.docx oder eine veraltete contract.rtf direkt in read_file und lass das Modell wichtige Klauseln extrahieren, riskante Bedingungen markieren und zwei Versionen vergleichen. RTF ist das häufigste Alt-Format in großen Unternehmen – und es ist jetzt nicht mehr nötig, es vorher manuell in DOCX zu konvertieren.
Szenario 2: Berichte lesen (Excel)
read_file gibt .xlsx als Tabellentext pro Sheet aus, sodass das Modell Summen berechnen, Anomalien erkennen und direkt eine Analyse-Zusammenfassung erstellen kann. Ausgeblendete Sheets werden automatisch übersprungen, sodass interne Arbeitsbereiche dem Modell fernbleiben.
Szenario 3: PDF-Stapelanalyse
Übergib Hermes eine Liste mit PDF-Berichtspfaden und lass es jede Datei per read_file lesen und anschließend zusammenfassen. Kombiniert mit einem execute_code-Skript, das ein Verzeichnis durchläuft, lässt sich ein Stapel von Dutzenden Dokumenten in einer einzigen Sitzung zusammenfassen.
Szenario 4: E-Books lesen (EPUB)
EPUB ist das Standard-E-Book-Format. Gib Hermes eine .epub-Datei, um Kapitel zusammenzufassen, Kernideen zu extrahieren und Lesenotizen zu erstellen – sowohl anydoc als auch marker-pdf unterstützen EPUB.
Szenario 5: Forschungspapiere
Textbasierte Papers gehen direkt an read_file; gescannte durchlaufen ocr-and-documents mit marker-pdf; alles mit einer URL läuft über web_extract. Drei Pfade decken die gesamte Pipeline vom PDF-Download bis zum vertieften Lesen ab.
Upgrade & Verfügbarkeit
Das Feature kommt in zwei Schichten:
- Eingebautes Trio (.ipynb/.docx/.xlsx): seit Juni 2026 in Hermes verfügbar –
hermes updateauf eine beliebige aktuelle Version genügt. - anydoc-Erweiterung (PDF/altes Office/ODF/RTF/EPUB): eingeführt mit Commit
b2598b41e(am 2026-08-05 in den Upstream-Main gemergt), ist dies die neueste Fähigkeit nach v0.20.0 und noch nicht Teil eines getaggten Releases. Führehermes updateaus, um den neuesten Main zu ziehen; das Lesen einer solchen Datei löst dann automatisch die Lazy-Installation von anydoc aus.
Zusammenfassung
| Wo die Datei liegt | Was du verwendest | Abhängigkeiten |
|---|---|---|
| Lokal, .ipynb/.docx/.xlsx | read_file |
Keine |
| Lokal, PDF/altes Office/ODF/RTF/EPUB | read_file + anydoc |
Automatisch lazy-installiert |
| Lokal, Scans/komplexe Layouts | Skill ocr-and-documents |
pymupdf oder marker-pdf |
| Web-URL | web_extract |
Keine |
Dokumentlesen gehört zu den grundlegendsten – und am meisten unterschätzten – Fähigkeiten eines KI-Agents. Hermes hat diese Pipeline auf einen einzigen Befehl reduziert, und die Lazy-Installation senkt die Hürde für optionale Fähigkeiten auf null. Wenn du das nächste Mal auf einen PDF-Vertrag, einen Excel-Bericht oder ein EPUB-E-Book stößt, lies es einfach – ohne Copy-Paste.
Du willst die Datei- und Daten-Fähigkeiten von Hermes weiter erkunden? Schau dir unsere Produktivitäts-Tipps, den Leitfaden zur Speicheroptimierung an oder hol dir die neueste Hermes-Version über die Installationsanleitung.