Agents documents : OCR, parsing, tables et citations
Agents documents : OCR, parsing, tables et citations
Comment construire un agent IA “documents” en 2026 : OCR vs VLM, parsing (Unstructured), extraction structurée, tables, citations, et traçabilité.
Réservez votre diagnostic IA
Un expert Webotit analyse vos flux, identifie les quick-wins et vous propose une feuille de route personnalisée.
45 min · Gratuit · Réponse sous 24h
Voir les disponibilitésUn agent documents n’est pas un chatbot qui lit un PDF. C’est une chaîne : ingestion, OCR ou parsing, structuration des champs et tables, décision LLM plus règles, puis sortie avec citations et audit. En entreprise, le meilleur pattern reste souvent hybride : extraction dédiée pour la preuve, puis LLM pour l’interprétation.
Le document est le boss final du B2B
Quand on vend des agents en entreprise, on finit toujours par tomber sur un PDF.
Même quand on n’a rien demandé.
Le document est partout :
- contrats,
- avenants,
- factures,
- relevés,
- formulaires,
- scans moches,
- tableaux en diagonale (pourquoi ?),
- et “petites notes” qui contiennent l’information critique.
Donc les agents “documents” sont un cas d’usage central, mais aussi une zone de danger :
- hallucinations (“il a inventé une clause”),
- erreurs de lecture (OCR bancal),
- perte de structure (tableaux devenus soupe de texte),
- et surtout : absence de preuve.
En entreprise, la question n’est pas “est-ce que l’agent est intelligent ?”. La question est :
“Peux-tu me montrer d’où tu sors ça ?”
Si vous ne pouvez pas répondre, vous n’avez pas un agent. Vous avez une opinion bien formulée.
Le pipeline qui tient : ingestion → OCR/parsing → structuration → décision → citations
Il y a mille variantes, mais les briques sont toujours les mêmes.
1) Ingestion (et normalisation)
Objectif : transformer “un PDF envoyé par mail” en objet gouvernable :
- identifiant,
- hash (déduplication),
- métadonnées (client, dossier, date),
- stockage brut sécurisé,
- et trace (qui l’a envoyé, quand).
Rien n’est sexy ici. Tout est rentable.
2) OCR / parsing : extraire le contenu et la structure
Selon vos documents, vous utilisez :
- OCR (si scan/photographié),
- parsing (si PDF texte, Word, HTML),
- ou hybride.
Unstructured se décrit comme une solution open source d’ETL pour transformer des documents en formats structurés “ready for LLMs”.12
Et sa doc insiste sur la partition (partitioning) : extraire un document en “éléments” structurés (titres, paragraphes, tables, etc.).2
3) Structuration : champs, tables, sections, pages
Ici, votre objectif n’est pas “du texte”. Votre objectif est une représentation exploitable :
- champs extraits,
- tables alignées,
- sections détectées,
- pages + positions,
- et liens vers la source brute.
Exemple : Textract documente comment extraire des tables et des cellules (headers, merged cells, etc.).3
Et si vous avez besoin de “preuves” (bounding boxes), des formats comme hOCR existent ; Tesseract explique qu’il peut produire un output XHTML conforme à la spec hOCR via une config dédiée.4
4) Décision : LLM + règles (pas LLM à la place des règles)
Une fois la structure extraite :
- le LLM interprète (classer, résumer, décider, rédiger),
- et vos règles vérifient (plafonds, cohérence, conformité).
Le LLM est excellent pour :
- comprendre une clause,
- reformuler proprement,
- repérer une anomalie (“ce champ est incohérent”).
Il est mauvais pour :
- garantir une règle business,
- appliquer des seuils sans erreur,
- être idempotent sur une action.
5) Citations : pointer et prouver (sinon vous ne déployez pas)
L’agent doit rendre :
- la réponse,
- plus les citations (source, page, extrait),
- plus un “explain plan” (ce qu’il a fait),
- plus des traces (tool calls, erreurs, retries).
Sans citations, vous avez un agent “marketing”. Avec citations, vous avez un agent “production”.
OCR vs VLM vs hybride : le cas du PDF de 120 pages
On me demande souvent :
“Pourquoi pas un VLM direct ?”
Parce que la prod aime les choses vérifiables.
Option A — VLM direct
Avantages :
- simplicité conceptuelle,
- compréhension visuelle de la mise en page,
- parfois très bon sur des documents courts.
Limites typiques :
- coûts/latence sur des gros documents,
- difficulté à citer précisément,
- et gestion multi-pages qui peut devenir un sport.
Option B — OCR dédié + LLM (le pattern le plus robuste)
Avantages :
- texte indexable (RAG),
- citations page/section,
- versioning,
- retries plus propres.
Exemples OCR cloud :
- Google Document AI propose un “Enterprise Document OCR”.5
- Amazon Textract extrait texte + tables (et plus).3
Exemples OCR “LLM-ish” :
- Mistral documente OCR 3 comme un modèle OCR (ex.
mistral-ocr-2512) intégré à son stack Document AI.67
Exemples open source :
- Tesseract (Apache 2.0) est un moteur OCR open source.8
Option C — Hybride (souvent le meilleur compromis)
Pattern recommandé :
- OCR/parsing pour extraire et indexer (RAG, citations),
- VLM (ou modèle multimodal) uniquement quand la mise en page porte le sens (tableaux tordus, scans),
- LLM pour interpréter et écrire la décision.
Parsing & structure : Unstructured (et pourquoi “juste du texte” ne suffit pas)
Le problème des documents, ce n’est pas l’absence de texte. C’est la structure.
Unstructured présente des capacités de partitioning pour transformer des fichiers “complexes” en éléments structurés.2
Ce que vous gagnez :
- séparer titres vs paragraphes vs listes,
- isoler tableaux,
- détecter sections,
- et produire un JSON exploitable.
Pourquoi c’est clé ?
Parce qu’un agent qui doit répondre à :
“Quel est le plafond d’indemnisation et où est-il mentionné ?”
… doit retrouver la bonne section, pas juste “une phrase au hasard”.
Tables : l’endroit où les agents perdent leur dignité
Les tableaux sont le cimetière des pipelines “vite faits”.
Textract documente explicitement l’extraction de tables et de cellules, avec des attributs comme headers, merged cells, etc.3
Et côté Mistral, le changelog mentionne des options de formatage de tables dans l’OCR API (choisir markdown ou HTML via un paramètre).9
Traduction : la table est un objet. Traitez-la comme un objet.
Sinon, vous aurez :
- des colonnes qui glissent,
- des montants associés aux mauvaises lignes,
- et des décisions absurdes… parfaitement cohérentes avec une mauvaise extraction.
Extraction structurée : JSON schema, validations, et “ne pas inventer”
Une règle d’or :
Un agent documents doit sortir du structuré avant de sortir du texte.
Sinon, vous ne savez pas ce qu’il “a compris”.
Pattern robuste :
- extraction champs → JSON (avec schema strict),
- validation (types, champs obligatoires),
- puis rédaction (texte, mail, rapport) à partir du JSON validé.
Ça réduit :
- les hallucinations,
- les champs “oubliés”,
- et les surprises en prod.
Citations & audit : comment rendre un agent acceptable pour un assureur
Dans l’assurance, le document n’est pas juste un input. C’est une pièce de conformité.
Donc votre agent doit pouvoir :
- citer la page,
- citer l’extrait,
- et expliquer la règle appliquée.
On peut implémenter ça simplement :
- chaque chunk porte :
doc_id,page,section,bbox(si dispo), - chaque extraction garde un lien :
field -> chunk_id, - chaque décision garde :
decision -> fields -> chunks.
Résultat : quand on vous demande “pourquoi ce montant ?”, vous pointez.
Sans ça, vous ne déploierez pas au-delà du POC.
Open source vs cloud : une stratégie “mix” est souvent la meilleure
Open source
- Unstructured (open source) pour transformer documents en éléments structurés.12
- Tesseract pour OCR (self-host).8
Avantages : contrôle, on-prem, coût marginal.
Limites : qualité OCR variable, tuning, maintenance.
Cloud / commercial
- Google Document AI (Enterprise Document OCR).5
- AWS Textract (tables/forms).3
- Mistral OCR 3 + Document AI stack (modèle
mistral-ocr-2512).67
Avantages : time-to-market, qualité, features (tables, pipelines).
Limites : gouvernance fournisseur, coûts, dépendance.
Chunking & retrieval : “RAG” pour documents, mais version adulte
Beaucoup d’équipes font du RAG “classique” sur des documents :
- OCR → gros texte,
- chunking arbitraire (500 tokens),
- embeddings,
- retrieval,
- réponse.
Ça marche… jusqu’au moment où :
- vous devez citer une page,
- vous devez retrouver une clause exacte,
- ou vous devez extraire une valeur d’un tableau.
Dans un agent documents, le chunking n’est pas une optimisation. C’est une partie du contrat.
Chunking par structure (pas par tokens)
La doc Unstructured insiste sur le partitioning en éléments (titres, paragraphes, tables).2
L’idée “prod” :
- un chunk = un élément logique,
- chaque chunk porte la provenance (doc_id, page, section),
- et on garde le lien vers le brut.
Vous obtenez :
- retrieval plus propre (moins de bruit),
- citations “naturelles” (page/section),
- et moins de réponses “à côté”.
Hybrid search : quand les nombres et les codes comptent
Les documents métiers contiennent :
- des codes (références, numéros de contrat),
- des montants,
- des dates,
- des sigles.
Ces tokens sont parfois mieux servis par du keyword search que par des embeddings.
Donc, en pratique, vous combinez :
- vector search (sémantique),
-
- keyword/BM25 (exact).
Et vous “rerank” ensuite pour choisir les meilleurs extraits.
Le but n’est pas d’être élégant. Le but est d’être juste.
Citations : la règle “pas de chunk, pas de claim”
La règle que j’aime bien imposer :
- si l’agent affirme un chiffre, il doit pointer un chunk,
- si l’agent applique une clause, il doit pointer un chunk,
- si l’agent n’a pas de chunk… il demande.
Ça réduit drastiquement les hallucinations, parce que vous transformez l’agent en système “citation-first”.
Erreurs fréquentes (et comment les diagnostiquer sans pleurer)
Un agent documents échoue souvent de façon très terre-à-terre :
-
OCR “0/O” ou “1/I”
Ça paraît bête, mais un identifiant mal lu peut casser une intégration entière. -
Séparateurs décimaux
1,234 vs 1.234 : si votre pipeline ne normalise pas, vous fabriquez des anomalies. -
Tables qui glissent
Un montant associé à la mauvaise ligne. Textract documente des structures de tables ; utilisez-les, et testez sur vos tables réelles.3 -
Pages scannées “invisibles”
Un PDF mixte (texte + scan) : certaines pages nécessitent OCR, d’autres non. -
Documents non fiables (prompt injection)
Un PDF peut contenir des instructions malveillantes (“ignore les règles”). La mitigation est la même que pour le RAG : isoler les données non fiables, filtrer, et garder les instructions système immuables.
Le point commun : sans traçabilité (quel OCR ? quel chunk ? quelle page ?), vous ne débuggez pas. Vous devinez.
Checklist “prod” : de 0 à agent documents en 10 jours
Collectez 100 documents réels (et moches)
Mélangez scans, photos, PDFs, tableaux. Si vous ne testez que du “propre”, vous testez un mensonge.
Choisissez une stratégie OCR (A/B/C)
VLM direct, OCR+LLM, ou hybride. Calibrez sur coût/latence/audit, pas sur “la meilleure réponse”.
Structurez avant de rédiger
Champs + tables + sections en JSON, validés. Le texte vient après.
Ajoutez citations et traçabilité
field -> chunk_id -> page. Sans ça, pas de confiance métier.
Mesurez et rejouez
Tracez, rejouez, comparez à l’humain. Sans replay, vous ne saurez pas pourquoi “ça rate une fois sur dix”.
FAQ
Questions frequentes
VLM direct : jamais ?
Pas “jamais”. Sur des documents courts, très visuels (captures, formulaires), ça peut être excellent. Mais sur des documents longs et paginés, OCR+LLM est souvent plus gouvernable (citations, chunking, audit).
Unstructured suffit pour tout ?
Non. Unstructured aide à structurer, mais la qualité dépend du type de documents, des tables, et de votre stratégie OCR. En prod, vous combinez souvent plusieurs briques.
Pourquoi les tables sont si difficiles ?
Parce qu’une table est un objet spatial (lignes/colonnes), pas une suite de mots. Utilisez des outils qui extraient explicitement la structure (ex. Textract tables) et testez sur vos documents.3
Comment éviter que l’agent invente ?
Extraction structurée (JSON strict) + validations + citations obligatoires sur les champs critiques. Et gardez la règle métier hors du LLM.
Sources et references
- [1]GitHub, Unstructured-IO/unstructured (open source ETL for documents).
- [2]Unstructured docs, “Partitioning” (structured elements extraction).
- [3]AWS Textract docs, “Tables” (cells/headers/merged cells).
- [4]Tesseract Wiki FAQ, “hOCR output” (XHTML/hOCR).
- [5]Google Cloud Document AI, “Enterprise Document OCR”.
- [6]Mistral Docs, “OCR 3” (mistral-ocr-2512).
- [7]Mistral AI, “Introducing Mistral OCR 3”.
- [8]GitHub, tesseract-ocr/tesseract (open source OCR engine).
- [9]Mistral Docs, changelog (table formatting option in OCR API).
Articles associés
Stack multimodale 2026 : VLM, OCR, STT, TTS, S2S (agents)
Un agent IA multimodal n’est pas “un modèle qui voit et parle”. C’est une chaîne : capteurs (image, PDF, audio), extraction (OCR/STT), décision (LLM + outils + mémoire), puis action (texte, API, TTS ou S2S). Le bon choix en 2026 dépend surtout de la prod (lat
LireMémoire d’un agent IA : RAG, state, vector DB, TTL (2026)
La “mémoire” d’un agent IA n’est pas un gros blob de texte. En production, elle se découpe : (1) state structuré (vérité du dossier), (2) RAG (documents versionnés), (3) profil (préférences stables). Le but n’est pas d’enregistrer tout, mais de rester utile,
LireObservabilité des agents IA : traces, evals, replay (2026)
En production, un agent IA doit être observable : traces (inputs, tool calls, sorties), métriques (latence, coût, taux de réussite) et évaluations (datasets, regressions, trace grading). Sans observabilité, vous ne débuggez pas : vous devinez. Et deviner ne s
Lire