什麼是提示詞退化?
在優化提示詞時(例如為了修復新發現的 A Bug 而往提示詞中加上了一條新 Rules),我們常常會無意間導致 AI 「顧此失彼」——AI 雖然記住了新規則,卻把上週好不容易調校好的舊約束給忘光了,導致原本工作正常的代碼生成再次出錯。這被稱為 提示詞退化 (Prompt Regression)。
提示詞防退化對比測試工作流 (Prompt Regression Prevention Flow) 透過建立標準的提示詞測試集(Prompt Test Suite),防止舊 Bug 復發。
步驟詳解與實戰指令
┌──────────────────────┐
│ 1. 建立測試集 (Suite) │ <-- 收集 5 組歷史典型任務與正確輸出
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 2. 微調提示詞 (Tuning)│ <-- 新增規則或修改 XML 結構
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 3. 併發沙盒回測 │ <-- 在背景並行跑 5 組輸入測試
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 4. 語意對比與發布 │ <-- 檢查 AST 與 output 是否全數合規
└──────────────────────┘
步驟 1:收集歷史典型任務與斷言 (Golden Set)
在專案中建立 .prompttests/ 目錄,收集 5 組歷史重構任務(Adversarial Inputs)以及其預期的代碼特徵(例如必須包含 await 且沒有 new)。
步驟 2:微調與優化提示詞 (Tuning)
根據新遇到的衝突,微調提示詞文檔,新增規則或加強 XML 標籤權重。
步驟 3:並行沙盒批量回測 (Batch Execution)
在本地啟動沙盒測試引擎,使用微調後的新提示詞,並行向 LLM 發送這 5 組歷史任務進行代碼生成。
- 實戰指令:
pm test-prompt --suite=.prompttests/
步驟 4:語意與 AST 差分對比
測試引擎會自動解析生成代碼的 AST 語法樹。如果發現 5 組測試中的任何一組出現了規則違規(例如某個測試方法中又出現了 new),則判定發生了提示詞退化,自動 Rollback(回滾)修改,警告開發者進行手動介入。只有當 5 組測試 100% 通過時,才允許將新提示詞發布投產。