將 OpenCode 升級為多模型多代理協同引擎 — 從安裝設定到架構深度解析,掌握 OmO 四層編排系統
Oh My OpenAgent(簡稱 OmO,套件名稱 oh-my-opencode)是一個強大的 OpenCode 外掛程式,將原本的單一 AI 代理轉變為多模型多代理協同引擎。
可以這樣理解:如果 OpenCode 原本是一個全能工程師,OmO 就是將他升級為一整間公司的開發團隊 — 有專案經理、架構師、研究員、品管工程師⋯⋯各司其職,協同完成任務。
OmO 提供兩種安裝方式,你可以根據偏好選擇:
在 OpenCode 中直接貼上以下指令,讓 AI 代理幫你完成安裝:
在終端機中直接執行以下指令:
# 使用 bun(建議)
bunx oh-my-opencode install
# 或使用 npx
npx oh-my-opencode install
安裝時可以指定要啟用的 AI 服務:
# 啟用 Claude(最多 20 個 API key)
bunx oh-my-opencode install --claude=max20
# 啟用 Claude + OpenAI
bunx oh-my-opencode install --claude=yes --openai=yes
# 啟用所有支援的服務
bunx oh-my-opencode install --claude=yes --openai=yes --gemini=yes --copilot=yes
| 選項 | 值 | 說明 |
|---|---|---|
--claude |
yes / no / max20 | 啟用 Anthropic Claude(max20 = 最多 20 個 API key) |
--openai |
yes / no | 啟用 OpenAI GPT 系列模型 |
--gemini |
yes / no | 啟用 Google Gemini 模型 |
--copilot |
yes / no | 啟用 GitHub Copilot 模型 |
安裝完成後,執行診斷指令確認一切正常:
OmO 的設定分散在兩個層級的設定檔中:
| 層級 | 路徑 | 說明 |
|---|---|---|
| 使用者全域 | ~/.config/opencode/oh-my-openagent.jsonc |
跨專案的全域設定,如 API 金鑰、預設模型 |
| 專案層級 | .opencode/oh-my-openagent.jsonc |
專案特定的代理設定與路由規則 |
設定檔使用 JSONC 格式(支援註解的 JSON),讓設定更具可讀性:
// .opencode/oh-my-openagent.jsonc
{
// 預設模型設定
"defaultModel": "gpt-4o",
// 代理團隊設定
"agents": {
"sisyphus": {
"model": "gpt-4o",
"temperature": 0.3
},
"oracle": {
"model": "claude-opus-4",
"temperature": 0.2
}
},
// 分類路由
"routing": {
"visual-engineering": ["sisyphus", "hephaestus"],
"ultrabrain": ["oracle", "metis"],
"quick": ["explore", "librarian"]
}
}
OmO 最引人注目的特色就是它的代理團隊。每個代理都有明確的角色定位與專長領域,共同構成一個完整的 AI 開發組織:
| 代理 | 角色 | 核心職責 | 適合任務 | 對應真實團隊角色 |
|---|---|---|---|---|
| Sisyphus | 主編排器 | 解析使用者意圖、分派任務給合適代理、獨立驗證結果、全流程生命週期管理 | 複雜多步驟任務、需要跨代理協作的場景 | Tech Lead / 專案經理 |
| Prometheus | 規劃師 | 面試式需求收集、結構化規劃、產生可執行的執行計畫、提供多種實作方案 | 新功能開發、大型重構的預先規劃 | 產品經理 / 解決方案架構師 |
| Hephaestus | 深度執行者 | 啟動並行探索、深度架構推理、高品質實作、處理依賴鏈與邊界情況 | 需深度技術判斷的實作任務 | 資深工程師 |
| Oracle | 架構顧問 | 高難度技術決策、跨領域知識綜合(唯讀)、提供權威技術建議 | 架構審查、技術方案評估、疑難排解 | 首席架構師 / 技術顧問 |
| Librarian | 文獻研究員 | 搜尋 GitHub 範例、查閱官方文件、整理技術參考、比對不同實作方式 | 需要外部參考資料的任務 | 技術研究員 |
| Explore | 程式碼偵察兵 | 超高速 grep 搜尋、常駐背景分析、程式碼庫導覽、檔案結構梳理 | 大型程式碼庫中的搜尋與分析 | 程式碼審計員 |
| Metis | 計畫顧問 | 辨識模糊意圖、揭露隱藏假設、提供中立建議、引導需求釐清 | 需求不明確時的探索性對話 | 業務分析師 |
| Momus | 計畫審查官 | 嚴苛驗證、零妥協審查、只有在無懈可擊時才批准、產出詳細審查報告 | 程式碼審查、合併前的最後把關 | QA 主管 / 程式碼審查者 |
| Athena | 知識管理員 | 跨 session 知識累積與檢索、自動摘要學習成果、最佳實踐歸檔 | 長期專案的知識延續、團隊 onboarding | 知識庫管理員 / 技術作家 |
| Themis | 合規審查員 | 安全漏洞掃描、OWASP 威脅模型檢核、授權與密碼學審查、OWASP Top 10 驗證 | 安全審計、合規檢查、生產環境部署前檢查 | 安全工程師 / 合規專員 |
代理團隊中,部分代理(如 Oracle)預設為唯讀模式 — 他們可以閱讀程式碼、分析架構、提出建議,但不會直接修改檔案。這確保了顧問型代理不會意外變更程式碼,而執行型代理(如 Hephaestus)則擁有完整的讀寫權限。這種設計讓每個代理的權責範圍清晰明確。
這些代理並非各自為政,而是以Sisyphus 為核心的編排體系。Sisyphus 像一個 Tech Lead,負責接收任務、拆解成子任務、指派給最合適的代理、追蹤進度,最後合併結果。這種「中心化編排、去中心化執行」的模式,既保持了協作的靈活性,也確保了輸出一致性。
當你提出一個需求時,OmO 的代理團隊會這樣協作:
OmO 的另一個核心特性是分類路由 — 根據任務性質自動選擇最合適的代理組合。這確保了每個任務都由最適合的團隊成員處理。
| 路由類別 | 適用場景 | 主要代理 |
|---|---|---|
visual-engineering |
前端 UI、視覺設計、互動原型 | Sisyphus, Hephaestus |
ultrabrain |
深度推理、複雜架構決策 | Oracle, Metis |
deep |
需要長時間執行的深度任務 | Hephaestus, Sisyphus |
quick |
快速查詢、簡單修改 | Explore, Librarian |
artistry |
創意寫作、內容創作 | Prometheus, Metis |
writing |
技術文件、API 文件 | Prometheus, Librarian |
路由通常是自動的,但你也可以手動指定:
# 自動路由(OmO 會根據任務內容判斷)
你:為這個 API 加入完整的錯誤處理
# 手動指定路由
你:使用 ultrabrain 模式分析這個架構設計
# 在 task() 中指定
task(category="visual-engineering", ...)
OmO 也整合了 OpenCode 的技能系統,提供一系列開箱即用的專業技能:
瀏覽器自動化技能,用於端到端測試、網頁爬蟲、自動化截圖與表單填寫。支援 Chromium、Firefox 與 WebKit。
Git 操作專家技能,確保每次 commit 都是原子性的、提供 rebase/squash 策略、支援 blame/bisect/log -S 等進階除錯。
即使沒有設計稿也能產出精美的前端介面。包含豐富的色板、字型搭配與互動模式,讓 AI 生成的 UI 擺脫模板感。
這些技能安裝後即可使用,會在對話中根據觸發詞自動載入。
安裝完成後,你第一個應該嘗試的指令就是 Ultrawork(縮寫 ulw):
Ultrawork 模式會啟動完整的代理團隊協作流程:Prometheus 先規劃,Sisyphus 編排,Hephaestus 執行,Explore 與 Librarian 背景支援,最後 Momus 審查。這確保了高品質且一致的輸出結果。
OmO 不是一個單純的外掛,而是一套完整的任務編排系統。它改造了 OpenCode 從使用者輸入到任務完成的每一條執行鏈。理解 OmO 的架構,能幫助你更有效地使用它的各項功能,並在遇到問題時快速定位。
OmO 不是在 OpenCode 上套了一層殼,而是改造了整條任務執行鏈 — 從使用者發出訊息開始,到上下文注入、任務分類、模型路由、後台代理並行執行、工具呼叫前後攔截,再到 session 空閒時自動續跑。每一環都由專屬的代理與機制負責。
OmO 的架構可以分為四個層級,由底層到上層分別負責不同粒度的任務處理:
| 層級 | 名稱 | 負責代理 | 核心功能 |
|---|---|---|---|
| 第 1 層 | 上下文注入層 | Explore, Librarian | 在使用者訊息送達模型前,自動注入相關的專案上下文、程式碼參考與技術文件 |
| 第 2 層 | 任務分類層 | Sisyphus, Metis | 分析使用者意圖,判斷任務的類別(實作 / 研究 / 審查 / 規劃),決定適用的路由 |
| 第 3 層 | 模型路由層 | Sisyphus, Prometheus | 根據任務類別選擇最佳的 AI 模型組合(Claude / GPT / Gemini),配置溫度與參數 |
| 第 4 層 | 背景執行層 | Hephaestus, Athena, Momus | 啟動背景代理並行執行子任務,監控進度、彙整結果、執行品質審查 |
當你在 OpenCode 中輸入一條訊息,OmO 的執行鏈如下所示:
OmO 的一個關鍵設計是工具呼叫攔截(Tool Call Interception)。每當代理要執行一個工具操作(如讀取檔案、搜尋程式碼、執行指令),OmO 的攔截層會介入:
| 階段 | 攔截動作 | 目的 |
|---|---|---|
| 呼叫前 | 驗證工具參數合法性、檢查檔案路徑範圍、評估操作風險等級 | 防止代理誤操作或存取不應觸及的資源 |
| 執行中 | 監控工具執行時間、設定逾時保護、記錄呼叫次數 | 避免代理陷入無窮迴圈或過度消耗資源 |
| 呼叫後 | 過濾敏感輸出、擷取關鍵結果摘要、將結果回饋給上下文 | 確保代理僅取得必要的資訊,保護敏感資料 |
這種攔截機制讓 OmO 可以在不修改各代理內部邏輯的情況下,統一實施安全策略與資源管理。這也是 OmO 被稱為「編排層」而非「外掛」的原因之一 — 它不是在原有系統旁邊加功能,而是嵌入到每一筆工具呼叫的生命週期中。
當你長時間未操作時,OpenCode 的 session 可能會逾時中斷。OmO 的自動續跑(Auto-Resume)機制解決了這個問題:
假設你啟動了一個大型重構任務,預計需要 2 小時完成。中途你去開會或休息,session 因逾時中斷。當你回來時,OmO 已自動恢復 session 並從中斷處繼續執行 — 你不會遺失任何進度,也無需重新下達指令。
不同代理並非固定在某一層,而是根據任務需要在多層之間協作:
| 代理 | 主要活躍層級 | 跨層協作對象 | 協作模式 |
|---|---|---|---|
| Sisyphus | 第 2、3 層 | 所有代理 | 主編排者,串接分類、路由與執行 |
| Prometheus | 第 3 層 | Sisyphus, Hephaestus | 規劃產出後移交給執行層 |
| Hephaestus | 第 4 層 | Sisyphus, Explore, Librarian | 執行中呼叫資料收集代理取得參考 |
| Oracle | 跨 2-4 層 | Sisyphus, Momus | 以唯讀顧問身份提供架構建議 |
| Explore | 第 1、4 層 | Hephaestus, Sisyphus | 上下文注入與執行中程式碼搜尋 |
| Librarian | 第 1、4 層 | Hephaestus, Prometheus | 規劃階段與執行階段的外部資料查閱 |
OmO 的架構設計遵循幾個核心原則,這些原則也體現在代理團隊的每一個設計決策中: