Skip to content

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.

Drei-Fenster-eval_trace-AnzeigeEin Agenten-Trace, aufgeteilt in die Fenster Schlussfolgern, Funktionsaufrufe und Endgültige Antwort

Schnellstart

Führen Sie das mitgelieferte Beispiel aus dem Repository-Stammverzeichnis aus:

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

Das Beispiel liefert außerdem eine Verzeichnisüberwachungs-Variante (config-watch.yaml) zum Aufnehmen abgelegter Trace-Dateien mit.

Konfiguration

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

Optionen

OptionStandardBeschreibung
pane_labels["Reasoning", "Function Calls", "Final Answer"]Überschriften der drei Fenster.
show_step_numberstrueZeigt #N-Schrittnummern auf Schlussfolgerungs- und Aufrufkarten an.
collapse_long_outputstrueKlappt Tool-Ergebnisse, die länger als max_output_lines sind, in einen aufklappbaren Block ein.
max_output_lines20Zeilenschwelle für das Einklappen von Ergebnissen.
link_stepstrueFensterübergreifendes Hervorheben: Ein Klick auf eine Karte hebt die verknüpften Karten in den anderen Fenstern hervor.
compactfalseEngere 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:

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: ..."}
  ]
}

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, systemSchlussfolgern
Action, tool, function, callFunktionsaufrufe (das benachbarte Environment/Ergebnis wird unter dem Aufruf verschachtelt)
Final Answer, send_message, respond, finish, oder die letzte Aktion, falls keine passtEndgü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 SSEtrace_ingestion: {enabled: true} stellt einen Webhook-Endpunkt bereit und streamt neue Traces an die Annotatoren.
  • Langfuse-Polling — fügen Sie eine langfuse-Quelle unter trace_ingestion.sources hinzu.
  • Verzeichnisüberwachungdata_directory zusammen mit watch_data_directory: true nimmt 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_trace dient nur der Anzeige; es erfasst selbst keine Annotationen. Kombinieren Sie es mit Annotationsschemata wie reasoning_quality, tool_use_correctness oder answer_helpfulness, wie im Beispiel.
  • Span-Annotation wird von eval_trace nicht unterstützt. Verwenden Sie eine Agenten-Trace- oder code-Anzeige, wenn Sie Span-Hervorhebung im Trace-Text benötigen.

Verwandte Themen

Implementierungsdetails finden Sie in der Quelldokumentation.