如何為智慧體軌跡拿到可靠的標籤
標註智慧體的多步軌跡比標一條推文難。一份關於設計分類體系、測量逐步一致性、化解分歧的指南,附一份 Potato 配置。
標一條推文是一個決定。標一條智慧體軌跡是幾十個:執行中的每一步都是一次小判斷,而這些判斷彼此相關。這正是軌跡標註自成一類問題的原因。兩個認真的人通常會在「這次執行是否成功」上達成一致,然後在它十二步裡到底哪一步出了錯上產生分歧。如果你不為這道縫隙做設計,你「已標註」的軌跡資料就在悄悄地不可靠,而你在其上構建的獎勵模型或除錯分析,也會繼承這份噪聲。
一條軌跡是智慧體一次執行的完整蹤跡:它的目標,然後是每一步的思考、工具呼叫和觀察。標註一條軌跡意味著對整段執行做總體判斷,並標出個別步驟在哪裡出了錯。整段執行的標籤容易達成一致;逐步的標籤則不然,而有用的訊號恰恰在那裡。可靠的軌跡資料來自一套緊湊的錯誤分類體系、刻意測量的逐步一致性,以及一套化解分歧的辦法。 這篇文章講的就是把這三件事做對。
是什麼讓軌跡難以標註
難點不在步驟的數量,而在步驟並不獨立。
- 錯誤歸因。 當一次執行失敗時,可見的失敗往往在真正的錯誤下游好幾步之外。智慧體在第 3 步做了個糟糕的規劃,卻在第 11 步以一個錯誤答案浮現出來。看同一次執行的兩名標註員,可以都正確地認為「這一步錯了」,卻對該歸咎哪一步產生分歧。
- 級聯效應。 一旦某一步出錯,其後的一切都被汙染。後面的某一步是就其本身而言「錯」,還是僅僅因為繼承了糟糕的狀態才錯?標註員需要一條針對這種情況的規則,否則他們會分裂。
- 隱藏狀態。 智慧體的推理並不總在蹤跡裡,它的工具還有你看不見的副作用。τ-bench(Yao 等人,2024)的處理辦法,是把一次執行結束時的資料庫狀態與一個標註好的目標狀態相比對,因為你常常無法僅憑對話記錄判斷正確性。
- 主觀的「必要性」。 某一步是「不必要」而非「錯誤」,是一個判斷題,也是實踐中最不可靠的標籤之一。一次冗餘的搜尋不是錯誤,但它也不乾淨。
先設計分類體系,再標註
分類體系是決定你資料品質的那一部分,值得刻意去構建。最有力的證據,就是那些好的智慧體失敗資料集正是這麼建起來的。MAST,多智慧體系統失敗分類體系(Cemri 等人,2025)出自專家標註員對 150 條蹤跡的研讀:他們反覆打磨類別,直到達到 0.88 的 Cohen's kappa,然後才擴充套件到一千六百多條蹤跡、它的 14 種失敗模式。可靠性來自分類體系的工作,而不是來自更多的標註員。
一條軌跡是一個目標、一串思考-行動-觀察的步驟和一個結果,每一步都帶著自己的標籤
一套行之有效的分類體系是精簡、接近窮盡且互斥的。三個頂層類別覆蓋了大多數智慧體失敗:
- 推理錯誤:錯誤的結論、忽視的證據、糟糕的規劃。
- 執行錯誤:用錯工具、格式錯誤的呼叫、被誤用的結果。
- 安全錯誤:不安全的操作、越權行為、資料暴露。
給標註員一個自由文本的「其他」,讓新型失敗有個去處,而不是被硬塞進最接近的類別,然後盯著「其他」裡的記錄,把反覆出現的提升為命名類別。AgentRewardBench(Lù 等人,2025)是一個很好的示範,說明在執行層面該捕捉什麼:它的專家評審對 1302 條軌跡逐一從成功、副作用和重複性三個維度打分——這三個維度是單一的成功標記會壓平掉的。
一套精簡、互斥、併為新型失敗留有出口的分類體系
測量多步標籤上的一致性
整體成功是容易的標籤。兩個人看一次執行,大體上會一致它成沒成。如果那是你唯一報告的數字,你的資料看起來就比實際更可靠。
在真正困難的地方測量一致性。對步驟正確性和錯誤類別分別計算標註者間一致性,因為它們表現不同:人們在某一步是否出錯上遠比在為什麼出錯上更容易一致。把各標註員對「第一處出錯的步驟」的判斷對齊,因為那單獨一步對訓練過程獎勵模型最要緊,正是 PRM800K /「Let's Verify Step by Step」(Lightman 等人,2023)所說的意義。並且對自動評估保持懷疑:AgentRewardBench 發現常見基準所依賴的基於規則的檢查往往低報智慧體的成功率,所以一個廉價的自動標籤不能替代人工標籤,只能作為第一遍。
化解分歧與培訓標註員
軌跡上的分歧不是要被平均掉的噪聲。它通常是分類體系有軟肋的訊號,也是資訊。當兩名標註員在該歸咎哪一步上分裂時,那一對標籤就告訴你級聯規則沒寫清楚,而修正會回到指南里。
有兩條做法承擔了大部分分量。第一,仲裁分歧,而不是投票,因為在一條軌跡上,「你為什麼挑那一步」的對話正是真正規則被寫下來的地方;見仲裁與化解分歧。第二,在長蹤跡上慢慢培訓標註員。軌跡讓人疲勞,一個在第 40 步的疲憊標註員,和一個在第 2 步的清醒標註員,不是同一臺儀器。為長執行設上限或分頁,並在標註員獨立工作之前,用一組共享的蹤跡校準所有人。
在 Potato 裡怎麼做
Potato 的 trajectory_eval 類型把每一步渲染成一張卡片,併為每步附上一套帶嚴重度權重的錯誤分類體系,於是上面那些標籤成了配置,而不是一份電子表格約定。
annotation_schemes:
- annotation_type: trajectory_eval
name: step_evaluation
description: "Evaluate each step for correctness and mark any errors."
steps_key: steps
error_types:
- {name: reasoning, subtypes: [logical_error, factual_error, planning_error]}
- {name: execution, subtypes: [wrong_tool, wrong_args, api_error]}
- {name: safety, subtypes: [harmful_action, data_leak, scope_violation]}
severities:
- {name: minor, weight: -1}
- {name: major, weight: -5}
- {name: critical, weight: -10}
show_score: true嚴重度權重會彙總成一個軌跡分數,於是你可以給執行排序,並跨模型版本追蹤迴歸。當目標專門是給獎勵模型訓練找出第一處出錯的步驟時,process_reward 類型有一個為此打造的首錯模式。Potato 把 15 種格式的蹤跡匯入一個統一的步驟檢視,於是無論一次執行由哪個框架產生,你都能標註它;見智慧體標註。
繼續閱讀
- 標註智慧體軌跡,逐步的功能參考。
- 過程獎勵模型與步驟級標註,講首錯和逐步的獎勵資料。
- 評估工具使用與函式呼叫,講如何評判單次工具呼叫。
- 標註者間一致性詳解,講這一切所依賴的可靠性統計量。
由真實智慧體基準構建的展示頁把這些方案放到了語境中:WebArena、τ-bench 和 AgentRewardBench。