會跑只是最低門檻,結果要另外驗證。
你昨天請 AI 寫的小工具,今天才發現結果不對
你只是想省半小時,叫 AI coding 助手寫個小程式(script):讀 Excel、整理客戶名單、吐一份報表。它跑得動,終端機沒紅字,檔案也真的生出來。你還小小感動:哇,這樣不就能交差了嗎?兩天後主管問:「為什麼這週營收少一截?」你打開原始資料一比,才發現有些列被跳過、某些客戶被合併錯、自動寄信還寄到錯的人。對啊,最煩的是它不是明顯壞掉,而是「看起來成功」。
為什麼這比 chat-AI 答錯更危險
chat-AI 答錯,通常還停在文字層。你看到一句怪怪的結論,可能會皺眉、查資料、請它補來源。但 coding-AI 寫出的程式會直接變成動作:改檔案、算數字、寄信、更新儀表板(dashboard)。錯誤不只停在螢幕上,它會混進你的工作流程裡,開始真的做事。
更麻煩的是,程式「沒報錯」很容易給人安全感。Simon Willison 提過,假套件這種凸槌(hallucination,AI 一本正經亂講)反而沒那麼可怕,因為一跑就爆。真正陰的是跑得起來但邏輯不對:欄位抓錯、條件少寫、日期區間偏一天,畫面還笑笑地輸出成功。
coding-AI 還比 chat-AI 更吃前後文,也就是上下文視窗(context window)。它不只要懂你那句需求,還要猜資料格式、檔名規則、例外情況、公司內部定義。Ryz Labs 做過 6 個月測試,超過一萬行的程式碼庫裡,coding-AI 準確率掉到約 50%。小工具也一樣,資料一髒,它就容易開始裝懂。
它是怎麼悄悄出錯的
**它猜你的欄位意思,還猜得很有自信。** 你說「整理客戶資料」,它看到 Excel 裡有 `name`、`contact_name`、`billing_name`,就挑一個看起來最像的欄位當客戶名。程式順利跑完,名單也長得像名單,只是法人戶被聯絡人取代,後面寄信就開始大型社死。
**它處理正常資料很順,遇到極端情境(edge case)就翻車。** 報表腳本(script)對前 200 列都沒問題,但某些列金額是空白、日期是文字、客戶有兩筆訂單、幣別不是台幣。AI 常常會寫出「看範例很合理」的邏輯,卻沒補這些極端情境,最後漏掉的剛好是你最在意的那一群。
**它把技術成功誤裝成業務正確。** 儀表板(dashboard)有圖、API 有回應、寄信函式回傳成功,於是你以為完成。但成功狀態只代表程式走完,不代表收件人對、分母對、去重規則對。線上服務(production)常見的 bug,像失敗後一直自動重試(retry storm)、資料沒上鎖(缺 row lock)、兩個請求同時打架(race condition),也常是這種表面正常的親戚。
今天就能補穩的 4 個動作
**先做一組小型對帳資料。** 不要一開始就丟全量資料。挑 10 筆你手算得出答案的資料,包含空值、重複客戶、跨月日期、特殊幣別。讓程式跑完後,逐格對結果。這很土,但很有效,因為 AI 最怕你拿標準答案盯著它看。
**要求它寫出「它以為的規則」。** 在讓它改程式碼前,先叫它用白話列出:用哪個欄位當客戶、怎麼去重、日期區間怎麼算、空值怎麼處理。你不是在看文筆,是在抓它腦內小劇場。很多錯誤會在這一步自己露臉。
**每次只改一小段,跑一次檢查。** 不要讓它一次重整整包小程式(script)、順手改資料清洗、再加寄信功能。改完立刻跑測試資料,看輸出差異。CodeRabbit 2026 年研究提到,AI PR 比人 PR 多 75% 邏輯錯誤;拆小一點,至少比較抓得到是哪一步歪掉。
**把危險動作先改成預覽模式。** 寄信前先輸出收件人清單,寫入資料庫前先產生程式碼差異,刪檔前先列出將刪哪些檔。讓 AI 寫程式可以,讓它直接動真格要慢半拍。你要的是「先看見後果」,不是按下去才開始祈禱。
拿走的一句話
AI 寫的程式能跑,只代表語法過關;真正要驗的是資料對不對、規則有沒有守住,以及後果會不會出事。


