三窗格軌跡評估 (eval_trace)
eval_trace 顯示會將一條智慧體軌跡拆分為三個同步窗格(推理、函式呼叫和最終答案),讓評估者一眼看清智慧體思考了什麼、做了什麼、產出了什麼。專為持續評估而構建。
eval_trace 顯示會將單條智慧體軌跡拆分為三個同步窗格:推理、函式呼叫和最終答案。 評估者可以並排看到智慧體思考了什麼、做了什麼、產出了什麼,這適合持續評估的場景,在這類場景中新軌跡不斷到來,必須被迅速判定。
與把交錯軌跡堆疊在一列裡的縱向智慧體軌跡顯示不同,eval_trace 將一條軌跡分解為三個語義組成部分,因此無需滾動即可看清智慧體行為的結構。
一條被拆分為推理、函式呼叫和最終答案窗格的智慧體軌跡
快速開始
從倉庫根目錄執行隨附的示例:
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000該示例還提供了一個目錄監視變體(config-watch.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_numbers | true | 在推理卡片和呼叫卡片上顯示 #N 步驟編號。 |
collapse_long_outputs | true | 將長度超過 max_output_lines 的工具結果摺疊成可展開的區塊。 |
max_output_lines | 20 | 摺疊結果的行數閾值。 |
link_steps | true | 跨窗格高亮:點選某張卡片會高亮其他窗格中與之關聯的卡片。 |
compact | false | 更緊湊的內邊距和間距。 |
資料格式
eval_trace 接受與智慧體軌跡顯示相同的軌跡格式。最常見的是一組 {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: ..."}
]
}thought/action/observation 和 step_type/content 格式也受支援。
步驟如何對映到窗格
| 步驟(類型從 speaker 或 label 推斷) | 窗格 |
|---|---|
Thought、推理、規劃、system | 推理 |
Action、tool、function、call | 函式呼叫(相鄰的 Environment/結果巢狀在該呼叫之下) |
Final Answer、send_message、respond、finish,或在沒有匹配項時取最後一個動作 | 最終答案 |
要設定明確的最終答案,請用一個 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_quality、tool_use_correctness或answer_helpfulness之類的標註方案搭配使用。eval_trace不支援跨度標註。如果你需要在軌跡文本上進行跨度高亮,請使用智慧體軌跡或code顯示。
相關內容
- 基於訊號的分診佇列 —— 為進入的軌跡排定審閱優先順序
- 面向 SFT/DPO 的軌跡編輯 —— 將修正轉化為訓練資料
- 智慧體式標註 —— 顯示欄位配置與攝入
有關實現細節,請參閱源文件。