Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
這是給 OpenClaw 核心開發者的貢獻者指南。如果你正在
建置外部 Plugin,請改參閱建置 plugins。
如需深入的架構參考(能力模型、所有權、載入管線、執行階段輔助工具),請參閱 Plugin 內部架構。
- plugin = 所有權邊界
- capability = 共享核心契約
何時建立 capability
當以下條件全部成立時,建立新的 capability:- 可能有不只一個供應商可實作它。
- 通道、工具或功能 plugins 應該能使用它,而不需要在意供應商。
- 核心需要擁有 fallback、政策、設定或交付行為。
標準順序
- 定義具型別的核心契約。
- 為該契約加入 plugin 註冊。
- 加入共享執行階段輔助工具。
- 接上一個真實供應商 plugin 作為證明。
- 將功能/通道消費端移到執行階段輔助工具上。
- 加入契約測試。
- 記錄面向操作員的設定與所有權模型。
內容放在哪裡
核心:- 請求/回應型別。
- 提供者登錄 + 解析。
- Fallback 行為。
- 設定 schema,並在巢狀物件、萬用字元、陣列項目與組合節點上傳播
title/description文件中繼資料。 - 執行階段輔助工具介面。
- 供應商 API 呼叫。
- 供應商驗證處理。
- 供應商特定的請求正規化。
- capability 實作的註冊。
- 呼叫
api.runtime.*或相符的plugin-sdk/*-runtime輔助工具。 - 絕不直接呼叫供應商實作。
提供者與 harness seam
當行為屬於模型提供者契約,而不是通用 agent 迴圈時,使用提供者 hooks。範例包括傳輸選擇後的提供者特定請求參數、驗證設定檔偏好、提示覆蓋,以及模型/設定檔 failover 後的後續 fallback 路由。 當行為屬於正在執行一個 turn 的執行階段時,使用 agent harness hooks。Harnesses 可以分類成功但不可用的嘗試結果,例如空白、僅推理或僅規劃的回應,讓外層模型 fallback 政策能做出重試決策。 讓兩種 seam 都保持狹窄:- 核心擁有重試/fallback 政策。
- 提供者 plugins 擁有提供者特定的請求/驗證/路由提示。
- Harness plugins 擁有執行階段特定的嘗試分類。
- 第三方 plugins 回傳提示,而不是直接變更核心狀態。
檔案檢查清單
對於新的 capability,預期會碰到這些區域:src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- 一個或多個 bundled plugin 套件。
- 設定、文件、測試。
實作範例:影像生成
影像生成遵循標準形狀:- 核心定義
ImageGenerationProvider。 - 核心公開
registerImageGenerationProvider(...)。 - 核心公開
runtime.imageGeneration.generate(...)。 openai、google、fal和minimaxplugins 註冊由供應商支援的實作。- 未來的供應商註冊相同契約,而不需要變更通道/工具。
agents.defaults.imageModel分析影像。agents.defaults.imageGenerationModel生成影像。
Review 檢查清單
在發布新的 capability 前,請確認:- 沒有通道/工具直接匯入供應商程式碼。
- 執行階段輔助工具是共享路徑。
- 至少有一個契約測試會斷言 bundled 所有權。
- 設定文件命名新的模型/設定鍵。
- Plugin 文件說明所有權邊界。
相關
- Plugin 內部架構 — capability 模型、所有權、載入管線、執行階段輔助工具。
- 建置 plugins — 第一個 plugin 教學。
- SDK 概覽 — import map 與註冊 API 參考。
- 建立 Skills — 配套的貢獻者介面。