Mesurer les performances d'un agent avec apollia-os eval
Pour tout operator qui veut quantifier la fiabilité d'un agent sur un ensemble de tâches reproductibles avant de l'utiliser en production.
Prérequis
- Apollia lancé, daemon actif.
- L'agent à évaluer installé.
- Un fichier
suite.tomlà créer (voir ci-dessous).
Créer une suite d'évaluation
Créez un fichier suite.toml dans le répertoire de votre choix. Structure minimale :
name = "ma-suite-validation"
[[tasks]]
id = "resumer-texte"
prompt = "Résume ce texte en trois phrases : [...]"
runs = 3
[[tasks.assertions]]
type = "exit_code"
equals = 0
[[tasks.assertions]]
type = "file_exists"
path = "output/resume.txt"
[[tasks.assertions]]
type = "regex"
pattern = "\\b(résumé|synthèse)\\b"
on = "stdout"
[[tasks.assertions]]
type = "llm_judge"
rubric = "La réponse doit être une synthèse cohérente du texte source, en trois phrases."
Détail des champs :
name: identifiant lisible de la suite, apparaît dans le rapport.tasks[].id: identifiant de la tâche, unique dans la suite.tasks[].prompt: texte de la tâche envoyée à l'agent.tasks[].runs: nombre d'exécutions indépendantes par tâche (défaut :3). Utilisez au moins 3 pour détecter les réponses non déterministes.tasks[].assertions: liste de vérifications appliquées à chaque exécution.
Quatre types d'assertions existent : exit_code, file_exists, regex et
llm_judge. Chacun prend son propre jeu de champs et refuse les autres, si bien
qu'une clé mal orthographiée fait échouer le chargement au lieu d'ignorer le
contrôle.
Les champs exacts par type sont dans le schéma des suites d'évaluation,
généré depuis le parseur lui-même. Deux méritent d'être connus avant d'écrire
votre première suite : un regex cible stdout ou result, jamais un fichier,
et un llm_judge prend une rubric et aucune valeur attendue.
Étapes - Lancer l'évaluation
apollia-os eval run ma-suite.toml
La commande affiche un tableau de résultats en temps réel pendant l'exécution. À la fin, elle écrit un fichier .results.jsonl dans le même répertoire que la suite.
Pour obtenir une sortie JSON machine (intégration CI, scripting) :
apollia-os eval run ma-suite.toml --json
Étapes - Lire le rapport
apollia-os eval report ma-suite.results.jsonl
Affiche un résumé par tâche : taux de réussite, temps médian, assertions échouées. Utilisez --json pour obtenir le rapport en JSON.
Vérification
- Le fichier
ma-suite.results.jsonlest créé dans le même répertoire quesuite.toml. - La commande
apollia-os eval runse termine avec le code de sortie0si toutes les assertions passent sur toutes les exécutions. - La commande
apollia-os eval reportaffiche le taux de réussite global.
Si ca ne marche pas
- "runtime non joignable" au lancement : le daemon Apollia n'est pas démarré. Lancez
apollia-os startpuis relancez l'évaluation. - "suite invalide" : vérifiez la syntaxe TOML de votre fichier (parenthèses, guillemets, nom de clé) et assurez-vous que le champ
typede chaque assertion est l'une des quatre valeurs reconnues. - Les assertions
llm_judgeéchouent systématiquement : vérifiez que le backend LLM par défaut est configuré et joignable. Le juge LLM utilise le même backend que l'agent évalué. - Le fichier
.results.jsonln'est pas créé : l'évaluation a échoué avant de produire des résultats. Relancez avec--jsonpour voir l'erreur brute.
Référence technique : Référence Apollia - commandes
eval runeteval report, format.results.jsonl, intégration CI.