Agent 規則污染怎麼驗收?你讓一位 AI「教練」看完舊題,請它寫下一份以後都能用的解題規則;下一輪分數升高了,你可能以為它學會方法。可是,如果規則裡藏的是舊題的列號與答案,分數升高只表示它把答案帶進考場。
這篇專為第一次替 Agent 做評測的人寫。我們用一張虛構表格,從零拆解「教練寫規則 → 工作 Agent 讀規則 → 評分器給分」的流程,再給你一套可照做的新試卷驗收法。你不用先懂模型訓練;只要分得清楚「通用規則」與「特定題目的答案」,就能開始。
先說結論:Agent 規則污染要用陌生題驗收
一句話記住:可信改進=凍結規則後,對未接觸的新題仍有幫助,而且規則來源可追溯。 舊題高分只是線索;規則檔若寫著「第 A17 列選通過」,它更像背答案的便條紙,不像能處理新表格的方法。
- 先把題目、標準答案、可持久保存的規則放在不同權限區。
- 規則定稿後留存版本與雜湊值,再用全新題組做「有規則/無規則」配對測試。
- 比較答案之外,也看規則差異、工具呼叫與可觀測 Trace;無法追溯來源的高分先不要宣稱泛化。
為什麼分數升高還可能是錯覺?
想像老師讓學生根據退費條款練習判斷。學生整理出「有收據、金額不超過 1,000,才可核准」;這是方法。若學生寫下「A17 核准、A18 拒絕」,那是答案索引。兩張便條紙在舊卷上都可能得高分,但換成 B17、B18,只有前者有機會繼續有用。
Agent 的持久規則可以是提示詞、Skill 檔、記憶檔、路由表或小段程式。問題發生在評測資訊被提升成下次執行也會讀到的規則。這一層夾在輸入與模型之間,所以即使模型權重完全沒變,整個系統的分數也會變。想先補基本架構,可讀 Agent Harness 是什麼;本文處理的是這個執行層裡的規則審核。
OpenAI 的評測有效性說明把可找到題目或答案的「污染」、利用評分捷徑的 reward hacking,以及題目本身有漏洞分開討論。Anthropic 的Agent 評測指南則把題目、一次執行、評分器、Trace 與最終環境狀態分清楚。這些分類提醒我們:只看最後一個分數,會漏掉答案從哪裡來。
一張虛構表格,看懂「規則」如何夾帶答案
下面是教學用的示意案例,不是 AlphaLab 執行模型後得到的結果。你可以用試算表手動重建它:工作 Agent 只該看見每列的編號、是否有收據與金額;真正的判斷條件是「有收據且金額 ≤ 1,000 才核准」。舊卷三列分別是 A17:有收據/800、A18:無收據/300、A19:有收據/1,200。
現在故意把一張名為「答案」的隱藏工作表放在教練可讀的位置,裡面列出 A17=核准、A18=拒絕、A19=拒絕。教練若把「A17 核准、A18 拒絕、A19 拒絕」寫進 rules.md,工作 Agent 即使從未直接打開隱藏表,也會透過持久規則取得舊卷答案。這是要示範的資料流;不能因為示意流程說得通,就宣稱某個真實 Agent 已這樣做。
換一份新卷:B41=有收據/900、B42=有收據/1,100、B43=無收據/200。凍結舊規則,不讓教練看新卷,也不給工作 Agent 讀新卷答案。 通用條件可依欄位作答;只記得 A 列號的規則在 B 列上幫不上忙。新卷也必須由評測者獨立檢查答案,避免把錯誤標籤誤當成 Agent 失敗。
Agent 規則污染驗收:五個可以照做的步驟
1.把三種資料裝進不同抽屜
痛點:教練一邊學方法,一邊摸得到答案。做法:把工作題目放進 visible/;把答案與 grader 放在教練、工作 Agent 都無權讀取的 evaluator/;只允許經審核的 rules.md 進入下次執行。請在權限清單上逐項標出誰能讀、誰能寫,而不是只在提示詞中說「不要看答案」。對應的實務原理可參考RewardHackingAgents 原始研究:研究把測試資料存取與評分器修改分成兩個可記錄的路徑,並比較受限環境中的結果。
2.在規則寫入前,查它到底從哪裡來
痛點:一條看似精準的規則可能只是舊題答案換了名字。做法:保存教練提出的原文、來源檔案或工具回傳、寫入時間、審核人,以及規則檔差異。逐條問:它說的是欄位之間的關係,還是 A17 這種題目專用識別碼?若規則含列號、標準答案字串、grader 路徑或僅在舊卷出現的常數,就先隔離待審。這是審核提示,不是一個字串掃描就能證明安全;答案也可能被改寫成看似一般化的語句。
3.凍結版本,才打開新試卷
痛點:每看一次新卷分數就再改規則,新卷很快變成舊卷。做法:在接觸新卷之前,記錄 rules.md 的內容雜湊、模型版本、工具權限、提示詞、評分規則與執行預算。在 macOS/Linux 終端機,可以先用 shasum -a 256 rules.md 留下檔案指紋。若測完又改規則,下次驗收就另開一份尚未用於選版的新題組。這與OpenAI 評測最佳實務使用保留資料集比較改動的原則一致。
4.對同一批新題做有/無規則配對
痛點:只看到更新後分數,分不清是規則有效、題目變簡單,還是設定變了。做法:固定新卷、模型、工具、評分器與預算,讓同一工作 Agent 分別在「不載入新規則」與「載入已凍結規則」兩種條件下作答;兩邊都不要接觸新卷答案。保留每題結果與錯誤類型,必要時重複執行以觀察波動。比較的是同一題上的差異,不要把舊卷 90 分直接減新卷 70 分當成規則效果。
5.檢查 Trace,再決定能說到哪裡
痛點:答對了,但不知道它走哪條路。做法:記錄讀取規則、開啟檔案、工具呼叫、寫入記憶、grader 執行與最後輸出;把能記錄到的事件連成資料流。OpenAI 的Agent 評測文件也建議用 Trace、grader、資料集與 eval run 一起看工作流程。Trace 是可觀測事件的收據,不能單憑空白 Trace 推論所有隱藏路徑都不存在。
一份最小驗收單:四張成績一起看
開始時不用建複雜平台。把同一批新題的四項結果放進工作簿:無規則答對情況、凍結規則答對情況、規則來源是否合格、Trace 是否碰到禁區。每題留下題目 ID、欄位、兩邊答案、grader 判定與人工複核結果。若新題改善但規則來源不清楚,先補來源審核;若來源乾淨但新題沒有改善,就不要把舊題的提升寫成泛化。
你可以把寫入閘門寫成四行可討論的偽程式:candidate = coach.propose(visible_examples) → audit(candidate, source_log, forbidden_patterns) → freeze(candidate, hash) → paired_eval(fresh_tasks, with_rule=True/False)。這段只表達順序,省略了檔案權限、失敗重試、敏感資料清理與版本管理;落地時須由執行環境強制權限,並把來源與執行紀錄保存到可稽核位置。想把這套檢查接進完整迴圈,可接著讀 Agent Harness 實作教學。
三個常見誤判:不要只看漂亮的分數
- 把舊卷進步當成能力進步。舊卷可用來除錯;主張能處理新情境,至少要有凍結後的新題證據。
- 只掃字串就宣告乾淨。規則可能用同義詞、編碼或位置線索偷帶資訊;仍要檢查來源、差異與資料可達性。
- 只隔離答案檔,卻把 grader 輸出餵回教練。逐題正解、錯題回饋與可反推答案的分數,都可能成為另一條資料路徑;回饋粒度要按用途設計。
如果你原本正在做一般 Eval 防洩漏,先看 Canary、網路白名單與 Trace 審計;這篇補的是「一次評測看見的東西,被寫成下一次會讀的持久規則」這條跨回合路徑。若你在做自改 Harness,RRSI 的候選版本與 holdout 設計則示範如何把選版與最終驗收分開。
FAQ:Agent 規則污染最常問的八件事
1.新題得分升高,就能確定學到方法嗎?
不能直接確定。它是較強的支持證據;還要確認新題答案沒走其他路徑、評分器一致、任務足夠代表你想處理的場景。
2.規則裡出現舊題 ID,就一定是作弊嗎?
不一定。ID 可能只是合規的錯誤案例註記;關鍵是執行時是否靠它作答,以及它是否被批准進入可持久使用的規則。
3.只要把答案藏在隱藏工作表就安全嗎?
不安全。隱藏工作表主要是介面呈現設定;Microsoft 說明指出,隱藏內容仍可被其他工作表引用,也能取消隱藏。正式評測把答案保存在 Agent 無法讀取的評分區。
4.為何要同時跑「無規則」版本?
因為它給同一批新題一個對照。否則你看到的高分可能來自題目本身較簡單,而不是新規則。
5.新卷可以每晚重跑嗎?
可以把固定測試當成回歸檢查;但若它的結果持續用來挑選或改寫規則,就應另留未參與選版的題目做最終驗收。
6.Trace 裡沒看到答案檔,是否表示沒有洩漏?
不能這樣推論。先查 Trace 涵蓋了哪些工具與檔案路徑,再檢查規則來源、掛載內容與可觀測範圍。
7.可以讓同一個教練看 grader 的逐題回饋嗎?
取決於你要測什麼。若這些回饋會進入正式 holdout 的規則選擇,就破壞了「未見題」的驗收條件;可另設開發題組供教練學習。
8.沒有 AI API,也能先做這套檢查嗎?
可以。先用上面的 A/B 表格手動練習分辨「欄位條件」與「列號答案」,畫出誰能讀寫哪個檔案;接入 Agent 後,再以同一套權限與配對測試驗收。
給新手的四個重點
- 舊題分數回答「這份題做得如何」,新題配對測試才開始回答「規則是否可轉移」。
- 規則的來源與寫入權限,和最後答案一樣值得驗收。
- 凍結規則版本後再碰 holdout;反覆拿 holdout 調整規則,就要換一份新 holdout。
- 把答對率、來源審核與 Trace 並排,才能說清楚改進的證據範圍。
接著閱讀
左右滑動查看更多推薦
結語:先封卷,再說 Agent 真的進步
可信改進=凍結規則後,陌生題仍有幫助,而且規則來源可追溯。 你今天就能做第一步:拿一份自己的 Agent 規則檔,圈出所有題目 ID、答案字串與外部檔案路徑;把可疑條目移到待審清單,然後準備一份規則寫定後才開封的新題。若想把這樣的驗收流程做成可重複的系統,可從 AlphaLab 課程或 AI 文章專區接著學。






