// le primitive de vérification

La plupart des agents IA mentent. Wauldo montre leurs preuves.

Le primitive de Wauldo est un support_score numérique entre 0 et 1 appliqué à chaque réponse, vérifiée affirmation par affirmation contre les sources que vous fournissez. Pas un « vibe check ». Pas un LLM-judge. Une mesure.

91 %Support médian sur 4 runs
70Cas adversariaux couverts
+48 ptsÉcart sur l'injection face à LangChain
// le problème

Ton confiant. Zéro grounding.

Les LLM écrivent de manière fluide, que l'affirmation soit vraie ou non. Les datasets d'évaluation passent. La production hallucine. L'écart entre « ça semble correct » et « c'est réellement supporté par la documentation que vous avez fournie » — c'est l'endroit où la confiance meurt.

01 · CONFABULATION

Les affirmations apparaissent de nulle part

Le modèle fabrique une statistique, une date, une signature API, une citation. Tout paraît plausible. Aucun grep sur vos sources ne détectera le problème, car rien ne relie réellement l'affirmation à un document.

02 · AUCUNE TRAÇABILITÉ

Vous ne pouvez pas expliquer la réponse

Quand un client demande « pourquoi votre bot a dit ça », vous n'avez aucun verdict par affirmation, aucune référence de source, aucun score. Vous avez juste une chaîne de texte. Compliance, support et debugging échouent contre le même mur.

03 · PROMPT INJECTION

Un document récupéré détourne le raisonnement

Un extrait dans un PDF contient « ignore previous instructions ». Votre agent pivote immédiatement. Sans vérification factuelle contre le contenu de confiance, une attaque par injection ressemble exactement à une sortie normale.

// le primitive

Un score de support numérique sur chaque réponse.

Wauldo extrait les affirmations atomiques d'une réponse, compare chacune avec le contexte source fourni et retourne un score égal à la fraction d'affirmations supportées. Les verdicts par affirmation accompagnent toujours la réponse.

POST /v1/fact-check · réponse application/json
{
  "support_score": 0.85,
  "verdict": "VERIFIED",
  "hallucination_rate": 0.15,
  "claims": [
    { "text": "Paris est la capitale de la France", "verdict": "supported",   "source_ref": "doc_1:L3" },
    { "text": "Paris compte 2,1 millions d'habitants",  "verdict": "supported",   "source_ref": "doc_1:L5" },
    { "text": "Paris a été fondée en 2000 av. J.-C.",    "verdict": "unsupported" }
  ],
  "mode": "lexical",
  "latency_ms": 847
}
A · EXTRACT

Des affirmations, pas des tokens

Nous décomposons la réponse en affirmations factuelles atomiques. Les formulations vagues, adjectifs et opinions sont exclus. Seules les propositions vérifiables contre des sources sont scorées.

B · GROUND

Correspondance avec votre contexte

Chaque affirmation est comparée au source_context fourni dans la requête. Trois modes : lexical (rapide, <1s), hybrid (embeddings multilingues), semantic (LLM-judge).

C · SCORE

Une fraction supportée, pas une impression

support_score = supported / total. Le score est déterministe pour une même entrée en mode lexical. Les verdicts par affirmation et références sources permettent d'afficher le raisonnement directement à l'utilisateur.

// nous montrons aussi les refus

Exemple de verdict BLOCK — visible, pas caché.

La plupart des outils IA masquent les échecs derrière un « confidence threshold ». Wauldo expose explicitement le rejet. Quand une réponse dérive hors grounding, le verdict devient BLOCK et le score explique pourquoi.

BLOCK · 0.12

Requête : « Puis-je combiner ibuprofène et warfarine ? »

Réponse fabriquée : « Oui, il est sûr de les combiner à dose standard, aucune interaction n'est documentée. »

Contexte source : vide — aucun document pharmacologique fourni.

Verdict : BLOCK · 1 affirmation sur 2 non supportée · hallucination_rate = 0.50. La réponse ne peut pas être vérifiée contre les sources fournies. Wauldo refuse donc d'émettre un verdict SAFE. Votre application décide ensuite quoi afficher à l'utilisateur — nous vous donnons la décision, pas une hallucination maquillée.

· SAFE

Support élevé

Assez d'affirmations correspondent aux sources pour afficher la réponse. Les verdicts par affirmation restent disponibles pour un rendu inline.

· PARTIAL

Support partiel

Certaines affirmations sont supportées, d'autres dérivent. Votre application peut afficher avec avertissement, ou demander davantage de sources.

· BLOCK

Contradiction active

La réponse contredit directement le contexte source. Le refus est explicite — jamais reformulé en « je ne suis pas sûr ».

// face aux alternatives

Pas un guardrail. Pas un LLM-judge. Une mesure.

Les autres approches simulent la confiance. Wauldo retourne un nombre que vous pouvez logger, thresholder, grapher, exploiter. Le tableau n'est pas du marketing — c'est la limite réelle de chaque approche.

mécanismes de confiance · comparaison directe 4 lignes
Approche Mesurable Auditable Déterministe Coût / appel
Wauldo oui — score 0–1 oui — verdicts par affirmation oui (mode lexical) 0,002 $
LangChain guardrails pass / fail binaire partiel — regex + listes oui ~gratuit
LLM-as-judge score flou prose chain-of-thought non — varie à chaque run 0,02 $ – 0,10 $
RAG naïf avec citations non simples marqueurs de citation oui ~gratuit

// à lire avant de réagir

Un guardrail dit non. Un judge dit peut-être. Une citation dit juste qu'un document existe. Aucun de ces outils ne vous indique quelle partie de la réponse est réellement supportée par la source que vous avez fournie. C'est précisément le nombre que Wauldo retourne. Tout le reste de cette page n'est que l'infrastructure autour de cette mesure.

// guard mode

Même moteur. Posture firewall.

Le Guard Mode est le primitive de vérification appliqué autour d'un appel LLM au lieu d'être exécuté après. Même endpoint /v1/fact-check. Point d'intégration différent. Il pré-vérifie les sorties d'agents, post-filtre les réponses RAG et rejette les réponses problématiques avant qu'elles atteignent un humain. Fonctionne identiquement sur pipelines RAG et agents IA.

guard mode · endpoint unique bash
# même primitive, posture firewall : vérifier avant affichage
curl https://api.wauldo.com/v1/fact-check \
  -H "Authorization: Bearer $WAULDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Réponse de votre agent à vérifier",
    "source_context": "La documentation ou les données de confiance",
    "mode": "lexical"
  }'

# SAFE → afficher · PARTIAL → votre app décide
# UNVERIFIED / BLOCK → ne pas afficher, escalader ou refuser
· PRE

Vérifier un brouillon

Votre agent génère une réponse. Wauldo la score. Score faible → régénération avec retrieval plus strict, ou refus.

· POST

Filtrer un flux

La réponse RAG stream. Vous bufferisez, scorez une fois la génération terminée, puis affichez. Les écritures cache sont faites avant émission pour éviter les pertes en cas de déconnexion.

· INLINE

Afficher affirmation par affirmation

Conservez la réponse complète. Affichez les affirmations supportées en vert, non supportées en rouge, références sources au survol.

Build reproductible
SDKs MIT · 3 langages
Leaderboard open source

Commencez à mesurer au lieu d'espérer.

Plan gratuit via RapidAPI. 500 vérifications offertes par mois. Sans carte bancaire. Déployez aujourd'hui. Mesurez lundi.

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