AI Agent 的能力,不該等於你的能力
你讓 AI Agent 用你的 shell 跑任何指令,等於把 sudo 密碼貼在螢幕上。能力分離、變更分級、三段搬移——三個框架讓你的 Agent 強大但可控。
你會把 sudo 密碼寫在便利貼上,貼在螢幕旁邊嗎?
不會。但你讓 AI Agent 用你的 shell 跑任何指令,本質上做的是一樣的事。
最近跟幾個有在玩 AI Agent 的朋友聊,發現一個有趣的現象:大家對 Agent 的權限設計,停留在「能跑就好」的階段。Claude Code、Cursor、Copilot,裝完就給它完整的 shell 存取權限,然後開始享受自動化帶來的快感。
問題來了:這些 Agent 的能力邊界,跟你本人一模一樣。你能 rm -rf /,它也能。你能動 ~/.ssh,它也能。你能 rsync 加上 --remove-source-files,它也能。
差別只在於:你知道後果,它不知道。
LLM 會寫指令,但它不理解指令
這是一個很容易被忽略的事實。LLM 產生 shell 指令的方式,是基於 token 預測。它從訓練資料裡學到「rsync 通常長這樣」,然後組合出一條看起來正確的指令。
但它不理解 shell 展開(shell expansion)。
一條路徑裡如果有空白、日文字元、括號,shell 會怎麼處理?如果某個變數是空字串,rsync 會把它解讀成什麼?如果你一次丟三個來源路徑,其中一個展開失敗,剩下兩個會發生什麼事?
這些問題,資深工程師要想一下才能答。LLM 連想都不會想。它只是把 token 拼在一起,然後你按了確認。
更危險的是那些 destructive flag。--remove-source-files、--delete、rm -rf——這些指令在 LLM 眼裡跟 ls 沒有本質區別。它不會在產生這些指令時多猶豫半秒。但你的檔案系統會。
能力分離:LLM 負責想,閘道負責做
解法的核心概念很簡單:把「能做什麼」從 LLM 手上拿回來。
LLM 只負責產出計畫(Plan),一個結構化的 JSON,描述它想做什麼、動哪些檔案、預期影響是什麼。真正的執行,交給一個你控制的閘道(Capability Gateway)。
閘道做的事:
- 校驗路徑是否在允許範圍內
- 強制跑 dry-run,產出差異報告
- 等待人類簽核(不是「按 Y 繼續」,是輸入一個完整確認字串)
- 執行完寫入 audit log
這樣一來,LLM 再怎麼幻覺、再怎麼 token 預測出奇怪的指令,它能造成的最大傷害就是:產出一個你不會批准的計畫。
聽起來多了一層?對,就是要多一層。
變更分級:不是所有操作都值得同等信任
另一個實用的框架是變更等級分類:
GREEN(綠燈):只讀操作。查詢、列出、dry-run。Agent 可以自由執行,不需要人類介入。
YELLOW(黃燈):可逆改動。新增檔案、建立資料夾、寫入新檔。需要 Agent 主動報告,但不需要事前審批。
RED(紅燈):不可逆或大範圍改動。刪除、搬移、覆寫、權限遞迴、碰憑證、碰 home 目錄。這類操作必須走完整流程:計畫 → dry-run 證據 → 人類簽核。沒有例外。
大部分日常開發工作落在 GREEN 和 YELLOW。RED 操作一天可能碰不到幾次。所以這套分級不會拖慢你的開發速度——它只會在真正危險的時刻攔住你。
搬移檔案?拆成三步
這是一個很具體的建議:如果你需要 Agent 幫你搬移檔案(本機到 NAS、跨磁碟),永遠不要用一步完成的方式。
把搬移拆成三段:
- Copy:只複製,不刪除原始檔
- Verify:校驗目標端(檔案數量、大小、hash 抽樣)
- Delete:只刪除這次複製成功的清單,而且要求再次簽核
為什麼?因為「複製 + 刪除」合併成一個原子操作的時候,失敗模式太多了。網路中斷、磁碟滿了、路徑解析錯誤——任何一個環節出問題,你的原始檔就沒了。
拆開之後,最壞的情況是多佔一份空間。空間便宜,資料無價。
「這樣會不會太慢?」
會。
這是刻意的。
你現在追求的,不是「最快完成任務」,而是「可控」跟「出事能救」。
真正有效率的系統長這樣:平常不需要花腦力擔心會不會炸掉,出事的時候能在十五分鐘內恢復到可工作狀態。
那些省下來的「不用擔心」的腦力,才是真正的效率提升。
一張速查表帶走
| 操作類型 | 等級 | Agent 可否直接執行 |
|---|---|---|
| ls、cat、grep、dry-run | GREEN | 可以 |
| 新增檔案、建立目錄 | YELLOW | 可以,需報告 |
| 刪除、搬移、覆寫 | RED | 禁止,必須走簽核 |
| 碰 .ssh / .gnupg / 憑證 | RED | 禁止,必須走簽核 |
| 任何 destructive flag | RED | 禁止,Agent 只能提出方案 |
| 多路徑操作 | YELLOW+ | 必須拆成逐一處理 |
AI Agent 是強大的工具。但工具的強大程度,應該跟你對它的控制程度成正比。
給它無限制的 shell 權限,就像把電鑽交給一個手很穩但沒有深度知覺的人——大部分時候沒事,但出事的那一次,你會記很久。
把能力閘道建起來。花半天時間,換未來所有夜晚的安心。