AI 突然變笨?Anthropic 工程師:別急著換模型,先看你的提示詞是不是爛掉了

你有沒有遇過這種狀況:本來好好的 AI 系統,換了個新模型、或多人改了幾輪提示詞之後,反而開始亂答?多數人第一反應是換模型、調參數、把提示詞愈寫愈長。但 Anthropic 的工程師說,問題八成不在模型,在你那個堆滿歷史包袱的提示詞。這篇把她公開的整套除錯心法整理給你,外加我自己用 Claude Code 建 agent 的踩坑體會。

Anthropic Code w/ Claude 2026 演講 The Prompting Playbook
來源:Anthropic「The Prompting Playbook」演講影片,Code w/ Claude 2026(YouTube

這套方法是誰講的?

今年 5 月,Anthropic 在倫敦的 Code w/ Claude 2026 開發者大會,應用 AI 工程師 Margot van Laar 做了一場 33 分鐘的演講,標題就叫「The Prompting Playbook」(提示詞實戰手冊)。她不是丟一堆 do's and don'ts,而是拿一個真實客服機器人的爛提示詞,當場一步步修給你看。

她開場第一句話我覺得超有共鳴:「我們很少從零寫一個提示詞,多數時候我們是在除錯一個舊的。」(We're rarely writing a prompt from scratch. We're often debugging an existing prompt.)這句話完全打中我,因為我自己在維護 AI 工作流的時候就是這樣,沒幾天就在改舊指令。

為什麼你的提示詞會慢慢「爛掉」?

想像一個提示詞,好幾個人一起改、沒有明確負責人,幾個月下來混進了:舊模型時代的補丁、不同業務場景的規則、直接從官網複製貼上的文字(van Laar 示範的那個提示詞裡,甚至還留著 hero image 說明跟 cookies 提示)。

平常還能跑,一旦你換到新模型,測試案例就開始失敗。你第一個懷疑的是模型,但真正的問題是:提示詞本身已經亂到模型自己都讀不懂了。

她全場用一個電信客服機器人(Meridian Mobile)當示範,從一個有問題的提示詞出發,跑 5 個測試案例,一個一個失敗模式去修。我把她的心法拆成兩個情境來講。

情境一:維護一個跑歪掉的舊提示詞

心法 1:先建評估清單,再動提示詞

核心動作:改任何東西之前,先定義你的測試案例。沒有評估清單,所謂的「優化」全憑感覺。

她說一份及格的評估清單要涵蓋三種案例:

1. 控制組(control case):模型本來就答得對的、不能改壞
2. 邊緣案例(edge case):以前看過它失敗的,改完要持續通過
3. 能力邊界:哪些要轉人工、哪些該直接拒答

為什麼這麼做:評估清單還能幫你分清楚兩種問題 —— 一種是模型有能力、只是指令不清(改提示詞就能救);另一種是模型根本沒這個能力(再怎麼改提示詞都是白費,得換模型或接外部工具)。

小結:沒有 eval,你只是在對著一面歪掉的鏡子調整自己。

心法 2:別急著修問題,先把結構清乾淨

核心動作:在針對具體失敗下手之前,先做「prompt 衛生」—— 把不同性質的內容用結構分開。

她的做法是加 XML 標籤,把角色、指引、政策、語氣明確切開:

<role> 你是 Meridian Mobile 的客服助理… </role>
<guidelines> 一般回應指引… </guidelines>
<policy> 資費與計畫政策… </policy>
<tone_of_voice> 語氣要求… </tone_of_voice>

光是這一步、完全沒針對任何失敗案例,5 個測試就有一個立刻改善。她有一句話我直接抄起來:「如果你讀一個提示詞,分不清哪裡是指南、哪裡是政策、哪裡是資料,那模型大概也分不清。」

她還補一招「輸出契約」:在提示詞要求模型把回應包在 <response> 標籤裡,再到 API 加 stop_sequences: ["</response>"],模型一輸出閉合標籤就停,不會多生廢話。客服這種簡單回覆影響不大,但你的輸出是巢狀 JSON 的話,這個設定對格式一致性差很多。

心法 3:一次只修一個失敗案例

結構清乾淨後,她開始一個一個修,過程中帶出三個我覺得最值得記的教訓。

教訓一:舊補丁會變成新詛咒。客戶問「我的無限方案有多少熱點流量?」資料裡明明有答案(5GB),模型卻叫客戶自己去查官網。原因是提示詞裡有一條舊補丁:「絕對不要給錯誤方案資訊,請引導至查詢網址。」這在舊模型時代有必要,但新模型指令跟隨太強,反而過度執行、連有答案都不敢講。修法是改成「客戶資料裡有就以資料為準直接回答,資料不足才引導」。她建議用版本控制記下每條防禦性補丁的新增原因,方便日後移除。

教訓二:指令不能取代能力,要給工具。客戶問月中升級方案下期帳單多少,模型給了一串含糊的心算、講不出確切金額。提示詞寫著「務必精確計算按比例費用」——但要求模型做好,不等於給它做好的能力。修法是給它一個 calculate_proration 計算工具(API 層要定義 schema+實作邏輯)。加了工具,所有計算案例全過。這場演講最該記住的一句話就是:「指令不會增加能力。」(Instructions don't add capability.)

教訓三:只告訴模型代價,它會做出偏心的決策。出現帳單爭議該轉人工,模型卻自己硬要診斷。原因是提示詞只寫了「轉接約 8 美元、會影響團隊指標」——只給了一面。模型看不到「不轉接的代價」,當然偏向不轉。修法是把另一面補上:「轉接 8 美元,但處理不當造成退款或客戶流失,損失遠大於此,請自行判斷。」她說模型愈聰明愈會自己做取捨,你的任務是給它完整的資訊框架,不是只丟一個你想要的結果。

情境二:從零打造一個新 agent,架構比模型重要

下半場她示範從頭建一個 agent:根據 8 位員工的排班限制,自動生出一週班表。因為規則是硬性的,她乾脆用 Python 函式程式化檢查每張班表違規幾條,不用 LLM 當裁判。

重點是她沒有一開始就寫一個完美提示詞,而是逐步測不同的「模型+策略」組合,看哪個最划算:

組合結果
Sonnet 4.6 + 簡單提示詞全部失敗,違規數高
Opus 4.7 + 同一個提示詞仍全部失敗,但違規數明顯下降
Opus 4.7 + 動態思考全部通過,但 token 與延遲都 ×3
Sonnet 4.6 + 更好的提示詞(含自我檢查)過 2/5,卡在輸出長度上限
三段式 agent 循環(生成→評估→修復)全部通過,token 與延遲最低

最後勝出的不是最強的模型,而是最聰明的架構。三段式的做法是:第一個提示詞生成班表草稿,第二個逐條核對規則、列出每個違規+證據,第三個收到違規清單做針對性修正。三個提示詞各自獨立、每個只做一件事,刻意保持簡單

她還點出這個架構一個額外好處:軟性需求可以在第二個(評估)提示詞裡臨時加,例如「Harry 跟 Sally 盡量別排同一班」,完全不用動到後端那支硬性規則的 Python。彈性整個拉開。

我自己怎麼用:建 agent 跟教同仁寫 prompt 都踩過

看完最有感的是,這些不是 Anthropic 工程師才會遇到的事,我自己用 Claude Code 搭 Telegram 建 AI agent 跑日常工作流時,幾乎每一條都踩過。

先講「指令不能取代能力」這條。我以前會在提示詞裡寫「請精確計算」「不要算錯」,結果它還是給我一串看起來很認真、其實不可靠的心算。後來改成把計算交給寫死的腳本、AI 只負責判斷什麼時候呼叫,整個就穩了。這跟 van Laar 給 calculate_proration 工具是同一件事 —— 該交給工具的別硬要 AI 用嘴算。

再來是「架構比模型重要」。我之前也以為換更強的模型就會更好,但真正讓我的 agent 從「常常跑歪」變成「能交差」的,是把任務拆開、每一步只專心做一件事,而不是塞一個超長提示詞要它一次搞定。跟她那張表的結論一模一樣。

最後是教學現場。我是教育訓練講師,常要教第一線同仁怎麼跟 AI 講話。「分不清指南、政策、資料,模型也分不清」這句,我會直接拿來當教材 —— 與其叫同仁把需求寫成一大段,不如教他們分段、標清楚「這是規則/這是語氣/這是資料」,產出的品質立刻不一樣。這比講一堆抽象的 prompt 技巧好用太多。

套用前,有幾點要先想清楚

評估清單的品質決定一切。她示範只用 5 個案例,真實環境要大得多。邊緣案例的覆蓋率,直接決定你能改善到哪。清單設計爛,你只是在優化一個錯的目標。

加工具需要工程支援。定義 schema、實作邏輯,不是純提示詞工程師一個人能搞定的,要後端配合。

三段式 agent 有延遲開銷。它比單一提示詞多兩次 LLM 呼叫。雖然整體效能比「Opus+動態思考」更好,但在對延遲極度敏感的場景還是要評估。

如果你手上也有一個愈改愈亂的提示詞,我的建議是先別急著換模型 —— 今天就回去把它的結構清一遍、補一份 eval 清單,光這兩步可能就把你大半的問題解掉了。


本文整理自 Anthropic 應用 AI 工程師 Margot van Laar 在 Code w/ Claude 2026(倫敦)的演講「The Prompting Playbook」(2026 年 5 月),內容依演講影片逐字稿整理,案例與心得為作者本人補充。原始影片:https://www.youtube.com/watch?v=G2B0YWuJUgI

留言