返回首頁

代理系統/可觀測性

TrajDebug 追蹤代理錯誤生命週期,失敗診斷讓重跑成功率平均提高 10.8%

TrajDebug 不把代理軌跡中的第一個錯誤直接當成根因,而是追蹤錯誤是否修復、留下終局影響及消耗復原預算。團隊以 486 條人工標註軌跡測試,診斷轉成提示後使相同任務重跑成功率平均提高 10.8%。

User:Yaoleilei · CC BY-SA 3.0 · Image source
zh-Hant

清華大學與騰訊混元研究團隊提出 TrajDebug,試圖解決長時程代理最棘手的除錯問題:一次失敗執行可能包含多個局部錯誤,但最早出現、最後出現或最醒目的錯誤,都未必是導致任務失敗的關鍵原因。團隊抽查的 50 條失敗軌跡共有 381 個局部錯誤,平均每條 7.62 個;排除真正的關鍵錯誤後,61.9% 後來已被代理修正,另有 6.6% 雖未修正,卻沒有影響後續決策。

TrajDebug 先把軌跡整理成高、中、低三種細節層級:當前步驟保留原始指令、行動與觀察,較遠歷史則逐步壓縮。系統接著找出與任務規則、歷史資訊、環境回應或同一步推理互相矛盾的「錯誤承諾」,而且錯誤內容及遭違反的依據都必須能逐字定位。相關觸發點會依共同的規則或觀察合併,避免把同一錯誤在規劃、行動及驗證階段的反覆出現重複計數。

第二階段將錯誤分成乾淨修復、昂貴修復、仍具可見影響及仍存在但無終局影響四種狀態。若修復耗掉超過軌跡一半長度,便被視為留下「預算債務」;只有昂貴修復及仍具終局影響者進入最後的因果歸因。新建的 TrajErrBench 包含 400 條 τ²-Bench 客服工具軌跡與 86 條 SWE-Bench Pro 程式軌跡,後者平均長 119.7 步。三名標註者的關鍵步驟一致度,在兩部分分別達 Fleiss κ 0.91 與 0.67。

作者報告,把單次失敗的診斷轉成針對性指引後,相同任務重跑成功率平均增加 10.8%;將少量歷史診斷彙整成失敗記憶,再套用至未見任務,平均增加 5.7%。這使它可能成為代理追蹤平台的根因分析層,而不只是離線評測器。不過最終歸因仍由 LLM 判斷,改善幅度也來自作者自己的重跑設定;GitHub 儲存庫雖已有目錄與說明,程式及資料仍在內部審查,尚不能獨立重現。

來源

  1. TRAJDEBUG: Tracing Error Lifecycle to Identify Critical Failures in Long-Horizon Agent Trajectories
  2. THU-KEG/TrajDebug