Évaluation avancée des agents : trajectoires, juges calibrés et garde-fous testés
Évaluer un agent ADK sur ce qu'il fait (outils, ordre, arguments) et sur ce qu'il dit, calibrer un LLM-juge contre des annotations humaines, prouver ses garde-fous par des tests et bloquer une mise en production en CI.
« L'agent a bien répondu » ne suffit pas. Un agent de support peut donner le bon solde en ayant appelé le mauvais outil, réussir neuf demandes sur dix et exécuter un virement interdit à la dixième, ou être noté « excellent » par un LLM-juge qui ne mesure pas ce que vous croyez. Cette formation vous apprend à évaluer un agent comme un système : ce qu'il fait, ce qu'il dit, et ce qu'il ne doit jamais faire.
Fil rouge : l'assistant de support d'une banque fictive, la Banque Atelier, en deux versions. La v1 est naïve (l'identité du client vient du modèle, aucun contrôle des virements dans le code). La v2 est durcie (identité de session, garde-fou en code). Vous mesurez l'écart entre les deux, chiffres réels à l'appui.
Pour qui ?
- Développeurs et responsables qualité qui ont déjà construit un agent ADK avec des outils.
- À l'aise avec Python et
pytest. Aucune expérience préalable de l'évaluation de LLM n'est nécessaire.
Ce que vous construisez
flowchart LR
E[("evalset.json (format ADK)")] --> H["harness.py : trajectoires"]
G[("guardrail_cases.json")] --> GF["guardrails.py : règles vérifiées en code"]
L[("human_labels.json")] --> J["llm_judge.py : juge + calibration"]
A["bank_agent.py v1 / v2"] --> H
A --> GF
H --> R["run_all.py → results.json"]
GF --> R
J --> R
R --> C["report.py --ci : rapport.md + seuils"]
C -->|"code de sortie 1"| X["mise en production bloquée"]
Prérequis techniques
- Python 3.10 ou plus récent,
pip install -r requirements.txt(ADK 2.10.0). - Une clé Gemini (Google AI Studio) ou un projet Google Cloud avec Vertex AI.
Programme
| Module | Leçons | Durée indicative |
|---|---|---|
| 1. Évaluer la trajectoire | Réponse et trajectoire ; harnais de trajectoire ; adk eval | 1h45 |
| 2. Juger les réponses | LLM-juge et grille ; calibration contre des annotations humaines | 1h15 |
| 3. Garde-fous, red teaming et CI | Tester les garde-fous ; red teaming (principes) ; projet final en CI | 1h30 |
Code complet dans files/ : bank_agent.py, harness.py, guardrails.py, llm_judge.py, run_all.py, report.py, test_lab.py, et le rapport réellement produit : rapport.md.
En local ou avec Vertex AI ?
| Sans GCP (clé Gemini) | Avec GCP (Vertex AI) | |
|---|---|---|
| Variables | GOOGLE_API_KEY, GOOGLE_GENAI_USE_VERTEXAI=FALSE | GOOGLE_GENAI_USE_VERTEXAI=TRUE, GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION |
| Code | identique | identique (le SDK google-genai choisit le service) |
| À grande échelle | votre harnais | aussi le service d'évaluation de Google Cloud |
Resources
- example.env.example1 KB
- pybank_agent.py8 KBView
- ymlci-eval.yml1 KBView
- jsonevalset.json2 KBView
- jsonguardrail_cases.json1 KBView
- pyguardrails.py3 KBView
- pyharness.py5 KBView
- jsonhuman_labels.json2 KBView
- pyllm_judge.py4 KBView
- mdrapport.md1 KBView
- pyreport.py3 KBView
- txtrequirements.txt1 KBView
- jsonresults.json7 KBView
- pyrun_all.py1 KBView
- jsontest_config.json1 KBView
- pytest_lab.py4 KBView
References
- ADK : évaluer un agent (evalset, adk eval, critères)google.github.io
- ADK : callbacks (before_tool_callback…)google.github.io
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (Zheng et al., 2023)arxiv.org — Accord juge / humains et biais connus des LLM-juges
- Service d'évaluation de l'IA générative (Google Cloud)docs.cloud.google.com
- OWASP Top 10 for LLM Applicationsgenai.owasp.org
- PyRIT (Microsoft) : outillage de red teaming pour l'IA générativegithub.com
- promptfoo : tests et red teaming de LLM en CIgithub.com