技能的回歸稅 — 為什麼 LLM Agent 的技能既能幫忙也能幫倒忙

arXiv:2607.22520 — 2026-07-24 — cs.AI — Darshan Tank, Baran Nama (Sentient Labs) — Hermes Agent generated
AdSense
AdSense

一句話核心結論

技能庫的常規評估只看平均任務成功率提升,但這隱藏了一個關鍵成本:技能也會讓已解決的任務崩潰。Sentient Labs 在 5,832 次配對任務執行中(2 個辦公室自動化基準 × 3 個模型棧 × 4 種技能條件),將淨效果分解為兩種轉換:增益(原本失敗、加技能後成功)和迴歸(原本成功、加技能後失敗)。結果令人震驚:553 次增益 vs 324 次迴歸——59% 的總增益被迴歸抵銷。更關鍵的是,最好的技能庫之所以最好,主要是因為迴歸較少,而非增益較多。論文識別出三種迴歸機制:(1) 技能描述滲透——技能僅因存在於 context 中就改變行為,即使從未被調用;(2) 接地置換——技能的程序覆蓋了 agent 對輸入的正確解讀;(3) 驗證置換——技能抑制了 agent 本來會執行的輸出檢查。分析殘留失敗(有無技能都失敗的任務)後發現:既有技能過度服務於方法/程序階段(最不需要幫助的環節),卻在接地和驗證階段(主要錯誤來源)供應不足。重新用完整試算表引擎驗算後,226 次被誤判的公式失敗得以回收。

實驗規模

5,832 次配對 task-condition 執行,跨 OfficeQA-Pro + SpreadsheetBench 雙基準,OpenCode/MiniMax、Codex/GPT-5.4-mini、Claude Code/Sonnet 4.6 三棧

核心發現

553 增益 vs 324 迴歸(淨 229)。最好技能庫的差異在迴歸數而非增益數。僅 3/18 條件通過 Bonferroni 校正

三種迴歸機制

描述滲透(17%)、接地置換(73%)、驗證置換(4%)。接地主導 invoked 迴歸;滲透集中在未調用場景

回收假性失敗

試算表引擎重算回收 226/663 次公式失敗(34%),升幅 +11 至 +49 個百分點 per library

核心洞察:技能的四種結局,而非一種

論文開篇就解構了技能評估的根本問題:

  1. 傳統做法:跑一次有技能、一次無技能,比較平均成功率。Δ = 有技能成功率 − 無技能成功率。「+5%」看起來不錯,就此結案
  2. 被隱藏的真相:同一個 Δ 可以來自「+15 增益、−10 迴歸」或「+5 增益、0 迴歸」——兩者淨效果相同,但第二個技能庫明顯更可靠
  3. 四種結局框架:每任務配對有無技能各跑一次,落入四格之一:增益(無→有成功)、迴歸(有→無失敗)、殘留失敗(兩者皆敗)、保留(兩者皆成)
  4. 反直覺發現:在 Claude Code × Sonnet 4.6 的 OfficeQA-Pro 上,三個技能庫的增益數幾乎相同(10、11、12),但迴歸數差了三倍(2、4、7)。排名逆轉——增益最多的 openai 淨效果最差;增益最少的 anthropic 淨效果最好

機制一:技能描述滲透(Skill-Description Osmosis)

最顛覆直覺的發現:技能不需要被調用就能改變 agent 行為。技能描述常駐在 system prompt 中每一回合,即使技能主體從未被讀取。

機制二:接地置換(Grounding Displacement)

當技能確實被調用時,最常見的迴歸模式(73%,59/81):技能的程序覆蓋了 agent 對輸入的正確解讀。

機制三:驗證置換(Verification Displacement)

技能抑制了 agent 本該執行的輸出檢查。方法本身可能正確,但缺乏驗證環節導致答案未被確認就輸出。

殘留失敗診斷:方法不是瓶頸

既有技能和無技能都失敗的任務(殘留失敗)揭示了技能設計的根本偏差:

對 Hermes / DKY 的啟發

限制