您請代理新增一個橫幅,它卻順手提議更新舊模組。最好在開始修改前先看清這個計畫,刪掉多餘的項目。要做到這點,清楚描述任務和選好工作模式都很重要。
權限模式決定 Claude Code 如何授權操作:哪些可以立即執行、哪些需要先詢問,哪些會遭到封鎖。個別操作也會受到設定和既有授權影響。模式本身不會檢查解決方案的品質。
以下用 Claude Code 在終端機中的本機工作階段,逐一說明各種模式。

要求與授權
有兩件事看起來相似,作用卻不同,很容易混淆。
第一件是您在任務描述中寫下的內容,例如列出排除項目的段落、"先提出計畫,不要修改任何內容"這句話,或是不可碰的檔案清單。這些是任務界線:它們說明任務,也會明顯影響代理提出的做法。但它們只是文字,不會改變技術上的權限。
第二件是權限模式,也就是 permission mode。它是工作階段的設定。您完全可以一邊說"不要修改任何內容",一邊使用會自動接受修改的模式。代理應遵守您的要求,但這句話本身不會從技術上封鎖修改。
有一個例外,但只涵蓋部分情況。在 auto 模式中,分類器會讀取對話,並把"不要 push"或"等我 review"視為封鎖這些操作的訊號。但這不是設定規則:如果壓縮上下文時,包含禁令的訊息被移除,禁令也就不在了。要設下硬性界線,得靠設定,而不是一句話。
在要求中寫下"先擬定計畫"很有用,因為這能安排工作順序。但您無法只靠這句話判斷目前的模式,工作階段狀態列中的指示器才看得出來。工作階段啟動時使用哪種模式,取決於版本、介面、方案和設定。因此,開始前應先查看指示器,而不是猜測。
從安全到危險的模式
與其把模式當成清單,不如想成一段階梯,比較好記。最上層的代理幾乎什麼都要先問您,最下層則完全不會詢問。一共五層,外加一種放不進這條尺度的模式。
這裡只要看一件事:有多少操作不必等您回覆就會執行。從上往下,這個數量會增加,出錯的代價也跟著提高。在上層,您得花時間確認;在下層,則可能要等修改出問題後才會發現。
逐一簡單看看:
plan- 代理會探索專案並提出修改方案,在此期間原始碼的修改會遭到封鎖。只有一種例外:如果工作階段啟動時已授權bypassPermissions,在終端機中,規劃模式就不會再封鎖修改,只會要求代理不要動檔案。當您只想了解程式碼、不希望它被修改時,這個模式就很實用。如果auto可用,分類器也會檢查探索用的指令,因此這裡收到的提問有時甚至比default更少。它在階梯上方,是因為不會修改原始碼。計畫完成後,Claude Code 會詢問您要如何繼續:核准並切換到auto、核准並手動確認修改,或繼續規劃。default,畫面上通常顯示為 Manual - 修改檔案、執行指令或連線前都會先詢問。讀取專案不需要確認,已授予的權限也不必每次重複核准。有時看似無害的指令也會觸發詢問。這不是吹毛求疵:find搭配-exec旗標可以執行任何指令,而-delete會刪除找到的項目,所以這些用法都需要您回覆後才會繼續。acceptEdits,畫面上顯示為 "accept edits" - 會自行套用工作目錄中的檔案修改,也會執行部分檔案指令,包括rm和mv。適合想加快處理熟悉檔案的速度,而且事後仍會重新檢查內容的情況。auto- 幾乎所有工作都會自行處理。讀取及修改工作目錄中的檔案會直接通過;指令和網路連線則由另一個模型,也就是分類器檢查。它會封鎖部分操作,後面會再說明。bypassPermissions,也就是--dangerously-skip-permissions旗標 - 幾乎不會詢問任何事。只剩下您在設定中明確列出的規則(拒絕和"一律詢問"),以及幾個系統防護措施。這個模式也叫 YOLO,還真是名副其實。
第六種模式 dontAsk 在圖中獨立呈現,原因如下。階梯上的模式差異在於有多少操作不必等您回覆就能通過,而且越往下,代理能做的事越多。dontAsk 則正好相反:它同樣不會詢問,但不是核准,而是拒絕。會執行的,是一般模式下本來就不需要詢問的操作(讀取工作目錄裡的檔案、只讀取的安全指令),再加上事先授權的操作。凡是原本需要詢問的,一律直接拒絕,不會多問一句。工作階段也不會等待回覆。當沒有人能回覆時,例如自動化流程或封閉環境,這個模式就派得上用場;但平常坐在電腦前工作時,您用不到它。

切換模式不是在對話中提出要求,而是要手動操作。在終端機中,按 Shift+Tab 可循環切換各種模式;也可以使用 /plan 指令進入規劃模式。啟動時也能指定模式:
claude --permission-mode plan在終端機中,請先切換到專案資料夾再輸入指令;/plan 則是在已開啟的工作階段中使用。編輯器中的切換選項長得不同,位置在輸入欄下方,但判斷方式都一樣:查看目前模式指示器。
bypassPermissions 適合用在整個環境都可以捨棄的地方,例如容器或虛擬機器中的一次性任務。在正式專案中,一條失誤的指令造成的損失,會比省下的所有確認步驟加起來還大。這個模式也無法還原已刪除的內容:它只會放行指令,沒有任何機制可以復原。
有兩點要先說明,否則很容易高估這段階梯。規劃模式不是備份:它不會建立還原點,也不能復原已完成的操作,只會在計畫變成修改之前,先讓您看到代理的打算。無論使用哪一層模式,任務界線都不會改變,仍以您描述的內容為準。
auto 何時會適得其反
使用 auto 時,有一個預期最好先調整。模式名稱裡有"自動",容易讓人以為所有操作都會直接通過。其實不然:分類器的作用正是攔下部分操作。
它預設會封鎖的操作包括:部署到正式環境和資料庫遷移、將資料傳送到外部位址、強制 push、大量刪除雲端儲存中的檔案、授予權限、從網路下載並執行程式碼,以及不可復原地刪除工作階段開始前就存在的檔案。這份清單的邏輯很簡單:這些操作一旦出錯,您無法自行復原。
接下來會怎麼做,取決於累積了多少次封鎖。單次遭封鎖的操作會列在最近拒絕清單中(/permissions 的 Recently denied 分頁),您可以從那裡重新執行,並手動核准。Claude 會收到拒絕訊息,並嘗試其他做法。如果分類器連續封鎖三次,或在同一個工作階段封鎖二十次,模式就會暫停,Claude Code 會恢復一般詢問;等您確認後,它才會再次啟用 auto。這些門檻是固定的,無法設定。
由此可見,這個模式何時會開始礙事。如果任務中只有一條有爭議的指令,auto 仍能照預期運作:您手動核准後就能繼續。但如果任務本身就充滿這類指令,例如部署測試環境、執行遷移或操作別人的基礎架構,情況就有點奇怪。您還是得手動確認幾乎每個步驟,只是多繞了幾圈:代理遇到封鎖後尋找替代路徑,模式也不斷暫停又重新啟用。
這時候,自己換到階梯上方的模式會比較簡單。該選哪一種,取決於究竟是哪件事造成困擾:
default- 最直接的選擇。每次修改或執行指令前都會詢問,不會出現遭拒絕的操作。速度較慢,但每一步都在您掌握之中;acceptEdits- 如果您接受檔案修改,只有部署或遷移之類的指令需要特別確認,可以選這個模式。不過請留意:在工作目錄中,這個模式會直接執行rm和mv;在auto模式中,分類器原本會封鎖刪除既有檔案。
這不是繞過封鎖,別把兩者混為一談。您並沒有停用檢查,而是由自己負責確認。即使在 bypassPermissions 模式中,刪除磁碟根目錄或家目錄等系統路徑的操作,沒有您的確認也不會執行。在這個模式和 auto 模式中,Claude Code 會詢問您,在終端機裡您有幾分鐘的時間回覆。如果無法詢問,auto 會拒絕這類指令,而 dontAsk 則一律拒絕。重點是,不要在您本來就打算手動確認的情況下,還多繞一圈。
第二個往階梯上方移的理由,和封鎖無關。分類器能判斷操作是否危險,卻無法判斷工作方向是否正確。如果代理第三次修改同一處,結果還是不對,它在 auto 模式中就只會再試第四次,一樣不會詢問。Claude Code 的開發者建議此時別再硬做:回到 plan,重新確認計畫,再繼續執行。開始時也適用相同原則。您完全理解的任務,可以直接交給限制較少的模式。如果連您自己都還不確定結果應該是什麼,就從 plan 開始。
分類器只能根據它看得到的資訊了解您的專案:工作目錄和在工作階段開始前設定的遠端儲存庫都會被視為可信任範圍。工作途中才新增的儲存庫不在這個範圍內,連線時就會被視為向外部存取。因此,"它封鎖了一條無害的指令"通常代表資訊不足,而不是指令本身有問題。
這對日常工作有什麼影響
日常工作中,只要養成四個習慣就夠了。
- 開始工作時先看指示器。它會顯示目前模式;至於某項操作能否執行,已授予的權限也會有影響;
- 執行前先確認代理提出的計畫符合任務界線。多餘的項目只要說一句話就能拿掉,這是所有修改中成本最低的一種;
- 仔細閱讀核准計畫時各個選項的說明:它會告訴您離開
plan後,工作階段會以哪種模式繼續; - 執行後檢查結果。沒有任何模式能保證任務正確完成,這得由您自行確認。
權限模式回答的是"哪些事可以不用等我就執行",而不是"結果對不對"。無論選哪種模式,第二個問題都得由您把關。
GO TO FULL VERSION