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.
Una traccia di agente divisa nei riquadri Ragionamento, Chiamate di funzione e Risposta finale
Avvio rapido
Esegui l'esempio incluso dalla radice del repository:
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000L'esempio include anche una variante con sorveglianza della directory (config-watch.yaml) per acquisire i file di traccia depositati.
Configurazione
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: trueOpzioni
| Opzione | Predefinito | Descrizione |
|---|---|---|
pane_labels | ["Reasoning", "Function Calls", "Final Answer"] | Intestazioni dei tre riquadri. |
show_step_numbers | true | Mostra i numeri di passo #N sulle schede di ragionamento e di chiamata. |
collapse_long_outputs | true | Comprime i risultati degli strumenti più lunghi di max_output_lines in un blocco espandibile. |
max_output_lines | 20 | Soglia di righe per la compressione dei risultati. |
link_steps | true | Evidenziazione tra riquadri: facendo clic su una scheda si evidenziano le schede collegate negli altri riquadri. |
compact | false | Spaziatura 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}:
{
"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, system | Ragionamento |
Action, tool, function, call | Chiamate di funzione (il Environment/risultato adiacente viene annidato sotto la chiamata) |
Final Answer, send_message, respond, finish, oppure l'ultima azione se nessuna corrisponde | Risposta 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 SSE —
trace_ingestion: {enabled: true}espone un endpoint webhook e trasmette in streaming le nuove tracce agli annotatori. - Polling di Langfuse — aggiungi una sorgente
langfusesottotrace_ingestion.sources. - Sorveglianza della directory —
data_directoryinsieme awatch_data_directory: trueacquisisce i file.jsone.jsonldepositati.
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_traceserve solo alla visualizzazione; di per sé non raccoglie alcuna annotazione. Abbinalo a schemi di annotazione comereasoning_quality,tool_use_correctnessoanswer_helpfulness, come nell'esempio.- L'annotazione di intervalli non è supportata in
eval_trace. Usa una visualizzazione della traccia dell'agente ocodese hai bisogno di evidenziare intervalli sul testo della traccia.
Correlati
- Coda di triage basata sui segnali — assegna la priorità alle tracce in arrivo da rivedere
- Modifica delle traiettorie per SFT/DPO — trasforma le correzioni in dati di addestramento
- Annotazione agentica — configurazione dei campi di visualizzazione e acquisizione
Per i dettagli di implementazione, consulta la documentazione di origine.