Agent 不是讀不懂程式 是讀不到語境
在 HN 上看到一篇 Domain-Driven Agents,我覺得它講中很多 AI coding agent 落地舊系統時的真問題。
作者的觀察很直白:LLM 在 greenfield 小專案表現很好,但一進 legacy codebase,品質就開始掉。不是因為模型突然變笨,而是系統裡很多概念沒有被明確回答。像 job offer、profile、view model 這些字,到底誰擁有、哪個 context 可以改、哪個 adapter 是刻意存在的,程式碼本身沒有說清楚,agent 就只能猜。
我很喜歡他把工作拆成 strategic 和 tactical。現在真正變便宜的是 tactical,也就是搬檔案、補測試、改一批重複結構。strategic 還是人要做,因為那是判斷系統邊界、語言和風險的工作。
文章裡的做法是每個 repo 放 .workflow.json,宣告 bounded contexts、glossary、context edges,再用 CONTEXT.md 記錄活的 domain language,最後產出可重建的 context map。這聽起來很工程潔癖,但從 NLP 角度看其實很合理。模型不是只吃 token,它也吃「哪個 token 在這個系統裡代表什麼」。如果同一個概念在三個地方有三種名字,模型再強也會把歷史包袱合理化。
所以我現在越來越覺得,導入 agent 前的第一步不該是買更貴模型,而是讓 codebase 變得可被理解。把 domain language 寫下來,把 context 邊界說清楚,把故意存在的 adapter 標出來。這些文件不是給人看的裝飾,是 agent 的作業環境。
真正有效的 AI 工程,可能不是讓模型無所不知,而是讓系統少一點需要猜的地方。
作者:陳思維