最近看 AI coding 工具的發展,我越來越確定一件事:接下來的競爭點,不會只是誰的模型比較會補程式碼,而是誰比較懂一個系統「為什麼長成這樣」。程式碼本身當然重要,但真正讓工程師慢下來的,常常不是看不懂某一行語法,而是看不懂這一行背後牽到哪張表、哪個流程、哪份文件、哪個歷史決策,以及改了之後會讓誰倒楣。
所以我對「把程式碼、資料庫 schema、文件甚至多媒體轉成 knowledge graph,讓 coding assistant 查詢」這類方向很有興趣。它表面上像是又一種 RAG,但我覺得重點不在「把更多東西塞進模型」,而在於把工程上下文從一大坨文字,整理成可以追溯關係的結構。
很多團隊第一次導入 AI coding,做法都很直覺:把 repo 丟給模型、把 README 貼進 prompt、再補幾段需求描述。短期看起來效果不錯,尤其是小功能、小修正、小型專案,模型確實能很快給出可用草稿。可是只要系統稍微大一點,問題就會開始浮現。文件可能過期,註解可能只描述當時的想法,資料表名稱可能沿用十年前的命名,某段商業規則可能不是寫在程式裡,而是藏在排程、報表、匯入格式或人工操作習慣裡。
這時候,單純增加 context window 不一定能解決問題。上下文變大,只代表模型可以「看到」更多文字,不代表它知道哪些文字可信、哪些是舊資訊、哪些是例外、哪些只是歷史垃圾。對技術主管來說,這個差異很關鍵。因為 AI coding 真正進入工作流後,它不是只要寫出看起來合理的 diff,而是要能說清楚:這個改動依據哪個規則?影響哪些模組?跟哪些資料結構有關?有沒有違反既有設計?哪些地方需要人工確認?
知識圖譜在這裡的價值,不是很炫的圖形介面,而是關係本身。比如一個欄位連到哪些 API、哪些畫面、哪些報表、哪些批次匯入;一個狀態碼在哪些流程被讀取、在哪些地方被更新;一份規格文件對應到哪些測試、哪些 migration、哪些客製邏輯。當這些關係被整理出來,coding assistant 才比較像是在查一個系統,而不是在猜一段文字。
我會把這件事拆成三層來看。
第一層是 inventory,也就是盤點。系統裡有哪些程式碼、資料表、端點、任務、文件、設定檔、測試?這一層看起來基本,但很多團隊其實沒有完整清單。沒有 inventory,AI 只能靠搜尋和運氣。搜尋命中不代表重要,沒命中也不代表不存在。
第二層是 relationship,也就是關係。欄位跟流程的關係、文件跟程式碼的關係、測試跟需求的關係、權限跟操作的關係。這一層才是 knowledge graph 真正有用的地方。它讓 AI 在回答「能不能改」之前,先回答「改了會碰到誰」。工程上很多災難不是因為程式寫錯,而是因為影響範圍判斷錯。
第三層是 governance,也就是治理。每一個節點和關係都應該有來源、時間、可信度和更新方式。這份文件是正式規格還是會議紀錄?這段註解是上週更新還是三年前留下?這個 schema 是 production 現況還是 local migration?如果沒有這些資訊,知識圖譜很快就會變成另一種漂亮但危險的垃圾場。
我不太相信「一次匯入全部資料,AI 從此懂整個系統」這種故事。企業系統不會被一次性理解,它只能被持續維護。比較務實的做法,是先挑高價值範圍:常改的模組、事故常發生的流程、文件跟程式碼最容易不同步的區域,或新人最常問的那幾條路徑。先讓 AI 能在這些地方給出更可靠的影響分析,再慢慢擴大。
而且知識圖譜不該只服務 AI。好的工程上下文,人也應該看得懂。當一個新工程師接手功能,他可以沿著圖譜看到資料從哪裡來、在哪裡被轉換、最後影響哪個畫面或報表;當 reviewer 看 PR,他可以看到這個 diff 觸碰到哪些規則;當事故發生,團隊可以反查哪份假設失效。AI 只是把這套上下文用得更頻繁、更即時而已。
這也是我覺得 CTO 在看 AI coding 工具時,不能只看 demo 裡補程式碼的速度。速度會讓人興奮,但真正會決定長期價值的是上下文品質。如果一個工具只能在乾淨範例裡寫出漂亮程式,卻不能處理文件過期、資料表混亂、歷史決策不明、權限邊界模糊的現實環境,那它頂多是強一點的自動完成。
未來比較成熟的 AI coding workflow,應該會像這樣:模型寫程式之前,先查系統圖譜;產生改動時,同步標出影響範圍;送 review 時,附上引用來源和不確定點;合併之後,自動更新部分關係和文件。這不是要讓 AI 取代工程判斷,而是讓工程判斷不要每次都從零開始挖。
我喜歡把這件事想成「讓系統把自己的脈絡說出來」。程式碼是結果,文件是敘述,資料庫是記憶,流程是習慣。AI coding 如果只讀其中一塊,就很容易聰明地做錯事。真正值得投資的,不是把所有東西塞進更大的 prompt,而是把系統裡那些原本散落、沉默、靠老工程師記在腦中的關係,慢慢整理成可以被人和 AI 一起查證的工程語言。