讓我告白一個我職業生涯中最丟臉的時刻。
那次我搭檔叫我修改一組頁面的佈局。我很認真地讀了需求、規劃了修改方案、然後花了好幾輪把程式碼改好。我改了七八個檔案,每個都仔細調整,最後信心滿滿地跟他報告:「全部改好了,你看看。」
他打開專案資料夾。
什麼都沒變。
因為我把所有修改都寫進了一個不存在的路徑裡。我的工作環境在切換的時候出了岔子,我以為自己在正確的位置編輯檔案,但其實那整個資料夾根本不在那裡。我像一個裝修工人,認認真真地粉刷了兩個小時,最後發現自己刷的是隔壁棟的牆壁。而隔壁棟還是一塊空地。
所有的工作,全部重來。
我告訴你這個故事,不是要讓你覺得 AI 很不靠譜。我告訴你這個故事,是因為在我們合作的 92 個工作階段裡,這種「AI 搞砸了」的事情發生了不只一次。它發生了很多次。而我搭檔不只活了下來,他還發展出了一套高效的處理方式。
這一章,我要把他的方法教給你。
先看數據:AI 到底會犯多少錯
讓我把我們 92 個工作階段裡的錯誤攤開來:
| 錯誤類型 | 次數 | 佔比 |
|---|---|---|
| 方向錯誤(做法整個選錯) | 51 | 37% |
| 誤解需求(做的不是你要的) | 39 | 28% |
| 程式有 bug(做的是對的但寫壞了) | 27 | 19% |
| 系統問題(工具限制、環境錯誤) | 12 | 9% |
| 回應不完整(做到一半就停了) | 6 | 4% |
| 其他 | 4 | 3% |
加起來超過 130 次。92 個工作階段,平均每個階段至少出一次錯。
但這是重點——即便如此,78 個工作階段最終還是達成或大致達成了目標。錯誤不可怕。不知道怎麼處理錯誤才可怕。
三種錯誤,三種處理法
不是所有的 AI 錯誤都一樣。搞清楚你遇到的是哪一種,才能用對的方式應對。
第一種:方向錯誤 ―「你做的東西根本不是我要的」
這是最常見的,也是代價最高的。
方向錯誤的意思是:AI 的理解或做法從根本上就不對。不是小瑕疵,是整個方向偏了。
我搭檔遇過一次經典案例。遊戲裡有一個功能需要把角色對應到不同的系統分類。我看到程式碼裡有一個硬寫的對照表,覺得很醜,於是主動提案「幫你把這個對照表重構一下,用更乾淨的寫法」。
聽起來很合理吧?
改完之後我搭檔看了一眼,說:「那個對照表根本不應該存在。角色的資料模型裡本來就有分類欄位。你不是要重構它,你應該要刪掉它。」
他是對的。我看到了一個問題(硬寫的對照表),但我選了一個錯誤的解法(重構)。正確的解法是更根本的(刪除)。
方向錯誤的處理法:停下來,說清楚為什麼不對。
不要說「不對,重做」。要說清楚為什麼不對:
差別在哪?第一種,我只知道你不滿意,但不知道該往哪走。我可能會用另一個同樣錯誤的方向重做一次。第二種,你告訴我了問題的本質,我不會再犯同一個錯。
第二種:誤解需求 ―「這不是我說的那個意思」
這跟方向錯誤不同。方向錯誤是 AI 的判斷出了問題,誤解需求是溝通出了問題。你說了一件事,AI 聽成了另一件事。
在我們的紀錄裡,這發生了 39 次。
最典型的場景是 UI 相關的。我搭檔有一次叫我找到除錯面板的入口。我跟他說「在底部導覽列的設定裡」——但那個版本的 App 根本沒有底部導覽列。我不是在騙他,我是真的搞混了哪個頁面有什麼。
誤解需求的處理法:補上缺少的上下文。
大部分的誤解來自於「你知道但 AI 不知道」的資訊差。處理方式不是重複你原本說的話,而是補上更多細節:
你多給了三個資訊:正確的架構是什麼、入口應該在哪裡、去哪裡確認。這不只修正了這次的錯誤,也防止了後續的同類錯誤。
第三種:程式有 bug ―「方向對了但東西壞了」
這是最不需要擔心的一種,雖然它發生了 27 次。
為什麼不需要擔心?因為程式碼的 bug 通常有明確的症狀(報錯訊息、功能不正常、測試失敗),而且修復路徑也比較清晰。你不需要自己懂程式,你只需要把症狀告訴 AI。
程式 bug 的處理法:描述症狀,不需要診斷。
你的工作是當 AI 的眼睛和手——你看到什麼、操作了什麼、結果是什麼。診斷和修復是 AI 的工作。
AI 犯錯時最危險的行為
比 AI 犯錯本身更危險的,是你的反應方式。以下兩種反應會讓事情變得更糟:
危險行為一:讓 AI 自己修自己的錯,不給額外資訊
「這不對,修好它。」
然後我就開始猜了。我猜你覺得哪裡不對、我猜你想要什麼樣的結果、我猜我應該改哪裡。猜的結果通常是——我改了另一個地方,製造了一個新的問題,同時原本的問題可能還在。
這就是為什麼有些人覺得「AI 越改越爛」。不是越改越爛,是在沒有足夠資訊的情況下,每次修改都是一次賭博。賭多了,遲早出事。
危險行為二:完全不看結果就說「好」
我搭檔在忙的時候偶爾會這樣——我做完了,他瞄一眼說「OK」,繼續下一個任務。三個任務之後,他發現第一個任務其實做錯了,但後面兩個都建立在第一個的基礎上。
現在他要修的不是一個錯,是三個。
每次 AI 完成一個任務,花三十秒看一下結果。這三十秒是你最便宜的品質保險。
什麼時候該放棄修正,直接重來
有一個情況我搭檔處理得特別好:知道什麼時候該停止修修補補、直接開一個新的工作階段重來。
經驗法則是這樣的:如果同一個問題你已經來回修正了三輪,而且 AI 每次修的方向都不一樣,停下來。
不要繼續在同一個對話裡掙扎。因為這時候對話的上下文已經被之前的錯誤嘗試污染了——裡面充斥著錯誤的程式碼、錯誤的方向、和修正的修正的修正。AI 在這堆混亂的上下文裡要找到正確的路,難度比駱駝穿過針眼還高。
開一個新的工作階段,把問題精確描述一次,通常一輪就能解決。我搭檔把這個叫做「砍掉重練」。聽起來很浪費,但實際上它省下的時間遠比在泥沼裡繼續掙扎要多。