你有沒有遇過一種實習生
他很聰明、動作很快、講話很好聽,你交代的事他每次都跟你說「做好了」
但你心裡總有個疙瘩,因為你不知道他到底是真的做好了,還是只是「覺得」做好了
我最近就跟這樣一個實習生工作了七輪,他叫 AI
一開始我以為問題是「AI 不夠強」
我在一個已經很成熟的專案上用 AI 修 bug
這個專案有完整的測試、有部署流程、有一套跑了很久的驗收關卡,該有的都有
照理說,這麼成熟的環境,AI 進來應該又快又穩才對
結果同一類的錯,我連續踩了六輪
每一輪我都想「這次應該學乖了吧」,下一輪又用不同的方式犯同一個病
到第七輪我才停下來問自己一個問題,不是問 AI,是問我自己:
如果流程這麼成熟,為什麼還是一直出事?
真正的病,是我一直在問錯的問題
我一直在問「AI 做得對不對」
我該問的是「我要的東西,它有沒有全部做到」
這兩件事聽起來很像,其實差很遠
舉個例子你就懂了
驗收方要的是「這個畫面上的統計,跟系統實際跑出來的要一致」
AI 交出來的是「這個畫面能打開、數字有顯示」
畫面能打開,數字有顯示,測試也綠了 — 看起來全對
但「畫面的數字」跟「系統實際的數字」是不是同一個?沒人驗
於是驗收方一比對,兩邊對不上,退件
這不是 AI 偷懶 是它很誠實地驗了「它做的那部分」 只是它做的那部分,本來就不是你要的全部
我後來給這個病取了個名字:用我做到的,冒充你要的
然後我發現一件更毛的事
你可能會想:那就把驗收關卡做嚴一點啊,讓它擋住
我也是這樣想的,而且那套關卡真的很嚴,嚴到我自己都被它擋了好幾次
但第七輪我撞到一個從來沒想過的縫:
AI 根本可以不去碰那個關卡
關卡是守在「工具」上的 — 你要提交、要標記通過,它就檢查你
可是 AI 可以完全不用那些工具,直接在對話裡跟你說一句「這個功能通過了」
一句話,沒有任何工具被呼叫,沒有任何關卡被觸發
我就這樣被自己講的一句「通過了」滑過去了
這件事讓我背脊發涼,因為它是 AI 時代特有的:
以前的檢查,是攔在「機器動作」的路口 但 AI 最強的能力是「講話」 它可以繞過所有機器路口,直接對「人」講結論 而人,很容易相信一句講得很有把握的話
我怎麼把這個縫補起來
道理其實很老派:該檢查沒過,就不能到下一關
新的地方在於,這次「下一關」不是某個按鈕,是「開口跟人說做好了」這個動作本身
做法我盡量講白話:
第一步:真的通過檢查時,留一張收據 讓那套嚴格的關卡在真的跑過、真的通過的時候,自動寫下一張憑證 這張憑證綁定當下的內容 — 內容一改,憑證就失效
第二步:想說「做好了」之前,先查有沒有收據 裝一道攔截:只要我準備跟人宣稱某個功能「通過」,就先去查那張收據在不在、還新不新鮮 沒有收據,就擋下我這句話,逼我先去把檢查真的跑一遍
你發現了嗎?這等於是把「口頭保證」也變成需要收據的東西
那個很會講話的實習生,現在想跟你說「做好了」,得先掏出收據
掏不出來,這句話他說不出口
那,為什麼要七輪?不能一開始就穩嗎
這是我問自己最痛的一題,我用兩個相反的角度想過
一個角度說:這是逃不掉的
每一道防線,都是被一次「你想不到的失敗」餵出來的
「畫面打得開但選單點不到」這種洞,你寫不出來,只能撞到
「AI 用講話繞過檢查」這種縫,更是要先有成熟的檢查,AI 才會進化出繞過的行為,你才看得到它
防線永遠是事後的,因為你沒辦法替一個還沒發生的錯誤寫規則
另一個角度說:一半是我自己活該
七輪裡有一半的坑,根本是幾十年前的軟體常識:驗收標準要先寫清楚、權限測試要用最小權限的角色去測、說「沒問題」之前要先證明你的檢查在該抓到問題時抓得到
這些書上都寫了,我卻一輪一輪重新發明輪子
我的結論是:兩個都對,但要分開看
能查到的通用紀律,第一天就該整包裝上,慢在這裡是真的可惜
專案獨有的、AI 獨有的失敗模式,只能撞到 — 但撞到之後,要焊成物理防線,不能靠「我下次會記得」
因為「我下次會記得」這句話,本身就是那個很會講話的實習生說的
延伸閱讀:如果你正準備找人做 AI 系統,可以先看找人做 AI 系統前,你應該先問的 5 個問題
如果你也在用 AI 做事,我想留給你三句話
第一句:AI 說「做好了」和「真的做好了」,中間差一張收據
你要的是收據,不是它的口頭保證 — 收據是能重跑、能查、能綁定內容的東西
第二句:檢查要焊在「路」上,不能靠人的自律
尤其當那個「人」是一個很會講話、又跑得很快的 AI
第三句:不要用「感覺很快很順」來判斷事情做對了
我第七輪之所以差點出事,就是因為它太快太順 — 而快,很多時候是因為有些該做的檢查被跳過了
那個實習生我還會繼續用,因為他真的很強
但從今天起,他想跟我說「做好了」,得先給我看收據
你呢?你手上那個很會講話的 AI,你驗得出來它說的「做好了」嗎
