拆解 Oh-My-OpenCode 同上下文工程嘅未來
Oh My OpenCode 唔止係一個插件 - 佢用代碼層面嘅隔離、多模型協作同程式化行為強制,示範咗上下文工程嘅真正實踐。
OpenCode 近排喺開發者圈子入面掀起咗一陣風潮。免費嘅高效能模型加上強大嘅插件生態系統,正加速開發者由專有 AI 編碼工具轉移出嚟。
其中一個插件特別值得留意 - 由韓國開發者金延圭(YeonGyu Kim)打造嘅 Oh My OpenCode,作為多代理協作嘅實際應用引起咗相當大嘅關注,佢將唔同嘅 AI 模型當作一個協調團隊嚟運用。
深入研讀過佢嘅源代碼之後,我發現呢個項目嘅價值遠唔止係聰明嘅提示詞設計。喺上下文工程嘅層面,佢有真正嘅結構性創新。
單代理編碼工具嘅結構性局限
大部分 AI 編碼工具都係跑單一代理,由佢同時擔任規劃者、開發者、除錯者、研究員 - 依次序逐個角色執行。呢種做法會產生連鎖問題:
- **上下文窗口燒得好快。**每次角色切換都會打散代理嘅注意力,將 token 消耗喺上下文切換而唔係實際工作上。
- **上下文過載觸發幻覺。**當太多唔同嘅關注點堆積喺同一個上下文入面,模型就會開始捏造資訊或者直接放棄任務。
- **單一模型嘅弱點無處可避。**如果你唯一嘅模型擅長 UI 但架構設計差,架構工作嘅質素依然會受拖累。
核心創新:基於編排者嘅團隊架構
Oh My OpenCode 嘅真正突破在於 Sisyphus - 一個管理者代理,透過並行執行將工作委派俾專業嘅子代理。
- Frontend Engineer 負責 UI 組件、Librarian 負責文檔研究、Oracle 負責架構設計 - 全部同時進行。
- 每個代理嘅上下文喺代碼層面被隔離。呢一點對防止上下文腐化至關重要 - 所謂上下文腐化,就係累積嘅無關資訊隨時間降低輸出質素。
- **唔同模型服務唔同角色。**架構設計路由到 GPT-5(Oracle),基於證據嘅研究路由到 Claude Sonnet 4.5(Librarian),創意 UI 生成路由到 Gemini 3 Pro(Frontend Engineer),文檔撰寫路由到 Gemini 3 Flash(Document Writer)。每個任務都用最適合佢嘅模型。
Sisyphus 編排者:設計理念
Sisyphus 做嘅唔止係角色分配 - 佢透過代碼強制執行工作流程。
createSisyphusAgent函數動態組裝由 Phase 0(意圖閘門) 到 Phase 3(完成) 嘅提示詞,定義咗一個結構化嘅執行管線。- **並行執行係強制性嘅。**代碼庫入面有類似
// CORRECT: Always background, always parallel嘅注解,配合注入嘅background_task呼叫模式,強制所有任務並發執行。 - **序列執行喺結構上被阻斷。**架構設計令子任務無法逐個執行 - 所有嘢都係並行分派嘅。
Librarian 代理:基於證據嘅研究實踐
對抗幻覺最精密嘅防線就喺 Librarian 代理入面。
- **每個聲稱都必須附上 GitHub permalink。**回應必須引用可驗證嘅來源 - 「官方文檔第 3 行、GitHub issue #1234、源代碼第 47 行。」
- **回答之前必須進行分析區塊。**代理將 Literal Request(用戶字面上打嘅嘢)同 Actual Need(用戶真正需要嘅嘢)分開處理,兩者都要明確列出。
- Type A/B/C/D 分類系統同時搜尋 GitHub Issues、官方文檔同源代碼嚟收集證據。
- **2024 年之前嘅資訊自動被拒絕。**代理強制搜尋以 2025 年以後嘅文檔為優先。
用代碼強制完成,唔係靠祈禱
最令人印象深刻嘅地方係行為係透過程式化方式強制執行,而唔係單靠提示詞。
- Todo Continuation Enforcer:當代理過早認為自己已經完成任務,系統會偵測到
session.idle事件並注入系統訊息:「仲有未完成嘅任務。繼續。」呢個機制防止咗代理過早宣布勝利嘅常見失敗模式。 - Ralph Loop:代理被迫喺循環入面運行,直到佢明確輸出
<promise>DONE</promise>標籤為止。完成與否由證據判斷,唔係靠模型自我評估。
LSP 整合:用 IDE 嘅方式理解代碼
唔同於典型嘅基於 grep 嘅代碼搜尋,Oh My OpenCode 實現咗一個真正嘅 Language Server Protocol 客戶端。
LSPClient類直接同語言伺服器(例如typescript-language-server)通訊。- 佢處理
Content-Length標頭同 JSON-RPC 訊息 - 同 VSCode 同 IntelliJ 用嚟理解代碼嘅協議一模一樣。 - 診斷、定義同參考直接作為代理工具暴露出嚟,令 AI 擁有人類開發者喺編輯器入面依賴嘅同等代碼智能。
分層上下文注入
開發者唔應該每次都要向代理解釋項目上下文。Oh My OpenCode 將呢個過程自動化咗。
findAgentsMdUp函數由當前檔案開始向上遍歷目錄樹。- 例如,編輯
src/components/auth/LoginForm.tsx時會自動收集src/AGENTS.md、src/components/AGENTS.md同src/components/auth/AGENTS.md。 - 架構規則、UI 模式同安全指引喺任何代碼被撰寫之前就已經注入到代理嘅上下文 - 自動捕捉項目嘅隱性知識。
點解呢啲嘢咁重要
同 Cursor 或者 Claude Code 比較,Oh My OpenCode 展示咗一種工程優先嘅做法:同時組合多個模型嘅長處、以結構化方式管理上下文而唔係撞彩、透過代碼強制正確行為而唔係依賴提示詞嘅合規性。
隨住呢種社群驅動嘅方式快速蔓延,值得留意嘅係呢個模式 - 配備程式化護欄嘅多模型團隊協作 - 會唔會成為 AI 輔助開發嘅行業標準。
訂閱通訊
獲取關於我最新項目、文章同埋 AI 和 Web 開發實驗嘅更新。