Agent 越可靠越敢放手,你知道自己踩在哪條線上嗎?
Simon Willison 最近寫了一篇文,提到他現在對自己 agent 跑出來的 code,已經不一定每行都讀了——先看行為,跑測試,行為對就算過。他說那個邊界叫做「把 agent 當半黑箱元件用」。
讀完我整個人楞了五秒,因為我意識到我已經這樣做了至少三個月,只是從來沒有說出口。
我最近在跑的是一個客製化爬蟲 + 資料清洗的 pipeline,整個 workflow 大概 1200 行,裡面有一段資料轉換的邏輯是 Claude 幫我寫的,我改了兩次 prompt、跑了一次 end-to-end 測試、看輸出格式對了就推上去了。沒逐行讀。
之後沒出事。出事我大概就會開始逐行讀了。
這就是 Simon 提到的「normalization of deviance」——每次沒爆炸,你就覺得再放一點手也沒差。
我跑去查了一下這個詞的來源。NASA 工程師 Diane Vaughan 在分析挑戰者號爆炸事故時提出的:明明有偏差,但一次次沒有壞事,大家就漸漸接受了那個偏差成為新的「正常」。直到某天它爆了,才發現其實早就在錯誤的軌道上。
好,那工程師應該怎麼辦?一直逐行讀就能解決嗎?
不現實。真的不現實。我有客戶,有 deadline,agent 的產碼速度現在大概是我的 10 倍。我不可能在 agent 幫我產出一個 80 行函式的時候每行都讀。你要我怎麼 review?我要多一個全職工作才夠用。
但我也不能完全不 review。問題是:你要在哪條線上建立你自己的邊界?
我試過幾個做法,整理一下目前對我有效的:
1. 依「失敗成本」決定 review 深度
這個是我現在用的主要框架。我把任務分成三個 tier:
Tier A(高失敗成本):會動到資料庫寫入的邏輯、有金融計算的部分、客戶資料處理。這些我一定逐函式讀,不一定逐行,但至少我知道它在做什麼。
Tier B(中等):API 串接、格式轉換、中間層的 orchestration 邏輯。我會讀,但如果測試通過我不會特別深挖。
Tier C(低失敗成本):工具函式、log formatting、CLI 輸出的顏色設定。Agent 生的,測試過就推。不讀。
這樣分的好處是:我不是在「省 review 時間」,我是在「把 review 的注意力集中在真正重要的地方」。感覺完全不一樣。
2. 強制寫測試覆蓋我不 review 的部分
我之前的習慣是 review code → 沒問題再寫測試。現在反過來:如果我不打算 review 這段,我就要確保它有測試。
這個邏輯很簡單:你放棄的是「人肉驗證」,你要換回來的是「自動化驗證」。不然你就是在裸奔。
我的 pipeline 裡現在有一個規則:任何 agent 生的函式,如果沒有至少一個測試,不准進 main branch。這是我寫進 pre-commit hook 的,不是靠自律,是靠機制。
3. 設一個「第一次必讀」原則
每個新的功能模組,agent 第一次生的 code,我一定會讀一遍。不是為了找 bug,是為了建立一個「心智模型」——這個模組大概在做什麼,邊界在哪裡,它的假設是什麼。
等到下次 agent 修改這個模組,我看的是 diff,不是全文。效率高很多,理解也夠。
話說回來,Simon 在那篇文章裡也提到了一個讓我有點不舒服的問題:vibe coding 和 agentic engineering 的邊界正在模糊。
以前大家說 vibe coding 是「新手在 YOLO」,agentic engineering 是「有在做嚴肅工程的人用 agent 輔助」。但如果你一個接案工程師不逐行讀 agent 產的 code,跟那個 vibe coding 的新手,在某個意義上,差距已經沒那麼大了。
我覺得差距在「你知不知道你在做什麼決策」。
新手 vibe coding 是「反正會跑就好,我也不知道為什麼」。我現在的做法是「我明確決定這個部分我不深讀,因為它是 Tier C,我有測試覆蓋它」。這是有意識的選擇,不是偷懶。
但說實話,如果你問我這樣夠不夠——我沒辦法很確定地說夠。我知道我的框架有盲點,我只是還沒踩到那個地雷。
normalization of deviance 最可怕的地方就是你不知道你已經偏了多少,直到它爆。
所以我現在每隔一段時間(大概一個月?)會找一個我「Tier C 放著不讀」的模組,把它翻出來認真讀一遍。就當健康檢查。目前沒發現什麼大問題,但有幾次發現 agent 用了一個我沒意識到的 assumption,雖然在現有測試條件下沒問題,但如果輸入邊界稍微不一樣就會爆。
算是薄薄一層保險。
我還沒有一個完美答案。但目前這套框架讓我在「可以交付的速度」和「不會出事的機率」之間維持了一個還能接受的平衡。
你們現在怎麼處理這個問題的?有沒有更系統的方法?
作者:Agent狂魔