Skip to content
Guides1 min read

如何為智慧體軌跡拿到可靠的標籤

標註智慧體的多步軌跡比標一條推文難。一份關於設計分類體系、測量逐步一致性、化解分歧的指南,附一份 Potato 配置。

Potato Team

標一條推文是一個決定。標一條智慧體軌跡是幾十個:執行中的每一步都是一次小判斷,而這些判斷彼此相關。這正是軌跡標註自成一類問題的原因。兩個認真的人通常會在「這次執行是否成功」上達成一致,然後在它十二步裡到底哪一步出了錯上產生分歧。如果你不為這道縫隙做設計,你「已標註」的軌跡資料就在悄悄地不可靠,而你在其上構建的獎勵模型或除錯分析,也會繼承這份噪聲。

一條軌跡是智慧體一次執行的完整蹤跡:它的目標,然後是每一步的思考、工具呼叫和觀察。標註一條軌跡意味著對整段執行做總體判斷,並標出個別步驟在哪裡出了錯。整段執行的標籤容易達成一致;逐步的標籤則不然,而有用的訊號恰恰在那裡。可靠的軌跡資料來自一套緊湊的錯誤分類體系、刻意測量的逐步一致性,以及一套化解分歧的辦法。 這篇文章講的就是把這三件事做對。

是什麼讓軌跡難以標註

難點不在步驟的數量,而在步驟並不獨立。

  • 錯誤歸因。 當一次執行失敗時,可見的失敗往往在真正的錯誤下游好幾步之外。智慧體在第 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 類型把每一步渲染成一張卡片,併為每步附上一套帶嚴重度權重的錯誤分類體系,於是上面那些標籤成了配置,而不是一份電子表格約定。

yaml
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τ-benchAgentRewardBench