É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 |
Ressources
- example.env.example1 KB
- pybank_agent.py8 KBVoir
- ymlci-eval.yml1 KBVoir
- jsonevalset.json2 KBVoir
- jsonguardrail_cases.json1 KBVoir
- pyguardrails.py3 KBVoir
- pyharness.py5 KBVoir
- jsonhuman_labels.json2 KBVoir
- pyllm_judge.py4 KBVoir
- mdrapport.md1 KBVoir
- pyreport.py3 KBVoir
- txtrequirements.txt1 KBVoir
- jsonresults.json7 KBVoir
- pyrun_all.py1 KBVoir
- jsontest_config.json1 KBVoir
- pytest_lab.py4 KBVoir
Références
- 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