Evaluación de trazas en tres paneles (eval_trace)
La visualización eval_trace divide la traza de un agente en tres paneles sincronizados (Razonamiento, Llamadas a funciones y Respuesta final) para que el evaluador vea de un vistazo lo que el agente pensó, hizo y produjo. Pensada para la evaluación continua.
La visualización eval_trace divide una sola traza de agente en tres paneles sincronizados: Razonamiento, Llamadas a funciones y Respuesta final. El evaluador ve en paralelo lo que el agente pensó, lo que hizo y lo que produjo, algo idóneo para la evaluación continua, donde llegan trazas nuevas que deben juzgarse con rapidez.
A diferencia de una visualización vertical de traza de agente, que apila una traza intercalada en una sola columna, eval_trace descompone una traza en sus tres componentes semánticos, de modo que la estructura del comportamiento del agente queda visible sin necesidad de desplazarse.
Una traza de agente dividida en los paneles Razonamiento, Llamadas a funciones y Respuesta final
Inicio rápido
Ejecuta el ejemplo incluido desde la raíz del repositorio:
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000El ejemplo también incluye una variante de vigilancia de directorio (config-watch.yaml) para ingerir archivos de traza depositados.
Configuración
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: trueOpciones
| Opción | Predeterminado | Descripción |
|---|---|---|
pane_labels | ["Reasoning", "Function Calls", "Final Answer"] | Encabezados de los tres paneles. |
show_step_numbers | true | Muestra los números de paso #N en las tarjetas de razonamiento y de llamada. |
collapse_long_outputs | true | Contrae los resultados de herramienta más largos que max_output_lines en un bloque expandible. |
max_output_lines | 20 | Umbral de líneas para contraer los resultados. |
link_steps | true | Resaltado entre paneles: al hacer clic en una tarjeta se resaltan las tarjetas vinculadas en los demás paneles. |
compact | false | Relleno y espaciado más ajustados. |
Formato de datos
eval_trace admite los mismos formatos de traza que la visualización de traza de agente. El más habitual es una lista de pasos {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: ..."}
]
}También se admiten los formatos thought/action/observation y step_type/content.
Cómo se asignan los pasos a los paneles
| Paso (tipo inferido del speaker o de la etiqueta) | Panel |
|---|---|
Thought, razonamiento, planificación, system | Razonamiento |
Action, tool, function, call | Llamadas a funciones (el Environment/resultado adyacente se anida bajo la llamada) |
Final Answer, send_message, respond, finish, o la última acción si ninguno coincide | Respuesta final |
Para establecer una respuesta final explícita, termina la traza con un paso cuyo speaker coincida con un patrón de respuesta (como "Agent (Final Answer)") o con una acción send_message(...).
Vinculación de pasos
Los pasos se agrupan en ciclos lógicos: un pensamiento y las llamadas que desencadena comparten un índice de paso. Con link_steps: true, hacer clic en cualquier tarjeta resalta todas las tarjetas que comparten ese índice en los distintos paneles, de modo que puedes rastrear un pensamiento hasta la acción que produjo.
Evaluación continua
Combina eval_trace con cualquiera de los transportes de ingesta en tiempo de ejecución de Potato para que las trazas se evalúen a medida que llegan:
- Webhook y SSE —
trace_ingestion: {enabled: true}expone un endpoint de webhook y transmite las trazas nuevas a los anotadores. - Sondeo de Langfuse — añade una fuente
langfusedentro detrace_ingestion.sources. - Vigilancia de directorio —
data_directoryjunto conwatch_data_directory: trueingiere los archivos.jsony.jsonldepositados.
Las trazas añadidas en tiempo de ejecución son asignables a los anotadores de inmediato. Combina esto con la Cola de triaje para llevar al frente las trazas con errores o puntuaciones bajas.
Notas y limitaciones
eval_tracees solo de visualización; por sí mismo no recopila anotaciones. Combínalo con esquemas de anotación comoreasoning_quality,tool_use_correctnessoanswer_helpfulness, como en el ejemplo.- La anotación de tramos no se admite en
eval_trace. Usa una visualización de traza de agente ocodesi necesitas resaltar tramos en el texto de la traza.
Relacionado
- Cola de triaje basada en señales — prioriza qué trazas entrantes se revisan
- Edición de trayectorias para SFT/DPO — convierte las correcciones en datos de entrenamiento
- Anotación con agentes — configuración de campos de visualización e ingesta
Para conocer los detalles de implementación, consulta la documentación de origen.