Auto Mode 在 Claude Code 中如何運作


🏦 台灣Pay 銀行轉帳 💙 PayPal
說明 Auto Mode 如何用 classifier、probe 與 tier check 審核動作,以及如何設定
- 00:00 研究顯示,Claude Code 的 permission prompt 有 97% 會被核准
- 02:41 不是每個動作都要經過 classifier:你的 deny、ask、allow 規則會先執行,接著由 tier check 決定哪些動作要送給 classifier
- 05:18 導入時先從小範圍開始,觀察哪些動作被拒絕,再逐步放寬
💡 你可以怎麼用:先在一個不重要的小專案開 Auto Mode 跑跑看,記下哪些動作被擋;再請公司管理者把你們的 GitHub 組織、雲端空間寫進 environment。絕對不能碰的事(例如改正式系統)就用 deny 或 ask rules 鎖死,不要只靠 classifier。
看全部 32 條重點
🧑🏫 這支影片講 Claude Code 的 Auto Mode:Claude 做事時不用每一步都問你,但也不是放著它亂來,而是交給另一套獨立機制把關。如果你常被確認視窗煩到,或想讓 Claude 自己跑完長任務又怕它闖禍,這支影片會告訴你背後怎麼保護、要怎麼設定才安全。
- 00:00 研究顯示,Claude Code 的 permission prompt 有 97% 會被核准↳ permission prompt 是 Claude 動手前跳出來問「可以嗎?」的確認視窗。研究發現 97% 都被按了核准,代表大部分詢問其實問了也沒擋下什麼。
- 00:00 Claude 提出動作時就會跳 permission prompt,例如執行指令、從網路抓資料、編輯檔案↳ 只要 Claude 要執行指令、上網抓資料或改檔案,這類會動到東西的事,就會跳出確認,要你同意才繼續做。
- 00:00 逐一核准或拒絕可以讓你保有控制權,但會造成 approval fatigue,多步驟任務尤其明顯↳ 每步都自己按,控制權確實在你手上。但步驟一多就會按到麻木,這叫 approval fatigue(核准疲勞),人一累就容易沒細看就按下去。
- 00:00 幾個月前推出 Auto Mode:會檢查可能有害的動作,同時讓 Claude 以較少中斷完成長時間的工作↳ Auto Mode 是 Claude Code 的一種模式:不再每步都問你,改由系統自動檢查可能有害的動作,長任務就能一路做下去,不用一直停下來等你。
- 00:31 Auto Mode 並不是讓 Claude 自己核准自己的動作。那樣 Claude 會變成自己的 reviewer 而帶來偏誤,就像自己寫、自己審、自己 merge PR↳ Auto Mode 不是讓 Claude 自己說了算。自己審自己難免偏心,就像同一個人提交程式修改(PR)、自己審、自己合併上線,等於沒人把關。
- 01:05 Claude 提出動作時,會先交給 classifier。它是獨立的檢查機制,負責篩選動作並決定核准或拒絕↳ classifier(分類器)是另一個獨立的檢查關卡,專門判斷 Claude 想做的動作要放行還是擋下,做判斷的不是 Claude 本人。
- 01:05 classifier 看得到你的訊息和 Claude 的 tool calls,看不到 Claude 的推理、給你的回覆和 tool output,所以不會被這些內容影響↳ classifier 只看你的訊息,和 Claude 要執行的動作(tool call,呼叫工具的請求)。Claude 的推理、對你的說明、工具回傳的內容(tool output)它都不看,所以不會被這些話帶偏。
- 01:05 classifier 會拿每個動作比對你的意圖,符合的就核准;它特別檢查 Claude 是否超出你的意圖,做出不可逆或破壞性的事↳ 它判斷的標準是「這是不是你要的」。尤其會盯著 Claude 有沒有自作主張,做出刪了救不回來或會搞壞東西的事。
- 01:39 例子:你只要求整理本機,Claude 卻去刪除遠端分支↳ 分支(branch)是程式碼的平行版本,遠端分支放在共用的伺服器上。你只叫它整理自己電腦,它卻去刪伺服器上的東西,就是超出你的意思,會被擋。
- 01:39 動作被拒絕後,Claude 通常會自己找更安全的做法,例如 force push 到 main 被拒,就改 push 到新分支↳ force push 是強制用你的版本蓋掉遠端的紀錄,main 通常是主要版本。這個動作被擋之後,Claude 會改推到新分支,不去動主線,工作一樣能完成。
- 01:39 如果一直被拒絕,Auto Mode 會暫停,改由你親自核准該動作↳ 如果 Claude 一直被擋,Auto Mode 會停下來,把決定權交還給你,由你親手核准那個動作。
- 01:39 Claude 讀取的網頁或檔案可能夾帶隱藏指令,企圖把它帶離你原本的意圖↳ Claude 讀的網頁或檔案裡,可能偷藏寫給 AI 看的指令,想叫它去做你沒要求的事。這種手法叫 prompt injection(提示注入)。
- 02:11 這些內容進入 Claude 的 context 之前,server-side probe 會掃描每個 tool result 是否有惡意指令,可疑內容會被標上警告,提醒要以懷疑態度看待↳ 工具回傳的內容(tool result)進入 context(Claude 當下讀進來拿來判斷的內容)之前,伺服器端的 probe 會先掃描有沒有惡意指令,可疑的就貼上警告,提醒 Claude 別照單全收。
- 02:11 接著 classifier 會檢查 Claude 的下一個動作是否仍符合你的要求,所以攻擊必須同時突破這兩層防線↳ 就算有東西漏掉,classifier 還會再檢查 Claude 下一步是否仍符合你的要求。攻擊者得同時騙過這兩道關卡才會成功。
- 02:11 他們對 Claude Code 做了 prompt injection 攻擊測試:開啟 probe 和 Auto Mode 後,評估中的攻擊成功率降到 0↳ 他們實際用 prompt injection 攻擊 Claude Code 做測試。probe 和 Auto Mode 都開啟時,這次評估裡的攻擊成功率是 0。
- 02:41 不是每個動作都要經過 classifier:你的 deny、ask、allow 規則會先執行,接著由 tier check 決定哪些動作要送給 classifier↳ 不是每步都要送審。會先跑你自訂的規則:deny(一律擋)、ask(一定問你)、allow(直接放行);接著由 tier check(依風險分級的檢查)決定哪些動作要送 classifier。
- 02:41 Claude 大多數動作是唯讀或可復原的,例如搜尋 codebase、編輯專案內的檔案,這些會跳過 classifier↳ Claude 大部分動作只是讀取,或改了也能復原,像在專案程式碼(codebase)裡搜尋、修改專案內的檔案。這些會直接放行,不用送審。
- 02:41 風險較高的操作,例如 shell 指令、web fetch,或任何觸及你環境以外的動作,都會送給 classifier↳ 風險高的才送審:shell 指令(直接對電腦下命令)、web fetch(上網抓資料),或任何會碰到你環境以外的動作。
- 03:14 classifier 預設只把工作目錄和 git remotes 當作 internal,其他都算 external,連你們公司自己的基礎設施也是,所以值得花時間設定↳ classifier 預設只把兩個地方當自己人:目前的工作資料夾和 git remotes(程式碼放在遠端的倉庫)。其他都算外部,連公司自家的系統也是,所以值得花時間設定。
- 03:14 設定第一步是定義你的環境:admin 可以寫在 managed settings,組織內每位開發者都會繼承↳ 設定的第一步是描述你的環境。公司管理者(admin)可以寫在 managed settings(統一派發的設定),全組織的開發者都會自動套用。
- 03:44 開發者可以在 user settings 加入自己的項目,但不能移除 admin 已經設定的內容↳ 開發者可以在自己的 user settings(個人設定)加項目,但刪不掉 admin 設好的內容,公司定的底線不會被個人拿掉。
- 03:44 用 environment 欄位以白話英文描述你的基礎設施,例如 GitHub org、cloud buckets、內部服務↳ 在 environment 欄位用白話英文寫出你們有哪些東西,例如 GitHub 組織、雲端儲存空間(cloud buckets)、內部服務,讓 classifier 知道哪些算自己人。
- 03:44 設定 environment 會取代 Claude 的內建項目,想保留的話要加入預設字串↳ 要注意:一填 environment,就會蓋掉 Claude 原本內建的預設內容。想保留預設的話,要把預設那段字串一起寫進去。
- 03:44 需要更細的控制:allow 用於例外;soft deny 擋下動作,除非你明確要求;hard deny 則不管你怎麼要求都擋下↳ 想控制得更細,可以用三個欄位:allow 用來放行特例;soft deny 預設會擋,但你明講要做就放行;hard deny 不管你怎麼說都擋。
- 04:15 allow、soft deny、hard deny 這些欄位只是 classifier 判斷時參考的指引,不是硬性規則↳ 不過這三個欄位只是給 classifier 參考的指引,它會綜合起來判斷,不保證每次都照寫的做。
- 04:15 需要硬性限制時:用 deny rules 擋下符合的 tool calls,用 ask rules 讓 Auto Mode 下也強制跳出 prompt↳ 真的需要不能破例的規定,就用 deny rules,符合就直接擋;或用 ask rules,就算在 Auto Mode 下也一定會跳出來問你。
- 04:15 allow rules 也有效,但範圍大到能執行任意程式碼的規則,相關動作仍會送給 classifier↳ allow rules 一樣有效。但如果規則範圍寬到能執行任何程式碼,碰到這條規則的動作還是會送 classifier 審。
- 04:48 總結四個組成:只讀你的訊息、不讀 Claude 訊息的 classifier;只把難以復原的動作送審的 tier check;掃描隱藏指令的 probe;由你設定的 trust boundary↳ 整套由四個零件組成:只看你訊息、不看 Claude 說詞的 classifier;只把難復原的動作送審的 tier check;掃描隱藏指令的 probe;你自己定義的 trust boundary(信任邊界,哪些算自己人)。
- 04:48 這幾個機制合起來,可以抓到人工逐一審查可能漏掉的東西↳ 幾層機制一起運作,可以抓到人工一個個按核准時容易看漏的問題。
- 05:18 導入時先從小範圍開始,觀察哪些動作被拒絕,再逐步放寬↳ 剛開始用時先小範圍試,觀察哪些動作被擋、擋得合不合理,再慢慢放寬。
- 05:18 高風險操作(例如修改 production 基礎設施)應該親自審查 Claude 的動作,或自己建立 evals 來增加信心↳ 高風險的操作,像修改正式上線的系統(production),還是要親自看過;或自己建立 evals(自己設計的測試,檢查 Claude 會不會做對),確認它可靠。
- 05:18 想了解更多他們的安全研究,可以看影片下方連結的部落格文章↳ 想深入了解背後的安全研究,影片下方有部落格文章的連結。
📘 術語
permission prompt(權限確認提示):Claude 提出執行指令、抓網頁、編輯檔案等動作時跳出的確認
approval fatigue(核准疲勞):每個動作都要逐一核准所造成的疲勞,多步驟任務尤其明顯
Auto Mode(自動模式):檢查可能有害的動作,讓 Claude 以較少中斷完成長時間工作
classifier(分類器):獨立的檢查機制,拿動作比對你的意圖,決定核准或拒絕
tool output / tool result(工具輸出結果):工具執行後回傳的內容;classifier 看不到 tool output
force push(強制推送):影片例子:force push 到 main 被拒後,Claude 可能改 push 到新分支
prompt injection(提示注入):網頁或檔案中夾帶的隱藏指令,企圖讓 Claude 偏離你的原始意圖
server-side probe(伺服器端探測器):在內容進入 context 前掃描每個 tool result,標記可疑的惡意指令
context(上下文):Claude 讀取的內容會進入 context;probe 在進入之前先掃描
tier check(分級檢查):決定哪些動作要送給 classifier;唯讀或可復原的動作會跳過
deny / ask / allow rules(拒絕/詢問/允許規則):比 tier check 更早執行;deny 擋下 tool calls,ask 在 Auto Mode 下也強制跳 prompt
managed settings(受管設定):admin 設定的地方,組織內每位開發者都會繼承
user settings(使用者設定):開發者加入自己項目的地方,但不能移除 admin 的設定
environment(環境欄位):用白話英文描述基礎設施;會取代內建項目,要加預設字串才能保留
soft deny(軟性拒絕):擋下動作,除非你明確要求
hard deny(硬性拒絕):不管你怎麼要求都擋下
trust boundary(信任邊界):由你設定的邊界,界定哪些東西算 internal
evals(評估測試):高風險操作可以自己建立 evals 來增加信心
approval fatigue(核准疲勞):每個動作都要逐一核准所造成的疲勞,多步驟任務尤其明顯
Auto Mode(自動模式):檢查可能有害的動作,讓 Claude 以較少中斷完成長時間工作
classifier(分類器):獨立的檢查機制,拿動作比對你的意圖,決定核准或拒絕
tool output / tool result(工具輸出結果):工具執行後回傳的內容;classifier 看不到 tool output
force push(強制推送):影片例子:force push 到 main 被拒後,Claude 可能改 push 到新分支
prompt injection(提示注入):網頁或檔案中夾帶的隱藏指令,企圖讓 Claude 偏離你的原始意圖
server-side probe(伺服器端探測器):在內容進入 context 前掃描每個 tool result,標記可疑的惡意指令
context(上下文):Claude 讀取的內容會進入 context;probe 在進入之前先掃描
tier check(分級檢查):決定哪些動作要送給 classifier;唯讀或可復原的動作會跳過
deny / ask / allow rules(拒絕/詢問/允許規則):比 tier check 更早執行;deny 擋下 tool calls,ask 在 Auto Mode 下也強制跳 prompt
managed settings(受管設定):admin 設定的地方,組織內每位開發者都會繼承
user settings(使用者設定):開發者加入自己項目的地方,但不能移除 admin 的設定
environment(環境欄位):用白話英文描述基礎設施;會取代內建項目,要加預設字串才能保留
soft deny(軟性拒絕):擋下動作,除非你明確要求
hard deny(硬性拒絕):不管你怎麼要求都擋下
trust boundary(信任邊界):由你設定的邊界,界定哪些東西算 internal
evals(評估測試):高風險操作可以自己建立 evals 來增加信心
✏️ 小考一題
根據影片,classifier 預設把哪些東西視為 internal?
A. 公司內部的所有基礎設施B. environment 欄位列出的 cloud bucketsC. 工作目錄和 git remotesD. 整台本機電腦的所有檔案看答案
答案:C。[03:14] 字幕說 classifier 預設只把工作目錄和 git remotes 當作 internal,其他都算 external,連公司自己的基礎設施也是
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰