足夠詳細的規格說明書即是程式碼
我認為代理編碼的倡導者誤以為規格說明書比程式碼簡單,事實上,任何足以精準生成可用軟體的規格說明書,最終都必然會演變成與程式碼本身一樣複雜且具備高度結構化的形式。
背景
本文探討了「足夠詳細的規格說明書即是程式碼」這一觀點,作者 Gabriella Gonzalez 針對當前 AI 代理程式開發的熱潮提出質疑。她認為,若要讓規格說明書精確到足以生成可運行的程式碼,該文件本質上就會演變成一種偽代碼或高度結構化的語言,並未真正簡化開發流程。作者透過分析 OpenAI 的 Symphony 專案指出,所謂的規格書往往充斥著資料庫架構與演算法細節,這種試圖用自然語言追求精確性的做法,實際上是重蹈歷史上科學與數學因缺乏符號化而停滯不前的覆轍。
社群觀點
Hacker News 的討論圍繞著規格、標準與程式碼之間的界線展開。部分評論者認同作者的邏輯,認為當人類試圖消除自然語言的歧義以指導 AI 時,最終會創造出一種高度壓縮且技術化的「AI 專用方言」。這種方言為了節省 Token 並提高精確度,可能會演變成類似 Lojban 這種無歧義的人造語言,屆時開發者依然是在進行某種形式的程式編寫,只是語法不同而已。有人更進一步指出,即便是現代程式語言如 C 語言,本質上也是一種針對「抽象機器」的規格描述,編譯器則是將此規格轉換為實體機器指令的轉換器,因此規格與程式碼的區別本就模糊。
然而,另一派觀點則批評作者過於武斷,忽略了 AI 具備的「推理與填補空白」的能力。支持者認為,AI 代理程式的價值在於處理那些開發者「不在意」的設計細節。如果規格書不需要達到百分之百的嚴謹,AI 就能根據常識選擇合理的實作方式,這才是開發效率真正的飛躍。他們預測,隨著模型能力的提升,人類將能透過「欠缺定義」的規格來驅動開發,而非像現在這樣必須精確到每個欄位。這種觀點將 AI 視為一種具備智慧的執行層,能自動處理諸如「在清單中尋找物件」等顯而易見的邏輯,而不需要人類撰寫冗長的迴圈語法。
此外,討論中也出現了關於「標準」與「規格」的細微辯證。有網友指出,標準(如 C++ 標準)之所以不該成為程式碼,是因為它必須保留「實作定義行為」的空間,以允許不同環境下的靈活性。若規格完全等同於程式碼,將會失去這種容錯與適應性。同時,也有開發者分享了嘗試建立「AI 驅動語言」的失敗經驗,指出 LLM 在處理數據關聯時常與人類的直覺產生偏差,甚至會忽略關鍵數據,這顯示出目前要將自然語言規格完全轉化為可靠系統,仍面臨推理能力不足的瓶頸。
延伸閱讀
- Lojban:一種旨在消除歧義的人造邏輯語言,被網友提議作為與 AI 溝通的潛在媒介。
- OpenAI Symphony SPEC.md:文中提到的規格書範本,展示了當前 AI 生成專案所依賴的高度詳細文檔。