從 Opencode 文件學習 AI 代理設計的 7 大建構模塊
Opencode 的開源文件堪稱代理架構入門教材。以下是每位開發者都應該理解的七個核心概念。
Opencode 正迅速成為繼 Claude Code 之後開發者討論最多的 AI 編碼工具。在韓國,Oh-my-opencode 的推動下採用速度飛快,全球的開發者社群也在密切關注。
但 Opencode 的真正價值不僅僅是編碼輔助。因為它是開源的,你可以直接檢視代理是如何設計的 - 從工具註冊到子代理編排。開源專案受益於社群開發者的貢獻,這意味著文件反映了代理架構領域最前沿的思考。
Opencode 文件的 Configure 區段讀起來就像一本代理設計的入門教科書。以下是它呈現的七大建構模塊,以及每個模塊重要的原因。
Tools:代理與世界互動的方式
Tools 定義了代理能做什麼。每個工具都是一個離散的能力 - 讀取檔案、寫入檔案、執行終端命令、搜尋網頁 - 註冊為可呼叫的函式。
- 你提供的工具集合決定了代理的能力邊界
- 工具是語言模型與外部環境之間的介面
- 根據我的經驗,給代理太多工具反而會適得其反:它花在選擇用哪個工具上的時間比實際執行還多
設計原則很直接:沒有工具的代理只是一個聊天機器人。擁有合適工具的代理才能成為自主工作者。
Rules(AGENTS.md):代理的行為準則
AGENTS.md 是一種檔案格式,用於向代理傳達專案特定的上下文和約束。可以把它理解為面向 AI 而非人類撰寫的 README。
- 包含「沒有測試不得修改程式碼」「遵循此資料夾結構」之類的指令
- AGENTS.md 標準已被超過 6 萬個開源專案採用
- 規則在不改變底層模型的情況下塑造代理的決策
沒有規則,代理會將通用訓練內容直接套用到你的專案上。有了規則,它會反映你專案的慣例、約束和偏好。差異是顯著的。
Agents(子代理):分而治之
複雜任務拆分給多個專業代理處理,比交給單一通用代理更有效。
- 你可以定義角色特定的代理:Build、Plan、Review、Debug 等等
- 主代理制定計畫,子代理執行各個步驟
- 每個子代理在專注的上下文中運行,減少了長時間單一工作階段中的雜訊和偏移
這與將微服務原則應用於 AI 工作流相同。專業化提升品質,隔離防止上下文污染。
MCP(Model Context Protocol):外部連接的標準
Model Context Protocol 是 Anthropic 建立的開放協定,標準化了代理連接外部資料來源和服務的方式。
- 為資料庫、檔案系統、API 等整合提供一致的介面
- 無需為每個服務撰寫自訂轉接器,MCP 為代理提供統一的外部存取方式
- 預計基於 MCP 層將出現日益增長的服務應用生態系統
MCP 解決了實際的互通性問題。之前每個代理框架都發明了自己連接外部工具的方式。MCP 使這些連接變得可攜帶、可組合。
LSP(Language Server Protocol):程式碼理解的基礎
Language Server Protocol 最初是為 IDE 設計的,但事實證明它對需要瀏覽程式碼庫的 AI 代理同樣有價值。
- LSP 提供跳轉到定義、尋找參考、自動完成和診斷功能
- 在 Opencode 中 LSP 整合仍是實驗功能,但程式碼導覽精度有了顯著提升
- 代理可以使用 LSP 從語意層面理解程式碼結構,而不是純粹依賴文字搜尋
一個能追蹤函式呼叫到其定義、追溯所有參考、理解型別層次結構的代理,與一個只做字串模式匹配的代理在根本上處於不同層次。
A2A 和 ACP:代理間通訊標準
當代理由不同框架建構時,它們需要共享協定來協作。兩個標準正在興起以填補這一空白。
- A2A(Agent-to-Agent):由 Google 建立並捐贈給 Linux Foundation。定義了代理如何發現彼此、協商能力和交換訊息
- ACP(Agent Communication Protocol):由 BeeAI 團隊建構,最近合併到了 A2A 計畫中
兩者都處於早期階段,但它們代表了多代理系統的基礎 - 來自不同供應商和框架的代理可以無縫協作。類比就是 Web 的 HTTP - 一個使一切可互通的共享傳輸層。
Skills:可重用的能力套件
Agent Skills 將工具、規則和提示詞打包成單一可安裝單元。由 Anthropic 首先引入的這種格式現已標準化。
- 代理在需要特定能力時載入技能 - 如程式碼審查、TDD 工作流或安全分析
- 技能可跨專案和團隊共享,建立可重用代理行為的生態系統
- 這標誌著從消費文件到消費技能的轉變:不再閱讀如何做,而是安裝做的能力
技能之於代理,就如同套件之於應用程式。它們將專業知識模組化並使其可分發。
重點整理
建構有效的 AI 代理不在於知道所有可用的工具,而在於理解架構:代理如何思考、如何連接外部世界、如何彼此協作。
這七大建構模塊 - Tools、Rules、子代理、MCP、LSP、A2A/ACP、Skills - 構成了代理設計的結構性詞彙。每個模塊解決一個獨特的關注點,它們共同定義了一個設計良好的代理系統的樣貌。
由於 Opencode 是開源的,其文件隨著開發者社群的貢獻而不斷演進。如果你真心想理解代理架構,Opencode 文件值得一讀。
訂閱電子報
獲取關於我最新專案、文章以及 AI 和 Web 開發實驗的更新。