觀點 · 資訊分享
Claude Code 2.1.183:自動模式新增攔截規則,你沒開口就不會 reset --hard、amend 與 destroy
Claude Code 2.1.183 讓自動模式更保守:沒被要求時,會擋下 git reset --hard、clean -fd、commit --amend 與 terraform destroy 等破壞性指令。另有排程與 webhook 訊息的信任範圍調整。
- 發布
- 2026-06-20
- 篇幅
- 約 4 分鐘 · 1,737 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂:Claude Code 2.1.183 讓自動模式更保守:你沒開口要求時,它不會自己執行 git reset --hard、amend 別人的提交,或 terraform destroy 這類可能丟掉東西的指令。

先用白話講:為什麼自動模式要「踩剎車」?
想像你把家裡鑰匙交給一位很能幹的管家,說「小事不用每件都問我」。大多數時候這很方便。但如果管家覺得「這個房間太亂了,乾脆整間拆掉重蓋」,你一定希望他先停下來問一聲。
Claude Code 的自動模式(auto mode)就像這位管家:它可以少問你、自己執行動作。這次更新做的事,就是替「拆房子」這類指令裝一道剎車,除非你明確交代,否則不會自己做。
發生什麼事
Claude Code 在 6 月 19 日釋出 2.1.183。自動模式現在會擋下以下指令,條件是你並沒有要求這個動作:
| 指令 | 什麼時候被擋 |
|---|---|
git reset --hard、git checkout -- .、git clean -fd、git stash drop |
你沒有要求丟棄本機的工作時 |
git commit --amend |
要修改的提交不是 Claude 在本次工作階段做的 |
terraform destroy、pulumi destroy、cdk destroy |
你沒有要求拆除特定的堆疊時 |
官方版本說明共列了八種指令;至於還有沒有其他情境也會被擋,版本說明沒有說明。
其他值得注意的變更
- 排程與 webhook 訊息的信任範圍:排程任務與 webhook 送來的訊息,現在歸類為「任務通知」,不再被當成鍵盤輸入。在自動模式下,它們不能核准待處理的動作,也不能設定工作階段標題
- MCP 驗證殘影:修好需要登入的 MCP 伺服器,在無介面或 SDK 模式下會把驗證用的替身工具暴露給模型的問題
- 模型過期警告:當你指定的模型已被淘汰、或會自動換成新模型,現在會警告(在
-p列印模式下輸出到 stderr,連代理定義檔裡指定的模型也涵蓋) - 設定:新增
attribution.sessionUrl,可在網頁與遠端控制的工作階段中,省略提交與 PR 裡的 claude.ai 工作階段連結 - /config:新增
/config --help列出可用的簡寫;切換設定時 Enter 與空白鍵都能變更,按 Esc 現在是儲存並關閉,不再是還原 - 啟動畫面:移除標誌下方的「設定問題」提示行,要看請執行
/doctor或加--debug - 其他修正:子代理的 WebSearch 回傳空結果、模型只回傳思考區塊導致整回合沒有輸出(現在會自動重新提示一次)等
給開發者的技術細節
- 如果你的自動化流程(腳本、排程)會在自動模式下執行上述指令,現在可能被擋下,需要把意圖寫清楚,例如在提示裡明講要拆哪個堆疊
- 排程與 webhook 的行為改變,主要影響「用外部事件觸發 Claude Code」的人;它們不再能替你按下「同意」
- 這次的攔截由 Claude Code 判斷「你有沒有要求」,版本說明沒有公開判斷細節,所以不要把它當成唯一的防線
我的看法
我覺得這個方向是對的:自動模式最怕的不是 AI 不夠聰明,而是它很有自信地做了一個「合理但不可逆」的動作。reset --hard 和 destroy 這種指令,一旦跑下去就沒有回頭路。
不過我會把它當成「多一層保險」,而不是唯一的保險。實務上常見的做法是:重要專案一律用版本控制,工作前先提交或建立分支,基礎設施的操作則另外用權限規則或 hook 擋住;讓 AI 在權限更小的環境下動手,最壞的情況也有限。
名詞小辭典
- 自動模式(Auto mode):讓 Claude Code 在一定範圍內不用每步都問你,自己執行動作的模式。
- git reset --hard:把工作目錄強制還原到某個提交,尚未提交的修改會直接消失。
- terraform destroy:把 Terraform 管理的雲端資源整批拆除的指令,pulumi、cdk 也有類似指令。
- Webhook:另一個系統主動送訊息過來通知事件發生的機制。
資料來源
常見問題
Claude Code 的自動模式是什麼?
讓 Claude Code 在一定範圍內不必每一步都問你,自己判斷並執行動作的模式,適合想少點幾次「允許」的情況。這次更新讓它對破壞性指令更保守。
哪些指令現在會被擋?
版本說明列的是:git reset --hard、git checkout -- .、git clean -fd、git stash drop(沒被要求丟棄本機工作時),git commit --amend(提交不是本次 Claude 做的),以及 terraform、pulumi、cdk 的 destroy(沒指定特定堆疊時)。
那我真的要執行這些指令怎麼辦?
明確告訴 Claude 你要做什麼,例如「幫我丟掉本機所有未提交的修改」或「拆掉這個名稱的堆疊」。官方描述的條件是「你沒有要求時才擋」,不是永久禁止。
這代表可以放心全程交給自動模式了嗎?
不建議。這只是多一層攔截,官方版本說明也沒有保證所有危險情境都會被擋下。重要的環境仍要用權限規則、備份與版本控制自己多擋一層。
接著讀
全部觀點 →Claude Code 新增「閒置壓縮」:長對話放著 54 分鐘就先整理好,回來不用整段重算Claude Code 2.1.299 加入閒置壓縮:超過 20 萬 token 的終端機對話,閒置約 54 分鐘時會趕在一小時的提示快取過期前先壓縮,下一則訊息不必把整段對話重新處理一次。這版也新增讓 @ 檔案只傳路徑的設定。閱讀 →Claude Code 2.1.214 補上一批權限檢查漏洞:超過 1 萬字元的指令一律要你確認Claude Code 在 7 月 18 日釋出 2.1.214,修了多個「不該自動放行卻放行」的權限判斷,包含 Edit(src/**) 這類規則的比對範圍、PowerShell 5.1 的繞過與 docker 的遠端連線旗標。隔天 2.1.215 又改了技能的自動執行。閱讀 →Claude Code 2.1.207:自動模式不再讀專案內的設定,外掛指令也補上命令注入防護Claude Code 2.1.207 收緊了幾處信任範圍:自動模式不再讀專案資料夾裡的設定檔,外掛選項只認使用者層級,外掛指令也擋下可能的命令注入。Bedrock、Vertex 的預設模型同時改成 Claude Opus 4.8。閱讀 →