feat(wiki-ingest): Durcir la citation obligatoire — pipeline de citations vérifiées
Provenance : adapté depuis
fyl-guidelines#10(généralisé — indépendant de tout backend LLM spécifique). Fait partie de l'EPIC #3.
Contexte
Ce template affiche "Citation obligatoire" comme règle centrale — mais c'est une instruction en langage naturel dans agents/ingest/ingest.md, que l'agent peut ne pas suivre correctement (contenu inventé, citation approximative). Le README liste explicitement "Hallucinations baked in" comme limite connue du pattern, avec pour seule mitigation actuelle "lint hebdomadaire, vérification de provenance, revue manuelle phase 1" — rien de mécanique.
Détails d'implémentation
-
Chunking : découper les sources de
wiki/raw/en chunks citables (granularité phrase) avant de les passer à l'agentingest. -
Génération contrainte : forcer la sortie de l'agent en JSON structuré
{claim, cited_text, source_ref}via décodage contraint quand le backend LLM le permet (guided/structured decoding) — le template reste agnostique du backend (self-hosted ou service tiers, au choix du fork). -
Vérification déterministe (hors LLM) : module qui confirme que chaque
cited_textexiste réellement dans le fichier source pointé parsource_ref, avant publication. C'est ce module — pas la promesse du prompt — qui transforme "citation obligatoire" en garantie vérifiable. - Post-traitement : toute affirmation sans citation validée est flaguée (log + rapport), jamais publiée silencieusement.
- Hors scope : la synthèse cross-pages (réorganisation, reformulation) — voir la sous-issue "Agent fidelity-checker".
Critères d'acceptation
-
Phase d'extraction de ingest.mddocumentée/migrée vers : chunking + génération contrainte + vérification déterministe -
Module de vérification déterministe implémenté et testable indépendamment du backend LLM utilisé -
Post-traitement qui signale toute affirmation sans citation validée -
Test de non-régression : injecter volontairement une affirmation sans source dans un wiki de test, vérifier qu'elle est bien flaguée