Skip to content

Valutazione della traccia a tre riquadri (eval_trace)

La visualizzazione eval_trace divide la traccia di un agente in tre riquadri sincronizzati (Ragionamento, Chiamate di funzione e Risposta finale) così che il valutatore veda a colpo d'occhio ciò che l'agente ha pensato, fatto e prodotto. Pensata per la valutazione continua.

La visualizzazione eval_trace divide una singola traccia di agente in tre riquadri sincronizzati: Ragionamento, Chiamate di funzione e Risposta finale. Il valutatore vede affiancati ciò che l'agente ha pensato, ciò che ha fatto e ciò che ha prodotto, il che si adatta alla valutazione continua, dove arrivano nuove tracce che devono essere giudicate rapidamente.

A differenza di una visualizzazione verticale della traccia dell'agente, che impila una traccia intercalata in un'unica colonna, eval_trace scompone una traccia nei suoi tre componenti semantici, così che la struttura del comportamento dell'agente sia visibile senza dover scorrere.

Visualizzazione eval_trace a tre riquadriUna traccia di agente divisa nei riquadri Ragionamento, Chiamate di funzione e Risposta finale

Avvio rapido

Esegui l'esempio incluso dalla radice del repository:

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

L'esempio include anche una variante con sorveglianza della directory (config-watch.yaml) per acquisire i file di traccia depositati.

Configurazione

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

Opzioni

OpzionePredefinitoDescrizione
pane_labels["Reasoning", "Function Calls", "Final Answer"]Intestazioni dei tre riquadri.
show_step_numberstrueMostra i numeri di passo #N sulle schede di ragionamento e di chiamata.
collapse_long_outputstrueComprime i risultati degli strumenti più lunghi di max_output_lines in un blocco espandibile.
max_output_lines20Soglia di righe per la compressione dei risultati.
link_stepstrueEvidenziazione tra riquadri: facendo clic su una scheda si evidenziano le schede collegate negli altri riquadri.
compactfalseSpaziatura e padding più compatti.

Formato dei dati

eval_trace accetta gli stessi formati di traccia della visualizzazione della traccia dell'agente. Il più comune è un elenco di passi {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: ..."}
  ]
}

Sono supportati anche i formati thought/action/observation e step_type/content.

Come i passi si mappano ai riquadri

Passo (tipo dedotto dallo speaker o dall'etichetta)Riquadro
Thought, ragionamento, pianificazione, systemRagionamento
Action, tool, function, callChiamate di funzione (il Environment/risultato adiacente viene annidato sotto la chiamata)
Final Answer, send_message, respond, finish, oppure l'ultima azione se nessuna corrispondeRisposta finale

Per impostare una risposta finale esplicita, termina la traccia con un passo il cui speaker corrisponda a un pattern di risposta (come "Agent (Final Answer)") o con un'azione send_message(...).

Collegamento dei passi

I passi sono raggruppati in cicli logici: un pensiero e le chiamate che esso innesca condividono un indice di passo. Con link_steps: true, fare clic su una scheda qualsiasi evidenzia ogni scheda che condivide quell'indice tra i riquadri, così da poter risalire da un pensiero all'azione che ha prodotto.

Valutazione continua

Abbina eval_trace a uno qualsiasi dei trasporti di acquisizione a runtime di Potato, così che le tracce vengano valutate man mano che arrivano:

  • Webhook e SSEtrace_ingestion: {enabled: true} espone un endpoint webhook e trasmette in streaming le nuove tracce agli annotatori.
  • Polling di Langfuse — aggiungi una sorgente langfuse sotto trace_ingestion.sources.
  • Sorveglianza della directorydata_directory insieme a watch_data_directory: true acquisisce i file .json e .jsonl depositati.

Le tracce aggiunte a runtime sono immediatamente assegnabili agli annotatori. Combina questo con la coda di triage per spingere in testa le tracce con errori o con punteggi bassi.

Note e limitazioni

  • eval_trace serve solo alla visualizzazione; di per sé non raccoglie alcuna annotazione. Abbinalo a schemi di annotazione come reasoning_quality, tool_use_correctness o answer_helpfulness, come nell'esempio.
  • L'annotazione di intervalli non è supportata in eval_trace. Usa una visualizzazione della traccia dell'agente o code se hai bisogno di evidenziare intervalli sul testo della traccia.

Correlati

Per i dettagli di implementazione, consulta la documentazione di origine.