Comment tester vos agents sur des tâches réelles avec Harbor - Xander Song, Arize AI
원제 · How to Test Your Agents on Real Tasks With Harbor - Xander Song, Arize AI
핵심 요약
Harbor permet d'évaluer rigoureusement des systèmes d'agents en boîte noire dans des bacs à sable Docker en mesurant leurs effets secondaires réels à l'aide de scripts vérificateurs déterministes.
하이라이트
Harbor évalue les agents IA en exécutant des tâches décrites en Markdown dans des conteneurs Docker isolés contenant des données réelles.
Les scripts vérificateurs se montent dans le conteneur uniquement après l'exécution de l'agent pour empêcher toute triche.
Les scripts oracles permettent de valider l'infrastructure, l'environnement et les tests sans dépenser de jetons LLM.
L'exécution en parallèle sur des plateformes comme Daytona permet de lancer 200 processus de travail simultanés pour absorber la stochasticité des modèles.
L'ajout d'une directive incitant à utiliser SQL pour les requêtes agrégées a réduit le nombre total d'appels d'outils et de tours de conversation.
Le format de trajectoire ATIF est converti en conventions sémantiques OpenTelemetry via le standard OpenInference pour l'analyse dans Phoenix.
타임라인
Principes fondamentaux du framework Harbor
L'approche vise à remplacer les déploiements guidés par le ressenti par une validation fondée sur des preuves quantifiables. L'agent reçoit une consigne en langage naturel et opère dans un environnement propre. Les scripts de test mesurent le résultat final, produisant des récompenses binaires comme le succès ou l'échec.
- Le framework teste les agents sur des tâches réelles avec des données concrètes dans des conteneurs isolés.
- Les vérificateurs évaluent uniquement les effets secondaires produits par l'agent dans l'environnement.
- La séparation entre la tâche et l'implémentation de l'agent permet de mesurer objectivement les améliorations et les régressions.
Architecture technique : tâches, essais, vérificateurs et oracles
Un job regroupe un ensemble de tâches exécutées sur plusieurs essais indépendants. Harbor fonctionne comme un orchestrateur externe pilotant les conteneurs et les scripts dédiés. Les résultats sont consignés dans un fichier reward.txt, tandis que les traces d'actions internes sont capturées au format ATIF.
- Chaque tâche comprend des instructions en Markdown, un Dockerfile pour l'environnement et des vérificateurs sous forme de scripts.
- Les essais multiples isolés absorbent la variabilité stochastique propre aux modèles de langage.
- Les oracles résolvent la tâche par script pour valider l'environnement avant toute dépense de jetons.
- Le format ATIF structure les trajectoires d'exécution en JSON pour faciliter le débogage.
Exemple concret d'évaluation : réparation d'une migration de base de données
Sur un cas de migration SQL défaillante, l'agent modifie les fichiers sources du conteneur sans avoir accès aux tests en cours de route. Les scripts de vérification s'exécutent ensuite pour contrôler le code de retour et l'état de la base. Ce modèle fonctionne comme un test d'intégration neutre vis-à-vis des outils et des mécanismes internes de l'agent.
- Le montage des vérificateurs après la fin de la tâche empêche l'agent de tricher pendant son exécution.
- Les vérificateurs agissent en boîte noire en inspectant le schéma, les tables et les index modifiés.
- Ce découplage permet de refactoriser les compétences et les prompts sans casser la suite de tests.
Parallélisation massive et intégration avec Phoenix et OpenInference
L'indépendance de chaque conteneur autorise une parallélisation horizontale complète pour comparer des modèles comme Claude Code ou Codex. Les métriques agrégées synthétisent les taux de réussite de jeux de données entiers. L'intégration dans Phoenix offre un versionnage précis des jeux de données et une visualisation chronologique des évaluations.
- L'exécution distribuée sur des fournisseurs de bacs à sable comme Daytona permet d'atteindre 200 conteneurs simultanés.
- La métrique Pass@k mesure la probabilité d'obtenir au moins un succès sur k tentatives indépendantes.
- Phoenix ingère les trajectoires ATIF traduites en standard OpenInference basé sur OpenTelemetry.
Mise en œuvre concrète chez Arize AI pour tester un système hybride
L'évaluation ne porte pas sur le modèle de fondation seul, mais sur l'assemblage complet comprenant les outils maison et le serveur applicatif. Un fichier SQLite embarqué et un client de test remplacent le navigateur à l'intérieur du conteneur Docker. Les vérificateurs interrogent directement les tables de la base ou appellent l'API locale pour constater le résultat.
- L'infrastructure testée regroupe l'agent de codage, une CLI, un serveur MCP et l'agent Pixie.
- L'architecture monolithique monoposte de Phoenix simplifie sa conteneurisation intégrale avec un fichier SQLite.
- Le banc de test évalue le comportement de l'agent sur des requêtes complexes issues de traces réelles.
Étude de cas : optimisation de l'usage SQL face à la surcharge d'appels d'outils
Face à des questions d'agrégation de coûts, l'agent multipliait les requêtes paginées faute d'orientations claires. L'ajout d'une consigne explicite favorisant l'outil SQL a réduit la fréquence des appels d'outils sans dégrader le taux de réussite. L'oracle a fourni les réponses de référence de manière déterministe, garantissant la fiabilité des tests.
- Les agents paginaient excessivement via REST et GraphQL pour calculer des métriques agrégées.
- Une directive de prompt ciblée a réorienté l'agent vers un outil SQL en lecture seule pour les agrégations.
- Des requêtes synthétiques générées par LLM et validées par un oracle ont constitué le jeu de test.
Démonstration des traces comparatives et gestion des tests de flux
L'interface permet de filtrer les exécutions ayant diminué leur consommation d'outils et de visualiser le changement exact d'instructions dans les traces. Les tests plus légers peuvent vérifier le simple déclenchement d'une compétence particulière au premier tour. La constitution et le nettoyage préalable de données réalistes demeurent l'exigence principale pour bâtir des évaluations pertinentes.
- La comparaison avant/après montre une chute des appels GraphQL et une contraction du nombre de tours de dialogue.
- L'inspection des traces OpenInference confirme la substitution directe des scripts bash par des requêtes SQL ciblées.
- Les tests de régression axés sur les compétences agissent comme des tests Playwright adaptés aux flux agentiques.
설명
Xander Song, an engineer at Arize AI who works on Phoenix, introduces Harbor, an open source framework for evaluating agents on realistic tasks with real data in isolated sandboxes. He explains tasks, Docker environments, verifiers and rewards, trials and jobs, oracles that validate your setup before you spend tokens, and ATIF trajectories. Then he shows how his team runs Harbor at scale on Daytona and with Phoenix to test a prompt change that steered agents toward a new SQL tool, cutting tool calls without hurting correctness. Chapters 00:00 Intro: shipping on evidence, not vibes 01:28 What Harbor is 03:37 Architecture: tasks, environments, verifiers 06:08 Trajectories, jobs and oracles 07:58 Example: fixing a failing migration 10:48 Verifiers as black-box integration tests 14:21 Running at scale in parallel sandboxes 17:04 Harbor with Phoenix 20:37 How the Phoenix team uses Harbor 25:07 Q&A: how Harbor orchestrates runs 29:24 Q&A: complex systems and data size 33:21 Case study: steering agents to a SQL tool 38:34 Demo: datasets and experiments in Phoenix 44:10 Demo: comparing jobs task by task 48:31 Regression tests and skills Xander Song, Arize AI Join us in SF for the second annual AIE CODE summit: https://aie.codes our last flagship summit of 2026. Applications live now!
