載入中

權限模式

第 4 課5 分鐘
載入中

權限模式

權限模式讓您一次決定 Claude 可以在不中斷詢問您的情況下執行哪些操作。您不必逐一批准每個動作的每個提示,而是選擇一個符合工作需求的模式,讓 Claude 以您所能接受的信任程度來運作。

您已經接觸過其中幾種模式了。每次按下 shift-tab 時,您都會在這些模式之間切換:手動、接受編輯,以及計畫。這些涵蓋了日常的動手工作。其餘的模式才是放手讓 Claude Code 自主運作真正發揮作用的地方,而此時該選用的就是自動模式。

六種權限模式

以下是完整的模式清單。每種模式對於哪些操作可以自由執行、哪些操作需要您的核准,劃下了不同的界線。

  • 手動(Manual)僅讀取,不會提示。其他所有操作都會先詢問。
  • 接受編輯(Accept edits)會在不詢問的情況下執行讀取、檔案編輯,以及常見的檔案系統 bash 指令。這適合用於迭代修改程式碼,事後再由您審查。
  • 計畫(Plan)會進行研究並提出變更建議,但不會編輯任何內容。讀取操作會自由執行,而當自動模式可用時,自動模式的分類器會審查 Claude 用於探索的指令,並讓已核准的指令在無需提示的情況下執行。
  • 自動(Auto)會接受所有操作,並由另一個獨立的分類器模型在大多數動作執行前進行審查。
  • 不詢問(Don't ask)允許在您的工作目錄內讀取檔案,以及使用預先核准的工具。任何原本會觸發提示的操作都會被自動拒絕。
  • 略過權限(Bypass permissions)會跳過所有檢查。這等同於 dangerously-skip-permissions 旗標。只能在隔離的容器或虛擬機器中執行。

使用 shift-tab 切換

您不需要記住每種模式的指令。按下 shift-tab 即可在日常使用的模式之間切換:手動、接受編輯、計畫,以及自動。底部的狀態列一律會顯示您目前所處的模式,因此您只需瞥一眼,就能確切知道 Claude 被允許做什麼。

自動模式的運作方式

自動模式是放手讓 Claude 自主運作的模式。Claude 會自行運作,但在大多數動作執行前,會由另一個獨立的分類器模型進行審查。這個分類器把關的是意圖,它會留意那些超出您實際要求範圍的動作。

以下是它被設計用來阻擋的情況:

  • 正式環境部署與遷移
  • 強制推送(force push),或將下載的程式碼直接導入 shell 執行
  • 將敏感資料傳送到外部端點
  • 不可逆地銷毀在此次工作階段開始前就已存在的檔案

而日常工作則會被放行:在您的專案中進行本機編輯、依照您的鎖定檔案安裝相依套件、唯讀請求,以及推送到您正在作業的儲存庫中任何分支,包括預設分支。唯一的例外是任何名稱標示為部署目標的其他分支,例如 production 或 gh-pages。分類器會自行判斷是否允許推送到該分支。

分類器無法做到的事

分類器檢查的是意圖,而不是正確性。它無法判斷程式碼是否真的能運作。因此,如果您要求 Claude 重構身分驗證機制,而它寫出了有問題的身分驗證程式碼,分類器仍會放行,因為有問題並不等於危險。

這正是為什麼您要將自動模式與會執行測試的停止掛鉤(stop hook)搭配使用。兩者協同運作:

  • 自動模式在 Claude 執行期間,監看它「試圖」做什麼。
  • 停止掛鉤則在 Claude 完成後,確認程式碼確實能運作。

一個在大多數動作執行前把關意圖,另一個則在事後把關正確性。自動模式的防護機制仍在持續演進中,請查閱文件以取得目前的封鎖與允許清單。

不詢問模式,適用於無人值守的執行

當現場沒有人可以核准提示時,不詢問模式就是正確的選擇:CI 流程、排程工作、隔夜批次作業等。Claude 仍會執行手動模式下不需核准的操作,例如在您的工作目錄內讀取檔案,以及您預先核准的工具。任何原本會觸發提示的操作都會被自動拒絕。這正是它的重點所在。您的流程能持續進行,而不會卡在一個無人可以給予的核准上。

依工作選擇合適的模式

共有數種權限模式,而透過循環按下 shift-tab 即可切換到日常使用的那些模式。總結來說:

  • 自動(Auto)是放手讓 Claude 自主運作的模式。分類器在大多數動作執行前檢查意圖,而停止掛鉤則在事後檢查正確性。
  • 不詢問(Don't ask)適用於無人在場核准的無人值守流程。
  • 略過權限(Bypass permissions)僅限在隔離的容器與虛擬機器中使用。

請選擇符合您當前工作的模式,讓 Claude 以該層級運作。