preatorlabs
prompt debugger · v0.1

Quelles parties de ton prompt comptent vraiment ? Mesure-le, segment par segment.

preatorlabs est un outil d'analyse expérimentale : une étude d'ablation rigoureuse, sur trois axes orthogonaux, qui révèle ce que chaque partie de ton prompt fait réellement faire au LLM. Pas d'avis subjectif. Que des mesures.

le problème

Aujourd'hui, ajuster un prompt, c'est jouer à pile ou face.

Le cycle standard de l'ingénierie de prompt consiste à rédiger, tester, ajuster — sans savoir ce qui produit quoi. Une phrase apparemment décorative peut être critique. Une phrase apparemment essentielle peut être ignorée. On modifie à l'aveugle.

01rédiger un prompt
02l'injecter dans le LLM
03tester sur quelques inputs
04ajuster à l'aveugle

Trois conséquences mesurables :

  • régression on supprime un segment apparemment décoratif qui était en fait critique pour un cas d'usage rare.
  • inflation on accumule des phrases "au cas où" sans savoir qu'elles sont ignorées par le modèle.
  • faux positifs on attribue à une phrase un effet qui vient en réalité d'une autre partie du prompt.
la méthode

Une étude d'ablation, sur trois axes orthogonaux.

preatorlabs s'inspire d'une méthode bien connue en science expérimentale : pour mesurer la contribution d'un élément à un système, on le retire et on observe ce qui change. Appliquée au prompt, segment par segment, et croisée avec plusieurs scénarios de test.

Le principe. Pour chaque segment du prompt, on génère deux versions de la réponse à un même input : avec le segment, et sans. La différence entre ces deux outputs est mesurée selon trois dimensions distinctes. La répétition sur plusieurs scénarios donne deux signaux : l'impact moyen du segment (combien il pèse en moyenne) et la variance entre scénarios (est-il actif partout, ou seulement dans certains cas).

# Pour chaque segment Si et chaque scénario Tj : baseline(Tj) = LLM(prompt_complet, input=Tj, T=0) ablation(Si, Tj) = LLM(prompt_sans_Si, input=Tj, T=0) delta_a(Si, Tj) = score_a(baseline) − score_a(ablation) # a ∈ { structurel, comportemental, sémantique } impact(Si) = mean over j, a of |delta_a(Si, Tj)| variance(Si) = std over j of impact(Si, j)

Les trois axes de mesure

Chacun répond à une question différente. La décomposition permet de comprendre pourquoi un segment compte, pas seulement combien il compte.

axe 1
Structurel
L'output respecte-t-il le format attendu ?

Longueur, présence de listes, validité d'un JSON, absence d'astérisques. Mesure binaire par parsing local — coût computationnel nul, objectivité absolue.

parsing · regex · comptage
axe 2
Comportemental
L'output suit-il les règles métier ?

Présence ou absence de termes attendus / interdits, conformité à des patterns logiques. Détection lexicale par matching de chaînes — coût nul, vérifiable.

exact match · liste lexicale
axe 3
Sémantique
Le sens et le style sont-ils préservés ?

Distance cosinus entre les embeddings des deux outputs. Capture les changements de ton, de registre, de structure narrative — invisibles aux autres axes.

embeddings · cosinus
comment ça marche

Quatre étapes, vingt minutes.

Le parcours utilisateur est conçu pour aller du prompt brut au verdict actionnable sans friction. Pas d'inscription, pas de backend.

étape 1
Colle ton prompt

L'intégralité de ton prompt système, tel quel. La segmentation automatique propose un découpage par paragraphes et titres. Tu peux éditer chaque segment, fusionner ou supprimer.

étape 2
Ajoute des scénarios

5 à 8 inputs utilisateur représentatifs des cas d'usage du prompt. C'est ce qui révèle la variance entre segments universels et segments contextuels.

étape 3
Lance l'analyse

L'outil exécute N×M+M appels API Claude avec ta clé, à température 0. Coût et durée affichés avant lancement. Sauvegarde automatique en cas d'interruption.

étape 4
Lis les résultats

Un graphique de variance + décomposition par axe + synthèse en trois listes : à conserver, à surveiller, candidats à la suppression. Lecture en 30 secondes.

comment lire

Six verdicts, une grille de décision.

Le résultat principal est un graphique de variance, où chaque barre représente un segment. La hauteur dit l'impact, la barre d'erreur dit la variance. Le croisement des deux donne un verdict précis et actionnable.

verdict signal interprétation action
critical impact ≥ 60 % · variance < 15 % Segment fondamental, actif sur tous les scénarios. Ne pas toucher.
fort impact impact ≥ 45 % · variance < 20 % Important et stable. Porte une part claire du style ou de la logique. Modifier avec prudence.
contextuel variance ≥ 25 % Filet de sécurité. N'agit que sur certains scénarios mais y est décisif. Garder. Précieux malgré un impact moyen modéré.
modéré 20 % ≤ impact < 45 % Effet réel mais limité. Peut être affiné. Reformuler ou condenser si la place compte.
faible 10 % ≤ impact < 20 % Peu d'effet. Possible redondance avec un autre segment. Tester une ablation combinée avant suppression.
placebo impact < 10 % Pas pris en compte par le LLM, malgré une formulation explicite. Supprimer ou reformuler en règle opérationnelle.
démo

Essaie sur ton prompt.

Colle ton prompt système, ajoute quelques scénarios représentatifs, configure les critères et lance l'analyse. L'outil tourne entièrement dans ton navigateur — ta clé API et tes prompts ne sont envoyés qu'à Anthropic.

prompt debugger
aucune clé configurée
Ton prompt système
Colle l'intégralité du prompt. La segmentation est automatique : découpage par paragraphes, titres et règles numérotées. 0 segments détectés
Scénarios de test 0 scénarios
Inputs utilisateurs représentatifs. 5 à 8 scénarios variés donnent la meilleure estimation de variance.
Critères d'évaluation
Définis comment l'outil mesure la qualité d'un output sur chaque axe.
axe structurel parsing binaire
axe comportemental détection lexicale
axe sémantique embeddings + cosinus

Comparaison output-complet vs output-ablé. Aucune configuration requise.

Paramètres du moteur
modèle cible
température
0 isole le signal d'ablation
0 appels API estimés

Prêt à lancer l'analyse. Le moteur exécutera 0 appels API sur ta clé.

Aucune analyse lancée. Configure puis lance l'analyse pour voir les résultats.
questions fréquentes

Ce que tu te poses comme question.

Pourquoi pas un LLM qui juge la qualité du prompt ?

Parce qu'un LLM-juge produit une réponse plausible, pas une mesure. La sortie dépend du LLM utilisé, du wording de la consigne, et n'est pas reproductible. preatorlabs reste strictement sur des métriques parsables ou calculables. Détail dans la rationale scientifique.

Combien ça coûte vraiment ?

Le coût est linéaire : N×M+M appels API où N = segments et M = scénarios. Exemple Reachy (12 segments, 6 scénarios) = 78 appels ≈ $0.20 sur Claude Haiku, $1 sur Sonnet, $5 sur Opus (plafond max_tokens, en pratique souvent moins). L'estimation $ est affichée avant chaque lancement.

Mes données partent où ?

Nulle part sauf chez Anthropic. preatorlabs n'a aucun backend, aucun tracking, aucun cookie d'analytics. Ton prompt, tes scénarios, tes résultats et ta clé API restent dans ton navigateur (localStorage). La clé sert exclusivement à appeler api.anthropic.com. Détails dans la section privacy ci-dessous.

Pourquoi seulement Claude en V0.1 ?

Parce que les APIs CORS-friendly côté navigateur sont encore inégales. Anthropic expose un header officiel (anthropic-dangerous-direct-browser-access) qui permet d'appeler son API depuis un navigateur sans backend. Le support OpenAI, Gemini et Mistral est planifié en V3 via le moteur Python optionnel.

Comment preatorlabs gère un prompt très long ?

L'outil te prévient au-delà de ~10 000 tokens estimés (≈ 40 000 caractères) et au-delà de 150 appels totaux. Tu peux quand même lancer, mais tu seras alerté du coût et de la durée. Pour des batches très volumineux, le moteur Python V1 est plus adapté.

Que se passe-t-il si l'analyse plante au milieu ?

Chaque appel réussi est sauvegardé en localStorage au fur et à mesure. Si l'analyse échoue (réseau, rate limit non récupérable, fermeture d'onglet), un bandeau "Reprendre l'analyse interrompue" apparaît au prochain lancement. Tu reprends exactement à l'appel suivant, sans rejouer ce qui a déjà été calculé.

Le projet est-il open source ?

Oui, licence MIT. Le code source est sur GitHub. Les choix méthodologiques sont documentés dans docs/01-SCIENTIFIC-RATIONALE.md et docs/02-METHODOLOGY.md.

privacy

Privacy-by-design, sans clause cachée.

preatorlabs fonctionne entièrement dans ton navigateur. Aucun backend, aucun tracking, aucun cookie. Les choix techniques rendent l'exfiltration impossible.

Ce qui reste sur ta machine

Stocké en localStorage uniquement, dans l'origine de ce site :

  • preatorlabs.apiKey — ta clé API Anthropic
  • preatorlabs.runState — sauvegarde incrémentale d'une analyse en cours, pour reprise après erreur
  • preatorlabs.lastResults — derniers résultats agrégés

Le bouton "Supprimer la clé" et un effacement manuel via les outils du navigateur suffisent à tout retirer.

Ce qui sort de ton navigateur

Strictement les requêtes vers api.anthropic.com : ton prompt système, le scénario testé, ta clé en header. Rien d'autre.

La Content-Security-Policy de la page interdit toute requête sortante vers un autre domaine que api.anthropic.com (et les CDN de polices/Chart.js). Une injection malveillante ne pourrait pas exfiltrer de données.

Aucun analytics, aucun pixel, aucun script tiers de tracking. Pas de Google Fonts en mode tracking — uniquement le CSS et les fichiers WOFF2.