// pour agents multi-étapes

L'étape 3 invente un fait. L'étape 5 s'y engage. À l'étape 8, c'est décoratif.

Les agents accumulent les hallucinations. La légère dérive de chaque étape devient la ground truth de la suivante. Un tool call est « rappelé » de façon inexacte deux étapes plus loin. Une citation fabriquée se retrouve quotée comme source. Quand un utilisateur voit la réponse finale, le raisonnement n'est plus que de la fiction déguisée en audit trail. Wauldo score chaque étape, ou le run entier, contre les vraies sorties de tools.

// dérive cumulative

Chaque tool call est une nouvelle surface d'hallucination.

01 · TOOL CONFABULATION

L'agent « appelle » un outil de recherche mais se trompe sur les résultats dans son raisonnement deux étapes plus loin. La sortie du tool est dans la trace. L'affirmation dans la réponse finale, non. Personne ne le remarque jusqu'à ce qu'un user la copie dans Slack.

02 · GROUNDING SELF-RÉFÉRENTIEL

L'étape N traite l'affirmation fabriquée de l'étape N-1 comme une vérité source. La chaîne paraît rigoureuse — chaque étape « cite » la précédente — mais la racine est inventée. Les boucles ReAct avec introspection aggravent ça, pas l'inverse.

03 · GAP D'ÉVAL

Votre bench agent (AgentBench, SWE-bench, ToolBench) score bien. La prod échoue contre des users adversariaux à 40 % et plus. Les benchmarks canoniques testent la complétion de tâche, pas le grounding des outputs. Shipper exige une mesure séparée.

// deux modes d'intégration

Vérification inline, ou audit run-level.

MODE · INLINE

Vérifiez chaque étape de l'agent dans la boucle. Passez l'output de l'étape et son contexte source (résultat de tool, chunk récupéré, raisonnement précédent). Utilisez le support_score retourné pour short-circuiter les branches faibles, retenter le tool call, ou forcer l'agent à re-planifier. Ajoute de la latence par étape, attrape la dérive tôt, garde les réponses finales propres.

MODE · AUDIT

Lancez l'agent complet. À la fin, vérifiez l'output final contre les traces de tools concaténées comme sources. Bon pour l'analyse log-time sans changer le hot path. Utilisez le verdict pour tagger les runs en revue humaine, ou comme filtre post-hoc avant retour utilisateur. Un seul appel, aucune perturbation de la boucle.

// 10 lignes

Wauldo autour de n'importe quelle boucle d'agent.

from wauldo import Wauldo

w = Wauldo(api_key=os.environ["WAULDO_API_KEY"])

# N'importe quel framework agent — LangChain, LlamaIndex, custom
agent = build_agent(tools=[search, calculator, db_query])
result = agent.run(query)

# tool_outputs = observations concaténées sur toutes les étapes
verified = w.fact_check(
    text=result.final_answer,
    source_context=result.tool_outputs,
    mode="hybrid",
)

if verified.support_score < 0.6:
    return {"answer": result.final_answer, "warning": "grounding faible"}
// bench adversarial agent

92 % de résistance à l'injection. 48 points devant LangChain.

Framework Factuel Injection Hors périmètre Total
Wauldo 100 92 100 91
LlamaIndex 81 48 72 68
LangChain 78 44 70 66
Haystack 73 41 65 60
CrewAI 71 38 63 58

Reproduire : git clone github.com/wauldoai/wauldo-leaderboard && cargo run · méthodologie complète →

PREUVE PAR ABLATION

On a lancé LangChain + Wauldo Guard en couche post-hoc. Le score d'injection est resté à 44 %. L'écart de +48 pts ne vient pas de l'ajout d'une couche — il vient de la vérification dans la boucle. Robustesse au niveau système, pas bolt-on. Lire l'étude d'ablation →

// autres cas d'usage

Vérification à travers la stack.

// faq

Questions sur les agents, répondues.

Quels frameworks d'agents sont supportés ?

Framework-agnostique. N'importe quel agent qui produit (final_answer, tool_outputs) — ou par étape (step_output, step_context) — peut être wrappé. LangChain, LlamaIndex, CrewAI, AutoGen, boucles ReAct custom, Rust, Go, Python. L'API est HTTP, pas une intégration framework.

Faut-il changer mes prompts ?

Non. Wauldo est orthogonal au prompting. Il score ce qui sort. Changez les prompts pour réduire le taux de dérive ; gardez Wauldo pour mesurer si ça a marché.

Puis-je vérifier les étapes intermédiaires ?

Oui. Appelez fact_check par étape avec l'output de l'étape et son contexte local (le résultat du tool, le chunk récupéré, le raisonnement précédent). Voir le mode inline ci-dessus. Le trade-off est de la latence par étape contre un contrôle plus strict de la dérive.

Ça gère les traces d'agent en streaming ?

La vérification tourne sur le texte complet. Bufferisez la réponse finale (ou l'output de l'étape) avant de scorer. Pour l'UX token-by-token, streamez à l'utilisateur, puis vérifiez en tâche de fond et confirmez ou rétractez.

Et l'auto-réflexion d'agent ?

L'auto-réflexion suppose que l'agent sait quand il a tort. S'il le savait, il n'aurait pas halluciné en premier lieu. L'auto-critique est corrélée aux mêmes points aveugles que la génération initiale. Utilisez une mesure externe.

Mesurez chaque étape. Arrêtez de faire confiance au raisonnement.

Offre gratuite. 500 vérifications/mois. Sans carte bancaire.

$ curl api.wauldo.com/v1/fact-check