Drei-Fenster-Trace-Bewertung (eval_trace)
Die eval_trace-Anzeige teilt einen Agenten-Trace in drei synchronisierte Fenster auf (Schlussfolgern, Funktionsaufrufe und Endgültige Antwort), sodass ein Prüfer auf einen Blick sieht, was der Agent gedacht, getan und erzeugt hat. Für die kontinuierliche Bewertung gebaut.
Die eval_trace-Anzeige teilt einen einzelnen Agenten-Trace in drei synchronisierte Fenster auf: Schlussfolgern, Funktionsaufrufe und Endgültige Antwort. Ein Prüfer sieht nebeneinander, was der Agent gedacht, was er getan und was er erzeugt hat, was sich für die kontinuierliche Bewertung eignet, bei der neue Traces eintreffen und rasch beurteilt werden müssen.
Anders als eine vertikale Agenten-Trace-Anzeige, die einen verschachtelten Trace in einer Spalte stapelt, zerlegt eval_trace einen Trace in seine drei semantischen Bestandteile, sodass die Struktur des Agentenverhaltens ohne Scrollen sichtbar wird.
Ein Agenten-Trace, aufgeteilt in die Fenster Schlussfolgern, Funktionsaufrufe und Endgültige Antwort
Schnellstart
Führen Sie das mitgelieferte Beispiel aus dem Repository-Stammverzeichnis aus:
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000Das Beispiel liefert außerdem eine Verzeichnisüberwachungs-Variante (config-watch.yaml) zum Aufnehmen abgelegter Trace-Dateien mit.
Konfiguration
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: trueOptionen
| Option | Standard | Beschreibung |
|---|---|---|
pane_labels | ["Reasoning", "Function Calls", "Final Answer"] | Überschriften der drei Fenster. |
show_step_numbers | true | Zeigt #N-Schrittnummern auf Schlussfolgerungs- und Aufrufkarten an. |
collapse_long_outputs | true | Klappt Tool-Ergebnisse, die länger als max_output_lines sind, in einen aufklappbaren Block ein. |
max_output_lines | 20 | Zeilenschwelle für das Einklappen von Ergebnissen. |
link_steps | true | Fensterübergreifendes Hervorheben: Ein Klick auf eine Karte hebt die verknüpften Karten in den anderen Fenstern hervor. |
compact | false | Engere Innenabstände und Abstände. |
Datenformat
eval_trace akzeptiert dieselben Trace-Formate wie die Agenten-Trace-Anzeige. Am gebräuchlichsten ist eine Liste von {speaker, text}-Schritten:
{
"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: ..."}
]
}Die Formate thought/action/observation und step_type/content werden ebenfalls unterstützt.
Wie Schritte den Fenstern zugeordnet werden
| Schritt (Typ aus speaker oder label abgeleitet) | Fenster |
|---|---|
Thought, Schlussfolgern, Planen, system | Schlussfolgern |
Action, tool, function, call | Funktionsaufrufe (das benachbarte Environment/Ergebnis wird unter dem Aufruf verschachtelt) |
Final Answer, send_message, respond, finish, oder die letzte Aktion, falls keine passt | Endgültige Antwort |
Um eine explizite endgültige Antwort festzulegen, beenden Sie den Trace mit einem Schritt, dessen speaker einem Antwortmuster entspricht (etwa "Agent (Final Answer)"), oder mit einer send_message(...)-Aktion.
Schrittverknüpfung
Schritte werden in logische Zyklen gruppiert: Ein Gedanke und die von ihm ausgelösten Aufrufe teilen sich einen Schrittindex. Mit link_steps: true hebt ein Klick auf eine beliebige Karte jede Karte hervor, die diesen Index über die Fenster hinweg teilt, sodass Sie einen Gedanken bis zu der von ihm erzeugten Aktion zurückverfolgen können.
Kontinuierliche Bewertung
Kombinieren Sie eval_trace mit einem der Laufzeit-Ingestion-Transporte von Potato, damit Traces bei ihrem Eintreffen bewertet werden:
- Webhook und SSE —
trace_ingestion: {enabled: true}stellt einen Webhook-Endpunkt bereit und streamt neue Traces an die Annotatoren. - Langfuse-Polling — fügen Sie eine
langfuse-Quelle untertrace_ingestion.sourceshinzu. - Verzeichnisüberwachung —
data_directoryzusammen mitwatch_data_directory: truenimmt abgelegte.json- und.jsonl-Dateien auf.
Zur Laufzeit hinzugefügte Traces sind sofort den Annotatoren zuweisbar. Kombinieren Sie dies mit der Triage-Warteschlange, um fehlerhafte oder niedrig bewertete Traces nach vorn zu schieben.
Hinweise und Einschränkungen
eval_tracedient nur der Anzeige; es erfasst selbst keine Annotationen. Kombinieren Sie es mit Annotationsschemata wiereasoning_quality,tool_use_correctnessoderanswer_helpfulness, wie im Beispiel.- Span-Annotation wird von
eval_tracenicht unterstützt. Verwenden Sie eine Agenten-Trace- odercode-Anzeige, wenn Sie Span-Hervorhebung im Trace-Text benötigen.
Verwandte Themen
- Signalbasierte Triage-Warteschlange — priorisieren, welche eingehenden Traces geprüft werden
- Trajektorienbearbeitung für SFT/DPO — Korrekturen in Trainingsdaten verwandeln
- Agentische Annotation — Konfiguration der Anzeigefelder und Ingestion
Implementierungsdetails finden Sie in der Quelldokumentation.