Google 於二零二六年十月二十七日為 EGM 發布 v0.1.0,這個開源插件在 GitHub 累積約一萬顆星標。它以象與金魚兩種角色分工,深層上下文的代理負責起草技術規格,零上下文的子代理負責審查。專案採 Apache 2.0 授權,README 明確說明已有數千名 Google 工程師用於日常開發。

EGM 是 Google 開源的規格驅動開發插件,讓持有專案上下文的代理起草設計文件,再交給零上下文的子代理審查,最後由人類工程師決定架構取捨並批准規格。

Elephant-Goldfish Model 的 GitHub README 開頭,顯示專案標誌、標語「Design with an elephant. Review with a goldfish.」、安裝與快速開始的導覽連結,以及象與金魚角色分工的說明段落

這個專案的命名來自一篇討論軟件工程方法的文章,作者為 Google 工程師 Dave Rensin。文章把擅長記住全部脈絡的工程師比作象,把只看當下片段的人比作金魚,兩者各自有盲點。EGM 把這個比喻變成可執行的工具鏈,用角色分工對抗單一對話自我驗證的問題。

Google 為什麼開源 EGM 這套設計流程?

專案在架構文件中列出四種系統性失效:幻覺連鎖與上下文污染、過早實作、對話黏膩與文件漂移。EGM 以隔離審查與簽入規格來對應這四種問題。

架構文件把問題講得直接。當同一個語言模型執行緒既訪談開發者、又產生設計、再寫出程式碼,工作上下文會累積大量推測與對話偏誤,模型傾向驗證自己的錯誤假設,而不是找出錯誤。第二種失效是過早實作,編程代理習慣在附近的檔案直接動手,跳過架構定位、必要性檢查與既有基礎設施重用。

第三種是對話黏膩,多頁設計規格與冗長審查意見直接貼在對話視窗,既汙染歷史紀錄,也降低模型後續的上下文表現。第四種是文件漂移,專案啟動時寫下的設計文件隨著程式演進而失效,日後代理接手時讀到的是過期資訊。

專案的立場是把長篇產出移出對話。草稿、摘要與審查報告一律寫成側邊欄文件或工作區檔案,對話只保留決策與取捨。

象與金魚的分工是什麼?

象持有專案歷史、使用情境與程式碼地圖,負責探索需求並起草規格。金魚是隔離的子代理,只看文件與引用的原始碼,負責找出未言明的假設與實作風險。

README 用一句話總結這個模型:用象來設計,用金魚來審查。象讀過專案的來龍去脈,所以在探索需求與撰寫規格時具備優勢,代價是它容易沿用既有假設。金魚被刻意剝奪對話歷史,只看文件本身與文件引用的原始碼,因此能看到作者視為理所當然而省略的環節。

人類工程師在流程中保留三個位置。規格的利益取捨由人決定,審查發現要修哪些由人挑選,實作前的批准由人簽署。文件反覆強調,審查不能取代測試,也不能取代人的判斷。

這裡有一個技術前提。金魚審查需要全新的子代理上下文,若當前代理無法建立子代理,EGM 會中止審查,而不是降級為同一上下文的自問自答。這個設計把流程的可靠性綁在宿主能力上,寧可失敗,也不要產生虛假的審查紀錄。

EGM 由哪些部分組成?

系統分成四層:技能層提供七個可呼叫的能力,角色層存放審查員的系統提示,文件標準層提供版本化評分準則,文件層存放使用者指南與簽入的設計規格。

技能層包含七個模組。發想用於早期概念探索,會派出六個視角的金魚群輪流質疑假設。起草把概念簡報編譯成規格文件,逐節暫停等待回饋。審查是五階段管線的協調者。審查迴圈負責並行派發。解決用於逐條處理審查發現。漂移報告比對簽入文件與現行程式碼。啟動器則由下而上為既有程式碼庫補寫文件。

角色層存放七種審查員的系統提示,包括理解力測試、設計評論、實作就緒度、程式碼庫稽核、結構驗證、文風編輯與合成者。文件標準層是版本化的評分準則,審查員依此打分,而不是憑感覺。

五個階段如何推進一份規格?

流程由發想開始,產出概念簡報,再編譯成設計文件。接著進入隔離審查,人類逐條處理發現後送出合併請求,最後由編程代理依規格實作,並定期比對漂移。

第一階段是上游發想,象先訪談工程師錨定核心假設,再讓六個視角的金魚審查員輪流攻擊薄弱環節,結果寫入概念簡報。第二階段是規格撰寫,把簡報或討論筆記轉成符合 EGM 標準的設計文件,同時劃出高層架構與實作計畫之間的語義邊界,方便後續只審查其中一段。

第三階段是隔離驗證,五階段管線依序執行縮小視角審查、理解力測試、設計評論、中途再縮小視角、實作就緒度測試。合成者負責並行派發、去除重複並彙整成報告。第四階段由人類逐條裁決,更新文件後送出合併請求,接受同儕審查。第五階段由編程代理嚴格依已批准的規格實作,並定期跑漂移報告。

六個視角的審查看什麼?

縮小視角看簡潔度與既有程式碼重用,理解力測試由沒有背景的讀者檢查文件能否自足,設計評論看規模瓶頸與失效模式,實作就緒度驗證路徑、函式簽名與測試案例。

第一關是縮小視角審查,評估簡潔度、必要性與程式碼庫重用,對應的是「不要寫用不到的抽象」這條原則。第二關是理解力測試,由一個沒有參與討論的讀者判斷文件是否自足,缺少哪些背景知識。

第三關是設計評論,檢查系統設計、規模瓶頸與失效模式。第四關是中途再縮小視角,針對前兩關補充的內容重新檢查一次。第五關是實作就緒度測試,核對檔案路徑、函式簽名與測試案例是否齊備,避免代理在實作時即興發揮。

每一關都對應一份版本化評分準則。準則由文件標準層持有,審查員只負責依準則評估,不自行定義標準。這種拆分讓評分可以獨立演進,不必改動角色提示。

EGM 支援哪些編程代理?

EGM 支援 Antigravity、Claude Code、Codex 與 ChatGPT 等宿主;獨立版 Antigravity IDE 因缺少子代理能力而不支援。

各宿主共用同一套技能文字,專案不為任何宿主分叉技能內容,只提供不同的外掛清單。安裝方式依宿主而異,Antigravity 以命令列安裝整份外掛,Claude Code 與 Codex 則透過市集指令加入。

專案特別提醒必須安裝完整外掛。只複製技能目錄的安裝方式會讓 EGM 失效,因為技能在執行時需要讀取角色層與文件標準層的檔案。

不支援的部分講得清楚。獨立版 Antigravity IDE 在 macOS 與 Linux 實測都無法提供全新上下文的子代理工具,因此發想與審查兩項功能不可用。Codex 與 ChatGPT 沒有隨附專用子代理,改由通用代理讀取角色檔案,能力邊界因此不同,專案把這些差異列入支援狀態說明。

一萬顆星與二十位貢獻者說明什麼?

專案至二零二六年十一月初累積一萬零三百一十六顆星、六百八十三次分叉與二十位貢獻者,提交高度集中,單一帳號佔七十八次。

  • 10,316GitHub 星標
  • 683分叉次數
  • 76待處理議題
  • 20貢獻者

星標與分叉的比例約為十五比一,屬於收藏者遠多於改造者的結構,對一個需要嵌入開發流程的插件而言合理。待處理議題七十六項,對創建不足兩個月的專案而言偏高,反映社群期待與維護節奏之間的張力。

EGM 的 GitHub 儲存庫首頁,顯示 repo 名稱 google/elephant-goldfish-model、專案描述、Star 數約 10k、Fork 數 683、主要語言 Python,以及 Apache 2.0 授權標示

提交的分佈值得注意。貢獻者頁面顯示首位帳號有七十八次提交,其餘多在二至七次之間,另有一個自動化帳號處理依賴更新。這種集中結構在企業開源專案常見,好處是方向一致,代價是外部貢獻者的進入門檻較高。

專案在 README 開頭就說明,新貢獻者提交的議題與合併請求預設會自動關閉,維護者每日檢視後再決定是否重開。這條規則降低了維護負擔,也讓第一次參與的人需要多一層耐心。

EGM 的 GitHub 統計側欄,顯示 Star 數 10.3k、Fork 數 683、Watchers 46、Apache 2.0 授權、主要語言 Python,以及 agent-skills 等主題標籤

安裝後的第一步是什麼?

先安裝完整外掛並重開工作階段,然後選一個需要設計取捨的功能,執行發想指令,與代理討論需求與取捨,再依序起草、審查、裁決,最後才交由代理實作。

README 建議從一個真正需要設計決策的功能開始,例如為專案加入 webhook 投遞,並追問投遞失敗或同一事件重複到達時應如何處理。這一類問題沒有標準答案,正好適合讓象與金魚的張力發揮作用。

三個指令構成主線。發想階段會與代理討論需求與取捨,並把共識寫入概念簡報。起草階段逐節產出設計文件,每節結束暫停等待回饋。審查階段則接收文件路徑,回傳彙整後的發現清單。批准之後才請代理實作。

專案也提供一個維護用的指令,定期比對簽入文件與現行程式碼,找出規格與實作之間的落差。這個設計把文件從一次性產物變成需要持續校準的資產。

出處連結在哪裡?

原始碼公開於 GitHub,採 Apache 2.0 授權,文件站為 egm.dev。專案在 README 明確聲明,這並非 Google 官方支援的產品。

專案網址為 https://github.com/google/elephant-goldfish-model ,文件站為 https://egm.dev 。授權條款為 Apache 2.0,README 末尾明確標註這不是 Google 官方支援的產品,企業採用前需要自行評估維護風險。

EGM 適合什麼團隊使用?

適合已有明確程式碼庫、需要為新功能先做設計決策的團隊。小型且清楚的錯誤修正不必套用整套流程,直接用平常的編程工作流更快。

專案的定位相當自覺。它要解決的是「寫程式之前需要先想清楚」的情境,而不是所有開發任務。README 直接說明,對於小型且清楚的錯誤修正,使用平常的編程流程即可。

真正的門檻不在安裝,而在紀律。規格要簽入版本庫,審查發現要逐條回應,實作階段要忍住不偏離已批准的文件。對習慣邊寫邊想的團隊,這套流程會顯得緩慢。對需要多人協作、又常被上下文污染拖累的專案,把思考外化成可審查的文件,反而是加速。

常見問題

EGM 需要額外付費嗎?

不需要。專案採 Apache 2.0 授權,原始碼公開。費用取決於所使用的編程代理與模型供應商,與 EGM 本身無關。

沒有子代理能力的代理可以用嗎?

部分可用。起草與解決類技能可以執行,但發想與審查需要全新的子代理上下文,缺少這項能力時流程會中止。

審查結果可以直接當作品質保證嗎?

不行。專案在 README 與架構文件都聲明,審查不能取代測試與人工判斷,它只是提早暴露未言明假設的手段。

規格文件應該放哪裡?

放在版本庫的 docs/designs/ 目錄,與程式碼一起簽入。這樣代理日後接手時能讀到已批准的設計,漂移報告也有比對基準。