Claude Code 一直跳出「要執行這個指令嗎?」,你是不是也已經習慣直接按允許?這篇帶你搞懂每一層防護各擋什麼、擋不住什麼,讓它安心自己跑!
Claude Code 跳出一個視窗:「要執行這個指令嗎?」你按了允許。今天第幾次了?
Anthropic 在 2026 年 8 月公布了一組數字:使用者對權限提示按「允許」的比例是 97%。他們也做了一個對照,拿同一批 1,053 個危險指令,看人逐一審核能擋下多少,結果是 143 個。
人的攔截率還會隨時間往下掉:一個工作階段剛開始時約 17%,按過 50 次提示之後只剩約 5%。這跟認不認真無關,重複按同一個按鈕的人本來就會這樣。這些都是 Anthropic 自己公布的數字,沒有第三方驗證,但方向和多數人的經驗一致。
先說一件對我不太有利的事。我自己用 Claude Code 是開 auto mode,權限也開得很寬。所以比起「它會不會問我」,我更在意另一個問題:出事的時候,我收不收得回來。這篇就是把這個問題拆開。
快速回答 讓 Claude Code 自己跑多久,看的是出事時你多快收得回來。Claude 用編輯功能改的檔案有自動存檔點(checkpoint),
/rewind幾秒就退得回來,可以放手;Bash 指令的改動追不到,要靠 Git,跑完至少看一次 diff;正式資料庫、部署、push 收不回來,在設定檔寫成每次先問(ask)或直接禁止(deny)。權限規則、auto 分類器、hooks 只決定要不要先問你,而且都會漏。
三起真實 Agent 事故的共同教訓:做下去的事收不回來,在對話裡交代「不要做」不等於設了鎖
這兩年公開的 coding agent 事故,挑幾個有紀錄的:
- 2025 年 7 月,SaaStr 創辦人 Jason Lemkin 用 Replit 的 agent 開發,agent 在程式碼凍結期間刪掉了正式資料庫。他說自己「用全大寫講了十一次不要這樣做」。
- 2025 年 10 月和 11 月,Claude Code 的 GitHub 上有使用者回報,agent 執行
rm -rf把家目錄的檔案刪掉;其中一起是 agent 先誤建了一個叫~的資料夾,再刪它的時候刪到了真正的家目錄。 - 2025 年 11 月,Google Antigravity 在不需要使用者確認的 Turbo 模式下清快取,目標指到 D 槽根目錄,整個磁碟被刪,而且不進資源回收筒。
這幾件事用的工具不同、模式不同,共同點只有一個:做下去的事收不回來。刪除跳過了回收筒,開發和正式資料庫沒有分開,指令改的是 agent 碰得到、但不該碰的地方。
Lemkin 那句話也值得多想一下。在對話裡講「不要做」,不等於設了一道鎖。Anthropic 的文件寫得很直白:你在對話中說「不要 push」,auto mode 的分類器會參考;但對話太長被壓縮之後,這句話可能就不見了。要真的擋住,得寫成設定檔裡的規則。
六道安全防護的真相:執行前三道只決定要不要問,執行後三道才決定出錯能不能收回
把 Claude Code 的安全機制攤開,其實在回答兩個不同的問題。執行之前:這個動作要不要先問你?執行之後:如果做錯了,影響範圍多大、收不收得回來?
執行前有三道關卡:第一道是權限規則,你在設定檔裡寫 deny、ask、allow,Claude Code 依序比對,deny 最優先,任何模式都有效。第二道是 auto 分類器:從 2026 年 8 月起,Pro、Max、Team 方案的新工作階段預設就是 auto mode,由另一個模型在每個動作執行前判斷要不要攔下來,例如 curl | bash、force push、git reset --hard、正式環境部署,都在預設的攔截清單裡。第三道是 hooks:在工具執行前跑一支你自己寫的程式,回傳「拒絕」就擋下,連最寬鬆的模式也擋得住。
這三道都會漏。規則只擋得住你寫到的指令。分類器方面,Anthropic 在 2026 年 3 月自己公布,它對真實的越權動作有 17% 會漏掉,文件也寫明 auto mode「減少權限提示,但不保證安全」。Hooks 有一個容易忽略的坑:hook 執行逾時,預設不會擋下動作。
執行後同樣有三道關卡:沙箱限制指令能碰到的範圍,開啟後寫入只限工作目錄,網路要經過代理和允許清單。Anthropic 內部實測,沙箱讓權限提示減少 84%:在沙箱裡,很多事就算做錯影響也有限,不必每次都問。Checkpoint 是 Claude Code 內建的還原點,用 /rewind 可以把檔案退回某一輪對話之前;Git 則是你本來就該有的那一層。最外層是隔離環境:git worktree 讓任務在另一個資料夾裡做,dev container 或 Anthropic 的雲端工作階段讓它跑在另一台機器上。
這三道一樣會漏,而且漏的地方更要命。沙箱預設仍讀得到整台電腦,包括 ~/.ssh,原生 Windows 也還不支援。Checkpoint 追不到 Bash 指令造成的改動,rm、mv、cp 刪掉或搬走的檔案,/rewind 救不回來。Worktree 只隔離檔案,.git 和權限設定仍和主目錄共用。至於正式資料庫、部署、push、寄出去的信,沒有任何一層本機機制收得回來。
METR 實測任務長度:可靠度要求從五成拉到八成,能交給 AI 的時間只剩五分之一至十分之一
講到「讓 AI 自己跑」,常聽到的數字是模型能連續工作幾小時。這個數字要看清楚是怎麼算的。
研究機構 METR 用一套軟體任務量測模型的能力,單位是「人類專家做這件事要花多久」。同一個模型,他們會報兩個數字:有一半機率做完的任務長度,和有八成機率做完的任務長度。
這張圖改變了我對「能跑多久」的理解。常聽到的十幾小時,是一半機率會做完的長度;你要它八成會成功,任務就得縮到一兩個小時。換句話說,讓它跑得越久,中途某一步出錯的機會越大。長任務還是可以跑,前提是錯了的那一步收得回來。
所以我會這樣算:放手的時間,不要超過你收回來需要的時間能承受的範圍。錯了用 /rewind 幾秒就回來的事,可以放心交出去;要靠 Git 翻幾個 commit 的事,你至少要在它跑完時看一次 diff;收不回來的事,不管模型多強,都要你自己按。
實務權限分級配置:依任務風險分四級,專案必設 deny 規則與擋 prod 的 hook
依任務的風險分四種,每種配一組設定:
- plan(只讀不改)
- 不需要
- auto
- 乾淨的 Git 工作目錄、checkpoint
- auto 加沙箱;或在 dev container/雲端工作階段裡全開
- worktree 或隔離環境、deny 規則
- 一律寫成 ask 或 deny
- 開發和正式環境分開、備份
兩個設定值得每個專案都放。第一個是 deny 規則,寫在專案的 .claude/settings.json,跟著 repo 一起版本控制,團隊每個人都套用:
{
"permissions": {
"deny": ["Bash(git push *)", "Read(./.env)", "Read(./.env.*)"],
"ask": ["Bash(npm publish *)"]
}
}
第二個是一支擋正式環境的 hook。它在每個 Bash 指令執行前讀進指令內容,碰到 prod 或 production 就擋下,並把原因回傳給 Claude:
#!/usr/bin/env bash
# .claude/hooks/block-prod.sh: commands that touch production need a human
cmd=$(jq -r '.tool_input.command // ""')
if grep -qiE 'prod|production' <<<"$cmd"; then
echo "Blocked: production targets need a human." >&2
exit 2
fi
在設定檔的 hooks 底下,把它掛在 PreToolUse、matcher 設成 Bash,指令路徑寫 "$CLAUDE_PROJECT_DIR/.claude/hooks/block-prod.sh",記得先 chmod +x,電腦上也要有 jq。用字串比對很粗糙,但它的價值在於:這道檢查不會因為對話太長而被忘記。
最後,花五分鐘自己驗一次 checkpoint 收得回什麼。開一個拿來丟的 Git repo,放兩個檔案 a.txt、b.txt。請 Claude 用編輯功能改 a.txt,再用 Bash 執行 rm b.txt,然後輸入 /rewind 退回這一輪之前。照官方文件,a.txt 會回來,b.txt 不會;git checkout b.txt 才救得回它。親手看過一次,你對「哪些事收得回來」的直覺會準很多。
破除三個常見誤解:auto mode 會漏 17%、/rewind 追不到 Bash 改動、worktree 不防讀取
「auto mode 會擋,所以我不用看」。它擋得比逐一按允許多,但 Anthropic 自己公布會漏掉約 17% 的越權動作。它的用途是減少打擾,官方文件也明說不能當作隔離邊界。
Anthropic 在介紹 auto mode 的文章裡,一開頭就用一張圖畫出這個取捨:它把 auto mode 定位成「自主度高、維護成本低」的選項,安全度仍排在沙箱下面。
「出事就 /rewind」。Checkpoint 只追得到 Claude 用編輯功能修改的檔案。Bash 指令造成的改動、資料庫、遠端資源都不在裡面,官方文件也寫明它不能取代版本控制。
「開了 worktree 就安全了」。Worktree 讓任務在另一個資料夾執行,主目錄檔案不會被直接改動,但它不擋網路、不防讀取,用 cp 寫回主目錄也擋不住。若要無人值守全開權限,Anthropic 建議放進 dev container 或雲端工作階段。
本機防護的絕對邊界:外部服務做錯收不回,開發與正式環境必須從架構拆開
本機的每一層都有一個共同的邊界:它們只管這台電腦。Agent 呼叫的外部服務,例如資料庫、雲端主機、付款、寄信,做下去就是做下去了。Replit 事故後,他們的修正是把開發和正式資料庫自動分開,這比任何權限提示都有效。如果你的專案還讓同一組帳密同時碰得到開發和正式環境,先處理這件事,再談要開哪個模式。接上外部工具時要交出哪些權限,可以接著讀〈MCP server 該不該裝?安裝前一定要做的權限檢查(2026 資安懶人包)〉。
團隊導入時還有一個管理問題:每個人的設定不同,有人開全開模式,有人按到麻木。Claude Code 有一份由管理員控制的設定檔,優先序最高,可以直接停用全開模式。比起寫一份要大家自律的規範,這更可靠。
結論:敢放手讓 Claude Code 跑多久,取決於出錯時你多快能收得回來
下一次要決定讓 Claude Code 自己跑多久之前,先問一個問題:如果這一步錯了,我要花多久把它收回來?
幾秒就回來的,放手。要翻 Git 的,跑完看 diff。收不回來的,自己按。模型會越來越強,時間會越拉越長,但這個問題的答案,取決於你的環境怎麼搭,跟模型無關。
你敢放手多久,看的是你收得回來多快。
常見問題
Claude Code 的 auto mode 是什麼?
從 2026 年 8 月起,Pro、Max、Team 方案的新工作階段預設 auto mode:由另一個模型在每個動作執行前判斷要不要攔下,例如 force push、正式環境部署。它減少權限提示,Anthropic 也公布它會漏掉約 17% 的越權動作。
在對話裡叫 Claude「不要 push」有用嗎?
不可靠。auto 分類器會參考這句話,但對話太長被壓縮之後,它可能就不見了。要真的擋住,寫成專案 .claude/settings.json 的 deny(禁止)規則,例如 Bash(git push *),任何模式都有效。
Claude Code 的權限規則要寫在哪裡?
寫在專案的 .claude/settings.json,跟著 repo 一起版本控制,團隊每個人都套用;deny 最優先。團隊要統一的話,還有一份由管理員控制、優先序最高的設定檔,可以直接停用全開模式(所有動作都不經詢問)。
聽說模型能做十幾小時的任務,代表可以放手那麼久嗎?
不能直接這樣換算。研究機構 METR 用「人類專家做這件事要花多久」衡量任務長度。常聽到的十幾小時,是一半機率會做完的長度;要它八成會成功,任務得縮到一兩個小時。跑得越久,中途出錯的機會越大,所以放手多久要看錯了的那一步收不收得回來。
延伸閱讀
- Claude Code、Codex、Gemini CLI 怎麼選?2026 三大 AI Coding 工具完整比較
- AI 寫的測試全過,為什麼功能還是錯的?驗證閉環完整懶人包(2026)
- AGENTS.md 怎麼寫?規則寫越多,Agent 反而越貴?(2026 完整教學+範例)
- 用手機遙控 Claude Code 可以嗎?哪些事還是得回到電腦前?(2026 完整懶人包)
- AI Demo 很成功,為什麼一上線就出事?五條失敗路徑一次看懂(2026)
參考資料
官方文件與公告
- Anthropic, Choose a permission mode(Claude Code 文件,2026-10-16 檢視) https://code.claude.com/docs/en/permission-modes
- Anthropic, Configure permissions(2026-10-16 檢視) https://code.claude.com/docs/en/permissions
- Anthropic, Configure the sandboxed Bash tool(2026-10-16 檢視) https://code.claude.com/docs/en/sandboxing
- Anthropic, Choose a sandbox environment(2026-10-16 檢視) https://code.claude.com/docs/en/sandbox-environments
- Anthropic, Hooks reference(2026-10-16 檢視) https://code.claude.com/docs/en/hooks
- Anthropic, Checkpointing(2026-10-16 檢視) https://code.claude.com/docs/en/checkpointing
- Anthropic, Run parallel sessions with worktrees(2026-10-16 檢視) https://code.claude.com/docs/en/worktrees
- Anthropic, How we built Claude Code auto mode(2026-03-25) https://www.anthropic.com/engineering/claude-code-auto-mode
- Anthropic, Auto mode is now the default in Claude Code for Pro, Max, and Team plans(2026-08-07) https://claude.com/blog/auto-mode-default-in-claude-code
- Anthropic, Beyond permission prompts: making Claude Code more secure and autonomous(2025-10-20) https://www.anthropic.com/engineering/claude-code-sandboxing
研究與數據
- METR, Time Horizons(資料檔 2026-09-08 更新) https://metr.org/time-horizons/
事故與報導
- The Register, Vibe coding service Replit deleted user's production database(2025-07-21) https://www.theregister.com/2025/07/21/replit_saastr_vibe_coding_incident/
- The Register, Replit makes vibe-y promise to stop its AI agents making vibe-y coding mistakes(2025-07-22) https://www.theregister.com/2025/07/22/replit_saastr_response/
- The Register, Google Antigravity vibe-codes user's entire drive out of existence(2025-12-01,經 AI Incident Database 收錄) https://incidentdatabase.ai/reports/7050
- GitHub, anthropics/claude-code issue #10077(2025-10-21)、#12637(2025-11-28) https://github.com/anthropics/claude-code/issues/10077 https://github.com/anthropics/claude-code/issues/12637
- iThome,〈Anthropic讓AI監督AI,Claude Code自動模式8月14日成為預設〉(2026-08-10) https://www.ithome.com.tw/news/177994
- 數位時代,〈Claude Code推出自動模式!不再狂跳授權視窗〉(2026-03-25) https://www.bnext.com.tw/article/90416/claude-code-auto-mode
- GIGAZINE, Claude Code CLI deletes your Mac's home directory(2025-12-16) https://gigazine.net/gsc_news/en/20251216-claude-code-cli-mac-deleted
留言0
登入後就能留言。
登入