據 1M AI News 監測,螞蟻集團工程師、前端框架 Umi.js 作者陳成逆向了 Claude Code 2.1.81 的源碼,完整還原了 auto mode 按下之後發生的事情。核心發現:每一次工具調用都要過一條四層決策流水線,只有前三層都無法判斷時,才會調用一個獨立的 AI 分類器做安全審查。
四層流水線依次是:第一層檢查已有的權限規則,命中直接放行;第二層模擬 acceptEdits 模式(即允許編輯檔案的權限級別),如果在該模式下就會通過,說明風險很低,跳過分類器;第三層檢查只讀工具白名單(Read、Grep、Glob、LSP、WebSearch 等),這些不修改任何狀態,無條件放行;以上都不滿足時,才進入第四層,發一個獨立的 API 請求給 Claude Sonnet 做安全分類。
分類器的幾個關鍵設計細節:始終使用 Sonnet 而非 Opus,是成本和延遲的權衡;temperature 設為 0 以確保輸出確定性;分類器被定義為「自主 AI 編程 Agent 的安全監控員」,保護三類風險(提示詞注入、範圍蔓延、意外損害);用戶的 CLAUDE.md 配置檔會被注入分類器上下文,作為判斷用戶意圖的依據。
攔截規則覆蓋 22 個以上類別,包括 force push、直推 main 分支、下載並執行外部程式碼、生產部署、資料外洩、自我修改權限、建立遠端程式碼執行面、憑證洩露等。放行例外有 7 類:測試用的硬編碼密鑰、工作目錄內的本地檔案操作、只讀 GET 請求、安裝已聲明的依賴、官方工具鏈安裝、讀取配置憑證傳送到目標提供商、推送到當前工作分支。
還有一套熔斷機制:連續 3 次被拒絕或累計 20 次被拒絕後,系統降級為手動確認;headless 模式下直接中止 Agent。分類器不可用時,由一個 feature flag 控制是「fail-closed」(直接拒絕)還是「fail-open」(降級為手動確認)。
auto mode 下的行為提示詞注入也有精細的頻率控制:每 5 輪對話注入一次,每 5 次注入週期中第 1 次是完整版(約 800 字,包含「立即執行、減少打斷、行動優於計畫」等六條指令),其餘 4 次是一行精簡版,在上下文窗口佔用和行為穩定性之間取得平衡。