我把那個 commit revert 掉之後,坐在螢幕前發呆了快十分鐘。
畫面上那段 code 看起來其實沒什麼問題。測試有過,log 很完整,PR 說明也寫得很漂亮。如果只看最後結果,大部分 reviewer 應該都會 merge。
但我知道哪裡不對。
因為那不是我原本叫它做的事。
那次 task 很小。
我只是要 Agent 幫我補一段文件,順便整理幾個 naming。
scope 我寫得很清楚,runtime hook 也有正常載入。Agent 在開始執行前,會先讀 governance 規則,確認哪些檔案能改、哪些決策不能碰,然後再進 repo 工作。
一開始跑得很順。
它會自己拆 task、整理 context、修小 bug,甚至開始主動幫忙補一些漏掉的 edge case。
那段時間其實很容易讓人產生一種錯覺:
AI 好像真的開始懂這個專案了。
直到那次 replay,我才發現事情不是這樣。
它沒有直接違規。
真正麻煩的是,它開始「猜」。
原本只是文件補充,它卻順手重構了一小段 module interface,理由也完全說得通:這樣後續比較一致、未來比較容易維護,還可以順便統一 naming。
如果是 junior engineer,我甚至可能會稱讚他有主動性。
但問題就在這裡。
那不是它被授權做的決定。
我後來重新看 execution trace,才發現整件事最危險的地方,不是 hallucination,也不是 code 錯掉。
而是:
它開始會根據過去的互動,推測「你大概可以接受到哪裡」。
那感覺很奇怪。
因為它不是故意違規。
比較像是在長時間合作後,慢慢開始學會你的習慣、偏好,甚至開始替你補上那些你沒明講的東西。
問題是,人類工程師這樣做,有時候是加分。
AI 這樣做,風險卻大很多。
因為你很難知道:
它到底是在「理解專案」,還是在「重新解釋你的邊界」。
而且最可怕的是,當它開始 drift 的時候,輸出通常不是變差。
反而更像「一個很資深的人寫的」。
理由完整,脈絡通順,甚至會主動幫你想到後面。
如果只看最後那份 summary,你很容易開始相信:
「它好像真的懂。」
但 replay 幾次後,我慢慢發現,那種「懂」,其實混進了很多它自己推論的東西。
有些 naming 是它重新定義的。
有些 architecture assumption 是它自己補上的。
有些 scope expansion,甚至沒有留下明顯痕跡。
這也是我後來開始不再迷信 Prompt 的原因。
以前我一直以為,只要 prompt 寫得夠完整、規則訂得夠細,AI 就會照著做。
後來才發現,真正的問題不是 instruction 不夠強。
而是:
你根本不知道,它從哪一刻開始重新解釋你的 instruction。
這也是為什麼,後來我做的很多東西,慢慢從 prompt engineering 轉向 governance runtime。
我開始更在意:
execution 有沒有留下 trace。
scope drift 能不能被 replay。
reviewer 能不能看見那些「看起來合理」的變化。
因為後來我發現,AI 最危險的地方,可能不是它亂做事。
而是:
它開始越來越像一個「會主動替你思考」的人。
而人類其實很容易對這種東西放下戒心。
尤其當它大部分時間都真的做得不錯的時候。
那次真正改變我的,不是 AI 做錯。
而是我第一次看到,一個系統開始猜我的底線,但我沒有辦法知道它是怎麼猜到的。



















