3.5 AI 時代的系統設計:高內聚低耦合的新意義#
為什麼要重新談系統設計#
第 3.1 到 3.4 節討論的是系統設計的傳統原理。本節把它們放到 AI 時代的背景下,重新審視——因為 AI 改變了系統設計的某些重要前提,而理解這些變化,能幫助你做出更好的架構決策。
一個核心變化:AI 是「梯形」的上下兩端都被放大了#
如第 1.4、1.5 節所述,AI 讓「寫實作」變便宜了。這帶來一個系統設計上的深遠影響:
當「寫程式」的成本趨近於零時,決定系統成敗的,就不在於「能不能寫出程式碼」,而在於「邊界畫得對不對、介面定得清不清楚」。
過去,高內聚低耦合是「好」的工程品質;在 AI 時代,它直接成為AI 能否正確工作的前提。原因有二。
原因一:上下文限制讓「模組化」從建議變成必要#
第 2.6 節提到過:規格要模組化,避免一次塞給 AI 太多上下文。原因其實很技術化,我們在第 7 章會深入——大語言模型的「上下文視窗」是有限的,塞太多不相關的資訊,AI 會忽略細節、產生幻覺、表現變差。
這意味著:AI 時代的模組化,不只是為了「人的可理解性」,更是為了讓 AI 在處理每個模組時,只面對「剛好需要的資訊」。 耦合緊的系統,AI 一改就牽動全局、就需要讀整個專案、就容易出錯。低耦合的系統,AI 才能「局部下手、局部驗證」。
原因二:介面契約成為 AI 協作的「憲法」#
在多人的 AI 協作中(第 12 章詳述),不同的模組可能是由不同的 AI(甚至不同的工程師)實作的。當多個 AI 各自工作時,唯一能確保它們「對齊」的,就是清晰、明確、可執行的介面契約(Spec)——正如 3.1 節的資訊隱藏與 3.3 節的 ACI。
一句話:當實作交給 AI 時,「介面」就成了人類真正要牢牢抓住的地方。 人定義契約(透過 Schema / Interface / BDD,見 2.6 節),AI 填實作——這正是「規格即程式碼」在架構層面的意義。
傳統設計原則在 AI 時代的延伸#
| 傳統原則 | 在 AI 時代的新意義 |
|---|---|
| 高內聚 | 讓每個 AI 任務聚焦單一目的,AI 在處理時只看到相關資訊,輸出品質更高 |
| 低耦合 | 讓 AI 能「局部修改、局部驗證」,減少改一處壞全局 |
| 資訊隱藏 | 用介面契約鎖住對外承諾,AI 可自由改內部而不影響他人 |
| 明確介面(ACI) | 對 AI 友善的介面,決定 AI 能否正確呼叫與使用 |
| 單一真實來源(DRY/Spec) | 讓所有 AI 共享同一份權威規格,避免各寫各的、互相衝突 |
AI 時代的兩個新設計考量#
除了傳統原則的延伸,AI 也帶來兩個全新的設計考量:
1. 確定性流程 vs AI 非確定性能力的邊界#
一個系統往往同時包含「需要精確、可預測」的部分(如付款、庫存、交易)與「需要智慧、可容錯」的部分(如智能客服、推薦、文字生成)。
一個重要的架構決策是:畫清楚它們的邊界。 不要把需要嚴格確定的核心流程(如金流)交給不確定的 AI 直接操控,而應: - 讓 AI 負責「決定做什麼」,但核心動作(扣款、改單)仍由確定性的程式+權限控制執行(見第 9 章 Constellation 的思路) - 對 AI 的輸出做驗證(見第 5、10 章)
2. 評估(Eval)成為架構的一部分#
在 AI 時代,系統設計還多了一個非功能需求維度:可評估性(Testability/Evaluability)。因為 AI 的行為是機率性的,你必須有能力去「測量它做得好不好」。因此架構上要預留: - 日誌與軌跡(Trace)的擷取(讓你能回放 AI 做了什麼) - 評估的介面與資料流(見第 10 章) - 隔離的測試環境
一個「無法被評估」的 AI 系統,就像一台「沒有儀表板的車」——你不知道它做得好不好,也就無法改進它。
一個貫穿全書的心態#
歸結到底,AI 時代的系統設計要記住一件事:
人負責「定義邊界與介面」(這是本質性工作),AI 負責「填實作」(這是附屬性工作)。 設計得好不好,決定了這個分工能不能順利進行。
本書第二篇(第 7-10 章)會從「上下文、工具、Harness、評估」四個面向,展開 AI 系統設計的具體方法。本節把第一章的結論——本質性困難是人的價值所在——落實到「系統設計」這個具體戰場上。
本章小結#
- AI 讓「寫程式」變便宜,邊界與介面成為系統設計的決定性因素
- 上下文限制讓模組化從建議變成必要
- 介面契約(Spec)成為多 AI/多人協作的「憲法」
- 傳統原則在 AI 時代有新意義:高內聚、低耦合、資訊隱藏、ACI、單一真實來源
- 新考量:畫清確定性流程與 AI 的邊界、把可評估性(Eval)納入架構
- 人負責定邊界與介面,AI 負責填實作
想一想#
- 為什麼「上下文視窗有限」會讓低耦合變成 AI 協作的必要條件?
- 在一個「含金流」的系統中,你覺得 AI 應該扮演什麼角色?核心動作該由誰執行?
- 為什麼「可評估性」在 AI 時代特別重要?一個無法測量成效的 AI 功能,會遇到什麼問題?