Skip to content

三窗格軌跡評估 (eval_trace)

eval_trace 顯示會將一條智慧體軌跡拆分為三個同步窗格(推理、函式呼叫和最終答案),讓評估者一眼看清智慧體思考了什麼、做了什麼、產出了什麼。專為持續評估而構建。

eval_trace 顯示會將單條智慧體軌跡拆分為三個同步窗格:推理、函式呼叫和最終答案。 評估者可以並排看到智慧體思考了什麼、做了什麼、產出了什麼,這適合持續評估的場景,在這類場景中新軌跡不斷到來,必須被迅速判定。

與把交錯軌跡堆疊在一列裡的縱向智慧體軌跡顯示不同,eval_trace 將一條軌跡分解為三個語義組成部分,因此無需滾動即可看清智慧體行為的結構。

三窗格 eval_trace 顯示一條被拆分為推理、函式呼叫和最終答案窗格的智慧體軌跡

快速開始

從倉庫根目錄執行隨附的示例:

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

該示例還提供了一個目錄監視變體(config-watch.yaml),用於攝入投放進來的軌跡檔案。

配置

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

選項

選項預設值說明
pane_labels["Reasoning", "Function Calls", "Final Answer"]三個窗格的標題。
show_step_numberstrue在推理卡片和呼叫卡片上顯示 #N 步驟編號。
collapse_long_outputstrue將長度超過 max_output_lines 的工具結果摺疊成可展開的區塊。
max_output_lines20摺疊結果的行數閾值。
link_stepstrue跨窗格高亮:點選某張卡片會高亮其他窗格中與之關聯的卡片。
compactfalse更緊湊的內邊距和間距。

資料格式

eval_trace 接受與智慧體軌跡顯示相同的軌跡格式。最常見的是一組 {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: ..."}
  ]
}

thought/action/observationstep_type/content 格式也受支援。

步驟如何對映到窗格

步驟(類型從 speaker 或 label 推斷)窗格
Thought、推理、規劃、system推理
Action、tool、function、call函式呼叫(相鄰的 Environment/結果巢狀在該呼叫之下)
Final Answersend_messagerespondfinish,或在沒有匹配項時取最後一個動作最終答案

要設定明確的最終答案,請用一個 speaker 匹配答案模式的步驟(例如 "Agent (Final Answer)")或一個 send_message(...) 動作來結束軌跡。

步驟關聯

步驟會被分組為邏輯迴圈:一個想法以及它觸發的呼叫共享同一個步驟索引。在 link_steps: true 時,點選任意卡片會高亮各窗格中共享該索引的每一張卡片,從而讓你將一個想法追溯到它產生的動作。

持續評估

eval_trace 與 Potato 的任意執行時攝入傳輸方式搭配使用,使軌跡在到達時即被評估:

  • Webhook 和 SSE —— trace_ingestion: {enabled: true} 會暴露一個 webhook 端點,並將新軌跡流式推送給標註者。
  • Langfuse 輪詢 —— 在 trace_ingestion.sources 下新增一個 langfuse 源。
  • 目錄監視 —— data_directory 加上 watch_data_directory: true 會攝入投放進來的 .json.jsonl 檔案。

執行時新增的軌跡可立即分配給標註者。將其與分診佇列結合使用,可將出錯或低分的軌跡推到最前面。

注意事項與限制

  • eval_trace 僅用於顯示;它本身不收集任何標註。請像示例那樣,將它與諸如 reasoning_qualitytool_use_correctnessanswer_helpfulness 之類的標註方案搭配使用。
  • eval_trace 不支援跨度標註。如果你需要在軌跡文本上進行跨度高亮,請使用智慧體軌跡或 code 顯示。

相關內容

有關實現細節,請參閱源文件