Harnais d'évaluation MCP : 12 tâches juridiques vérifiables + boucle agentique#6
Open
hermias1 wants to merge 1 commit into
Open
Harnais d'évaluation MCP : 12 tâches juridiques vérifiables + boucle agentique#6hermias1 wants to merge 1 commit into
hermias1 wants to merge 1 commit into
Conversation
… agentique Méthodologie de l'article Anthropic 'Writing effective tools for agents' : tâches réalistes vérifiables (articles versionnés, lookups par id, workflows multi-appels, robustesse), boucle agentique branchée sur le endpoint MCP réel (public par défaut — aucune DB locale requise), vérificateurs tolérants (casse/accents, pas de comptage exact), et métriques au-delà de la précision : appels de tools, erreurs, tokens (cache inclus), durée, transcripts complets dans results.json. Usage : python3 evals/run_evals.py [--dry-run|--tasks ids|--endpoint URL]. Le --dry-run (validé contre le endpoint live : 12/12) vérifie MCP + schéma des tâches sans consommer de tokens. Les attendus sont ground-truthés contre justicelibre.org/mcp (2026-07-11). Permet d'objectiver l'impact d'un changement de design des tools en comparant les runs avant/après (ex : la tâche robustesse-fts5 reproduit le crash FTS5 'syntax error near /' corrigé par ailleurs).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
JusticeLibre n'a aujourd'hui aucun moyen d'objectiver l'impact d'un changement de design des tools (description, pagination, format d'erreur, consolidation…) sur la capacité réelle d'un agent à s'en servir. Cette PR ajoute le harnais d'évaluation recommandé par l'article Anthropic Writing effective tools for agents : des tâches réalistes multi-appels avec vérificateurs, une boucle agentique sur le serveur MCP réel, et des métriques au-delà de la précision.
Concrètement : avant de merger un changement de design, on lance l'éval sur les deux versions et on compare taux de réussite / appels de tools / tokens — au lieu d'en débattre à l'intuition.
Contenu
evals/tasks.py— 12 tâches juridiques réalistes couvrant 4 dimensions : articles de loi versionnés (la killer feature), lookups par identifiant + routage inter-tools, workflows multi-appels (dont la règle impérative snippet → texte intégral), et robustesse (honnêteté sur résultat vide, récupération d'erreur). Tous les attendus sont ground-truthés contre le endpoint live (2026-07-11) — aucun fait de mémoire. Les vérificateurs sont volontairement tolérants (insensibles casse/accents, jamais de comptage exact qui dériverait avec les mises à jour DILA).evals/run_evals.py— boucle agentique (SDK Anthropic + client MCP streamable HTTP), endpoint public par défaut donc aucune DB locale requise ; appels de tools parallèles gérés, résultats tronqués à 30k chars (borne annoncée au modèle), usage tokens accumulé cache inclus, transcripts complets dansresults.json. Modèle par défautclaude-opus-4-8(--modelpour changer).evals/README.md— usage, coût indicatif, comment ajouter une tâche, limites.Mode
--dry-run(zéro token)Valide la connectivité MCP, le schéma des tâches, l'existence des tools attendus sur le serveur, et refuse tout vérificateur qui accepterait une réponse vide. Vérifié contre justicelibre.org/mcp : 12/12. Le run complet nécessite une clé
ANTHROPIC_API_KEY(je n'en avais pas sous la main — le dry-run et les vérificateurs sont testés, la boucle LLM suit strictement les patterns documentés du SDK).Bonus trouvé en ground-truthant
La tâche
robustesse-fts5reproduit un crash réel du serveur actuel :search_cjue("C-131/12 Google Spain")→fts5: syntax error near "/"(le/du numéro d'affaire). C'est précisément la famille de bugs corrigée par #4 — une fois #4 mergée, cette tâche devrait passer sans que l'agent ait à se rattraper.Volontairement hors de
tests/run_all.sh: l'éval a besoin du réseau et d'une clé API, ce n'est pas un test de régression offline.