Évaluation de trace à trois volets (eval_trace)
L'affichage eval_trace divise la trace d'un agent en trois volets synchronisés (Raisonnement, Appels de fonctions et Réponse finale) afin que l'évaluateur voie d'un coup d'œil ce que l'agent a pensé, fait et produit. Conçu pour l'évaluation continue.
L'affichage eval_trace divise une seule trace d'agent en trois volets synchronisés : Raisonnement, Appels de fonctions et Réponse finale. L'évaluateur voit côte à côte ce que l'agent a pensé, ce qu'il a fait et ce qu'il a produit, ce qui convient à l'évaluation continue où de nouvelles traces arrivent et doivent être jugées rapidement.
Contrairement à un affichage vertical de trace d'agent qui empile une trace entrelacée dans une seule colonne, eval_trace décompose une trace en ses trois composantes sémantiques, de sorte que la structure du comportement de l'agent est visible sans avoir à faire défiler.
Une trace d'agent divisée en volets Raisonnement, Appels de fonctions et Réponse finale
Démarrage rapide
Exécutez l'exemple fourni depuis la racine du dépôt :
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000L'exemple propose aussi une variante avec surveillance de répertoire (config-watch.yaml) pour ingérer les fichiers de trace déposés.
Configuration
instance_display:
layout:
direction: vertical # task header above the (internally horizontal) panes
gap: 12px
fields:
- key: task_description
type: text
label: "Task"
- key: trace # the field holding the agent trace
type: eval_trace
label: "Agent Trace"
display_options:
pane_labels: ["Reasoning", "Function Calls", "Final Answer"]
show_step_numbers: true
collapse_long_outputs: true
max_output_lines: 12
link_steps: trueOptions
| Option | Valeur par défaut | Description |
|---|---|---|
pane_labels | ["Reasoning", "Function Calls", "Final Answer"] | En-têtes des trois volets. |
show_step_numbers | true | Affiche les numéros d'étape #N sur les cartes de raisonnement et d'appel. |
collapse_long_outputs | true | Replie les résultats d'outil plus longs que max_output_lines dans un bloc dépliable. |
max_output_lines | 20 | Seuil de lignes pour le repliement des résultats. |
link_steps | true | Surlignage entre volets : cliquer sur une carte surligne les cartes liées dans les autres volets. |
compact | false | Marges intérieures et espacement plus resserrés. |
Format des données
eval_trace accepte les mêmes formats de trace que l'affichage de trace d'agent. Le plus courant est une liste d'étapes {speaker, text} :
{
"id": "eval_001",
"task_description": "Find a vegan lasagna recipe.",
"trace": [
{"speaker": "Agent (Thought)", "text": "I'll search for a highly-rated recipe."},
{"speaker": "Agent (Action)", "text": "web_search(query='vegan lasagna')"},
{"speaker": "Environment", "text": "10 results found..."},
{"speaker": "Agent (Final Answer)", "text": "Here's a great recipe: ..."}
]
}Les formats thought/action/observation et step_type/content sont également pris en charge.
Comment les étapes correspondent aux volets
| Étape (type déduit du speaker ou du label) | Volet |
|---|---|
Thought, raisonnement, planification, system | Raisonnement |
Action, tool, function, call | Appels de fonctions (le Environment/résultat adjacent s'imbrique sous l'appel) |
Final Answer, send_message, respond, finish, ou la dernière action si aucune ne correspond | Réponse finale |
Pour définir une réponse finale explicite, terminez la trace par une étape dont le speaker correspond à un motif de réponse (tel que "Agent (Final Answer)") ou par une action send_message(...).
Liaison des étapes
Les étapes sont regroupées en cycles logiques : une pensée et les appels qu'elle déclenche partagent un même index d'étape. Avec link_steps: true, cliquer sur n'importe quelle carte surligne toutes les cartes partageant cet index dans les différents volets, ce qui vous permet de remonter d'une pensée à l'action qu'elle a produite.
Évaluation continue
Associez eval_trace à l'un des transports d'ingestion à l'exécution de Potato pour que les traces soient évaluées dès leur arrivée :
- Webhook et SSE —
trace_ingestion: {enabled: true}expose un point de terminaison webhook et diffuse les nouvelles traces aux annotateurs. - Interrogation Langfuse — ajoutez une source
langfusesoustrace_ingestion.sources. - Surveillance de répertoire —
data_directoryavecwatch_data_directory: trueingère les fichiers.jsonet.jsonldéposés.
Les traces ajoutées à l'exécution sont immédiatement attribuables aux annotateurs. Combinez cela avec la file de triage pour faire remonter en tête les traces en erreur ou faiblement notées.
Remarques et limites
eval_tracesert uniquement à l'affichage ; il ne collecte aucune annotation par lui-même. Associez-le à des schémas d'annotation tels quereasoning_quality,tool_use_correctnessouanswer_helpfulness, comme dans l'exemple.- L'annotation de segments n'est pas prise en charge par
eval_trace. Utilisez un affichage de trace d'agent oucodesi vous avez besoin de surligner des segments dans le texte de la trace.
Pages liées
- File de triage basée sur des signaux — hiérarchiser les traces entrantes à examiner
- Édition de trajectoires pour SFT/DPO — transformer les corrections en données d'entraînement
- Annotation agentique — configuration des champs d'affichage et ingestion
Pour les détails d'implémentation, consultez la documentation source.