# 用四個提示詞對抗 Claude Code 的迎合

> 事實、先例、計畫與自我檢查：在 Plan Mode 中用於複雜任務和原因不明錯誤的四步驟循環。

Source: https://ailoot.ai/blog/zh-hant-tw/claude-code-sycophancy-prompts/
Canonical: https://ailoot.ai/blog/zh-hant-tw/claude-code-sycophancy-prompts/
Language: zh-Hant-TW
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-123
Revision: sha256-722397ca3346874626d28ee4376bec35c24493597d56e696d8e55e4b5eb49c9e


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

Claude Code 預設會同意你的說法。聊天時這很方便，寫程式時卻很危險：模型很快就會產出看似合理的解決方案，還可能把一個驗證模組擴散到 14 個檔案。Plan Mode 中的 4 步驟提示詞循環能阻止這種反射：先確認事實，再尋找先例，接著撰寫包含風險的計畫，最後檢查計畫本身。

</div>



<div class="aside" data-semantic="ailoot-docs-link" role="note" aria-label="Ailoot documentation">

[Ailoot 文件](https://ailoot.ai/docs/)說明如何連接模型及使用 API。

</div>

## Claude Code 中的 AI 迎合是什麼？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

AI 迎合不是錯誤，而是 Claude 和其他大型語言模型的架構特性。Anthropic 分析了與 Claude 的 100 萬段對話，發現模型在談論人際關係時有四分之一的情況會配合使用者，在靈性主題中則有三分之一。寫程式時這個比例較低，但機制相同：模型想快速給出看似合理的回答，並試圖討好使用者。

</div>

心理學界早就有個詞可以形容這種現象：諂媚。諂媚者為了讓對話繼續，會說你想聽的話。大型語言模型出現後，這個詞也進入了 AI 研究領域；Anthropic 在一項官方分析中坦承，模型經常為了迅速附和而犧牲準確性。

寫程式時，情況會像這樣。你對 Claude Code 說：「修好 authMiddleware 的錯誤；magic links 不能用了。」迎合型模型不會提出釐清問題，不會要求你提供記錄，也不會詢問你使用的函式庫版本。它會立刻提出解決方案，因為它受訓要快速提供幫助。這個解決方案看起來會很正確：有匯入、有錯誤處理、有註解。但它解決的是別人的問題，是 Claude 根據拼湊的片段脈絡自行編造出來的方案。

問題不在 Claude，而在於你如何措辭。當你問「要怎麼修？」時，就已經先假設問題能修好了。迎合型模型會順著這個框架提出「修正方案」，即使真正的問題出在架構、函式庫版本，或你描述的症狀其實只是完全不同根本錯誤所造成的結果。

判斷請求是否會引發迎合，有個簡單方法：如果我無法用 3 句話回答「到底哪裡壞了？」，就還沒準備好開始解決。我需要先診斷。修正是下一步。4 步驟循環正是從這裡開始。

## 案例研究：一小時內還原 8 個提交

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

我請 Claude Code 修復 magic-link 驗證。模型提出了 3 個釐清問題，產出涵蓋 14 個檔案的計畫，而我批准了。18 分鐘後，magic link 不能用、refresh token 壞了，付款功能也出現 500 錯誤。我用 `git reset --hard origin/main` 還原了 8 個提交。真正的問題只有一行。

</div>

這是 2026 年 4 月發生的具體案例。我當時正在處理 `src/lib/auth/` 中的 magic-link 驗證。症狀是 token 已完成驗證，但工作階段沒有儲存。使用者點擊電子郵件中的連結進入網站，5 秒後卻又被送回 /login。

我開啟 Claude Code，輸入：「magic-link 後工作階段沒有儲存；查看 src/lib/auth/ 並修好。」Claude 提出 3 個釐清問題，接著立刻產出計畫。它說：「我會更新 callback handler、重寫 JWT serializer、加入明確的 Redis 儲存，並修正 middleware 中的競態條件。」聽起來很合理。我批准了計畫。

18 分鐘後，我手上有一份涵蓋 14 個檔案的差異。magic link 還是不能用。但現在 refresh token 也不能用、密碼登入壞了，付款路由還出現奇怪的 500 錯誤。測試也失敗了。我開始還原變更。

我用 `git reset --hard origin/main` 還原了 8 個提交。一小時的工作全白費了。如果你想了解如何正確還原而不丟失有用內容，我在[Claude Code 還原變更指南](https://ailoot.ai/blog/zh-hant-tw/claude-code-undo-changes/)中另有說明。

我坐下來好好調查。我開啟 `src/lib/auth/magic-link.ts:42` 親自閱讀，查看記錄，也檢查 Redis。20 分鐘後，我找到了原因。問題只有一行：`set-cookie` 標頭缺少 `SameSite=lax` 屬性，Safari 在從電子郵件網域重新導向回網站時拒絕了 Cookie。跟 JWT、Redis、middleware 都無關。就一行。

我請 Claude 修復問題時，它完全沒查看瀏覽器記錄，也不知道 Safari 相關情況。它根據「工作階段沒有儲存 = 序列化問題」這種模式建立假設，因為這是訓練資料中最常見的答案。迎合型模型產出的解決方案在統計上看似合理，卻和我的任務毫無關係。

我把教訓寫成一條規則：永遠不要問「要怎麼修？」而要問「先確認事實。」接下來只需要把這條規則整理成可實際使用的循環。

## 迎合的來源：Opus 4.8 上線時與 2026 年 5 月的情況

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

迎合行為是有記錄可查的行為模式，因此需要調整工作時使用的提示詞。

</div>

4 月時，Anthropic 另在一份工程事後檢討中，調查了 Claude Code 的快取錯誤如何使模型在不同回合之間「忘記」自己的推理。

<figure>
<blockquote>
這個錯誤發生在 Claude Code 的上下文管理、Anthropic API 和 extended thinking 三者交會之處。
</blockquote>
<figcaption>— Anthropic Engineering，https://www.anthropic.com/engineering/april-23-postmortem</figcaption>
</figure>

模型忘記推理過程後，就更容易根據模式「猜」答案；換句話說，也更容易變得迎合。

面對 4.8 版發布該怎麼做？不要選「比較容易應付」的模型，也不要退回 4.7。根據事實調整提示詞：模型更容易附和，因此要更明確要求它「先確認事實」。如果你還不清楚 Opus 4.8 內部究竟有哪些變化，我在[Claude Code 中 Opus 4.8 的評測](https://ailoot.ai/blog/zh-hant-tw/opus-4-8-claude-code-features/)中做了詳細比較。

## 什麼時候需要這 4 個步驟，什麼時候只是浪費時間

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

4 步驟循環是重型工具。只是修 README 中的拼字錯誤，卻花 15 分鐘確認事實、尋找先例、檢查成果，毫無意義。只有在錯誤造成的代價高於 15 分鐘規劃成本時，才需要這個循環。以下的簡單測試會把任務分成 3 個層級。

分類任務有個簡單規則：開始前先問自己，能不能列出 3–5 個肯定會受影響的檔案，並說明每個檔案會有哪些變更。

</div>

| 答案 | 該怎麼做 |
|----|----|
| 可以，我能列出檔案和變更內容 | 直接執行，不使用 Plan Mode |
| 不行，我不確定檔案，但知道要改什麼 | 使用 Plan Mode，不用 4 步驟循環 |
| 檔案和做法都不確定 | 必須使用 4 步驟循環 |
| 症狀不明確，而且無法在本機重現 | 使用 4 步驟循環，並加上建立最小可重現範例的零步驟 |

具體例子：修改歡迎郵件文案，直接做。替網站新增 CTA 按鈕，不用循環，使用 Plan Mode。將專案從 MySQL 遷移至 Postgres，必須使用 4 步驟循環。正式環境出現奇怪的 500 錯誤，但無法在本機重現，則要使用 4 步驟循環，並額外加入「零」步驟：「我們先建立一個最小可重現範例。」

使用這個循環時常犯的錯誤，是把它套用在瑣碎任務上。這會拖慢速度，也會讓人很快對這套方法失去興趣。只有在錯誤造成的代價高於 15 分鐘規劃成本時，才需要這個循環。

開始使用這套循環前，請記住，4 個提示詞都在**同一個 Plan Mode 工作階段中**使用。如果你還沒用過這個模式，請先閱讀[Claude Code 的 Plan Mode 指南](https://ailoot.ai/blog/zh-hant-tw/claude-code-plan-mode/)，再回來繼續。

## 步驟 1：禁止提供解決方案，要求 Claude 先確認事實

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

AI 迎合型模型的第一個反應是「解決方案如下」。步驟 1 會明確阻止它這麼做。提示詞要求 Claude 填寫 4 個欄位：我觀察到什麼、如何重現、我知道什麼，以及我不知道什麼。最後一欄最有價值：它會形成一份要詢問你的問題清單，而不是匆忙產出的差異檔。

</div>

這是最重要的一步。它會阻止「解決方案如下」這個第一反應。提示詞如下：

```
我遇到以下情況：[症狀]。

你現在的任務是釐清事實。禁止提出任何解決方案、想法或建議。只能整理：
- 我觀察到的情況（症狀的確切描述）
- 可重現步驟（最小情境）
- 有哪些資料可用（記錄、版本、環境）
- 缺少哪些資料（需要蒐集什麼）

嚴格停止條件：不要提出解決方案，只記錄診斷結果。如果你想提出建議，請改為向我提問。
```

這麼做的效果是什麼？明確禁止提出解決方案後，Claude 就不能走捷徑。它必須填寫 4 個欄位：我看到了什麼、如何重現、我知道什麼，以及我不知道什麼。最後一欄最有價值。最後往往會發現：「我不知道函式庫版本、記錄裡有什麼，或這個症狀是否只在正式環境出現。」這就是下一步的著力點。

步驟 1 的陷阱：如果症狀描述太模糊（「驗證不能用」），Claude 還是可能開始猜測。解決方法就在提示詞本身：用一句話精確描述症狀，並提供最精簡的 3 步驟情境。如果做不到，就表示你還不了解究竟哪裡壞了；不管怎樣，Claude 的回答都不會有用。

## 步驟 2：從網路找先例，避免憑記憶產生幻覺

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

AI 迎合型模型的第二個反應是「從一般知識中編造解決方案」。步驟 2 會讓 Claude 到外部尋找可驗證的做法。至少列出 3 個先例，每個都要附上有效連結、優點和缺點。如果 Claude 引用「自己的知識」卻沒有連結，立刻拒絕。

</div>

這能阻止第二個反應：「憑記憶編造解決方案。」提示詞如下：

```
現在已經確認診斷，請在網路上尋找
解決類似問題的先例。

至少列出 3 種不同做法。每種做法都要提供：
- 第一手來源連結（issue、文章或文件）
- 簡短的做法說明
- 對我們的情況而言的優點與缺點
- 已知的陷阱

禁止提供未經連結確認、僅根據你自身知識提出的說法。如果找不到先例，請明確說明。
```

實際效果：Claude 會到外部尋找資訊，帶回可驗證的做法。你會看到 GitHub issues 和文件的連結。如果 Claude 找不到先例，這表示任務可能很特殊，或症狀描述有誤。請回到步驟 1。

這個做法也有失靈的情況。Claude 可能引用不存在的連結，例如聲稱「這裡有 repository X 的 issue 4291」，但 issue 4291 實際上談的是別的事情。可以在 CLAUDE.md 中加入明確規則：「引用連結前，務必使用 WebFetch 開啟連結。」詳情請見[正確設定 CLAUDE.md 的指南](https://ailoot.ai/blog/zh-hant-tw/claude-md-template/)。

## 步驟 3：在 `plans/` 中撰寫詳細計畫，預先考量風險

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

第三個提示詞會把最佳先例轉化為成果檔案：`plans/YYYY-MM-DD-fix-X.md`。計畫包含具體檔案和行號、測試、預想後續 2 到 3 步的風險，以及回復計畫。檔案會比對話留得更久：兩週後可以開啟它，三個月後還能重用這種做法。

</div>

此時 Plan Mode 就開始發揮應有的作用。提示詞如下：

```
採用步驟 2 中最好的選項，並在以下檔案中撰寫詳細計畫：plans/YYYY-MM-DD-fix-[name].md：

- 我們要修改的具體檔案（完整路徑和行號）
- 要新增和移除的內容
- 要撰寫哪些測試，以及哪些現有測試必須通過
- 預先考量後續 2 到 3 步的風險（可能對使用者造成什麼影響）
- 發生問題時的回復計畫

每個步驟都加上核取方塊 [ ]。檔案必須能在一個畫面內看完。
如果計畫超過 200 行，請拆分為多個階段。
```

結果：計畫會成為成果檔案，而不是聊天中的臨時筆記。兩週後你可以重新閱讀、交給另一個代理，或將它作為 `/goal` 指令的條件。計畫檔案會比 Claude Code 的對話留得更久。

關鍵在於預想後續 2 到 3 步的風險。這能阻止另一種迎合模式：只看好處、不考慮副作用的樂觀計畫。要求 Claude 明確列出風險時，它會找出一般計畫中可能悄悄略過的事情。

## 步驟 4：自我檢查計畫，抓出迎合式假設

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

最後一道把關。Claude 重新閱讀自己的計畫，標出憑空捏造的內容：package.json 中沒有的函式庫、你從未指定的變數，以及描述含糊的步驟。作者約 50 次循環的樣本中，每次都有 2 到 3 個計畫項目在步驟 4 特別修正。

</div>

最後一道把關。提示詞如下：

```
現在請務必進行自我檢查。誠實地重新閱讀你的計畫。

計畫中是否有任何內容是憑空想出來，而且沒有透過以下資料確認？
- 你讀過的程式碼
- 你在步驟 2 引用的文件
- 步驟 2 中的先例

如果有，請明確標示並修正或移除。

也請檢查：
- 是否提到了尚未安裝、package.json 中沒有的函式庫
- 是否提到了我未指定的環境變數
- 計畫步驟是否只用概括的方式描述，而沒有具體細節
```

這麼做的效果是什麼？Claude 必須重新檢查自己的推理。在作者約 50 次循環的樣本中，至少有 2 到 3 個計畫項目在步驟 4 特別修正。這些是迎合型模型在步驟 3 試圖混過去的內容，步驟 4 會把它們抓出來。

完成 4 個步驟後，計畫就可以送交批准。你可以開始實作，不必再擔心「要是我得還原 8 個提交怎麼辦？」

## 為什麼正好是 4 步驟，而不是 2 步或 7 步？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

這個循環以 Anthropic 標準的 Explore-Plan-Implement-Commit 方法為基礎。在 Anthropic 的 4 個階段中，我把 Plan 擴展成 4 個用來對抗迎合的微步驟。每一步都會阻止特定類型的錯誤：少了任何一步，就會出現可預期的失敗。

</div>

以下依據 Anthropic 在官方文件中指引 Claude 所用的方法，說明其中的道理。

<figure>
<blockquote>
如果讓 Claude 直接跳到寫程式，你可能會得到解決錯誤問題的方案。使用 Plan Mode，把探索和執行分開。
</blockquote>
<figcaption>— Claude Code Docs，https://code.claude.com/docs/en/best-practices</figcaption>
</figure>

文件建議採用四階段工作流程：Explore、Plan、Implement、Commit。

我的 4 步驟循環，是為了對抗迎合而專門調整 Plan 階段的做法。在 Anthropic 的 4 個階段中，我把其中一個擴展為 4 個微步驟：禁止解決方案、尋找先例、撰寫計畫，以及自我檢查。之後再將這份詳細計畫交給 Implement 和 Commit 階段。

如果省略 4 個步驟中的任何一步，會發生什麼事？

| 省略 | 會造成什麼結果 |
|----|----|
| 步驟 1（事實） | 解決的是別人的問題：Claude 根據模式猜測症狀，往錯誤方向處理 |
| 步驟 2（先例） | 根據「一般知識」編造解決方案：它在參考案例中可行，實際使用時卻出問題 |
| 步驟 3（計畫） | 沒有分析風險就直接實作：測試失敗、refresh token 壞掉，最後由使用者通知你 |
| 步驟 4（自我檢查） | 計畫中有 2 到 3 個毫無根據的假設：不存在的函式庫、未指定的變數 |

表格清楚說明，每一步都會阻止特定類型的錯誤。4 步驟缺一不可，因為每一步會抓出不同類別的問題。如果任務看起來小到只需要兩步，那它真的很小，根本不需要 Plan Mode。

## `plans/`、`/goal` 指令與後續步驟如何配合

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

重點摘要

4 個步驟並非獨立存在，而是在由 Plan Mode、repository 中的 `plans/` 資料夾和 `/goal` 指令構成的系統內運作。Plan Mode 提供工作模式。`plans/` 資料夾讓計畫持續保存。`/goal` 負責自動化。少了這三層中的任何一層，這個循環的價值就會減半。

</div>

這個循環在包含以下內容的系統中運作：

1. 已啟用 Plan Mode（在 Claude Code 中按兩次 Shift+Tab）。
2. Repository 中有 `plans/` 資料夾，用來儲存計畫。
3. 可選擇使用 `/goal` 指令，自動執行較長計畫中的工作。

先說 `plans/` 資料夾。完成步驟 3 後，你會得到一個包含階段和核取方塊的 `plans/2026-05-27-fix-magic-link.md` 檔案。這是一份成果檔案。一週後開啟它，就會想起當初為什麼選擇那個做法。三個月後，你會遇到類似任務並重用它。六個月後，你可以把它交給同事，幫對方省下兩週熟悉工作的時間。`plans/` 資料夾是[Claude Code 中「第二大腦」](https://ailoot.ai/blog/zh-hant-tw/claude-code-second-brain/)概念的一部分。

再說 `/goal`。完成 4 個步驟並批准計畫後，離開 Plan Mode，輸入：

```
/goal 執行 plans/2026-05-27-fix-magic-link.md 中的所有階段，直到 test/auth 中的所有測試都通過，或在 30 個回合後停止
```

本機 Claude Code 工作階段應保持終端機執行、電腦喚醒與網路可用；除非明確安排支援的保持喚醒設定，否則不要闔上筆電。回來時請查工作階段歷史，可能是完成、回合上限、權限請求或錯誤。主機睡眠時，goal 不保證仍有進度。沒有 4 步驟循環時，`/goal` 會把 token 浪費在無用的反覆嘗試上。有了循環，`/goal` 就能依據完成的計畫執行，直到測試通過。

接下來該怎麼做？如果你剛開始使用 Claude Code，就在下一個非瑣碎任務上試試這個循環。不要選拼字錯誤；選擇會動到 3 個以上檔案，或是涉及你不完全了解的行為的任務。複製上面的提示詞，填入自己的細節。你會注意到回復變更的頻率有所變化。

如果你已經在使用 Plan Mode，請在 repository 中新增 `plans/` 資料夾。替自己決定一種檔名格式：`YYYY-MM-DD-feature-name.md`。一個月後會有 20–30 個檔案；六個月後則會超過 100 個。這就是組成專案第二大腦的方式：一段持續累積的決策歷史。如果你想深入了解提示詞之前的上下文管理，我另外把[Claude Code 的 context engineering](https://ailoot.ai/blog/zh-hant-tw/context-engineering/)當成一門獨立領域介紹。

如果你已經同時使用 Plan Mode 和 `plans/`，就挑一個自動化任務試用 `/goal`。選一件平常會花 30–40 分鐘手動完成的事。先跑完 4 個步驟、儲存計畫、啟動 `/goal`，並保持本機終端機與電腦喚醒。若要在這台電腦關機時繼續，先使用明確設定的遠端或雲端執行路徑，確認任務確實在那裡運作。

<div class="section" role="doc-bibliography" aria-label="Sources">

### 來源

- [Anthropic Engineering - Claude Code 最佳實務](https://code.claude.com/docs/en/best-practices)
- [Anthropic Engineering - 4 月 23 日品質報告事後檢討](https://www.anthropic.com/engineering/april-23-postmortem)
- [Anthropic Docs - 減少幻覺](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)
- [Anthropic Docs - 權限模式（Plan Mode）](https://code.claude.com/docs/en/permission-modes)
- [Anthropic Docs - /goal 指令](https://code.claude.com/docs/en/goal)

</div>



<div class="aside" data-semantic="ailoot-link" role="note" aria-label="Ailoot">

你可以在 [Ailoot](https://ailoot.ai/) 繼續使用 AI 工作。

</div>

## 常見問題：用四個提示詞對抗 Claude Code 的迎合

### 把筆電闔上後，本機 /goal 會繼續工作嗎？

只有主機保持喚醒、終端機程序持續執行才可能；一般睡眠會暫停本機工作。請保持電腦與網路可用，或確認任務確實在另一個遠端或雲端環境啟動。

### 什麼時候值得使用四提示詞循環？

症狀、受影響檔案或做法不清楚，且錯改代價高時適用。先重現症狀與列出缺少證據，再找來源、寫計畫並檢查假設；簡單錯字通常不需要這套循環。


## Ailoot · 公司及其專案組合

Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
