Skip to content

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.

Visualización eval_trace en tres panelesUna 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:

bash
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000

El ejemplo también incluye una variante de vigilancia de directorio (config-watch.yaml) para ingerir archivos de traza depositados.

Configuración

yaml
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: true

Opciones

OpciónPredeterminadoDescripción
pane_labels["Reasoning", "Function Calls", "Final Answer"]Encabezados de los tres paneles.
show_step_numberstrueMuestra los números de paso #N en las tarjetas de razonamiento y de llamada.
collapse_long_outputstrueContrae los resultados de herramienta más largos que max_output_lines en un bloque expandible.
max_output_lines20Umbral de líneas para contraer los resultados.
link_stepstrueResaltado entre paneles: al hacer clic en una tarjeta se resaltan las tarjetas vinculadas en los demás paneles.
compactfalseRelleno 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}:

json
{
  "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, systemRazonamiento
Action, tool, function, callLlamadas a funciones (el Environment/resultado adyacente se anida bajo la llamada)
Final Answer, send_message, respond, finish, o la última acción si ninguno coincideRespuesta 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 SSEtrace_ingestion: {enabled: true} expone un endpoint de webhook y transmite las trazas nuevas a los anotadores.
  • Sondeo de Langfuse — añade una fuente langfuse dentro de trace_ingestion.sources.
  • Vigilancia de directoriodata_directory junto con watch_data_directory: true ingiere los archivos .json y .jsonl depositados.

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_trace es solo de visualización; por sí mismo no recopila anotaciones. Combínalo con esquemas de anotación como reasoning_quality, tool_use_correctness o answer_helpfulness, como en el ejemplo.
  • La anotación de tramos no se admite en eval_trace. Usa una visualización de traza de agente o code si necesitas resaltar tramos en el texto de la traza.

Relacionado

Para conocer los detalles de implementación, consulta la documentación de origen.