Skip to main content

Building Channel Plugins

本指南通過構建 channel 外掛來連接 OpenClaw 與傳訊平台。完成後,你會得到一個具有 DM 安全性、配對、回覆執行緒與出站傳訊的運作中頻道。
如果你從未建置過任何 OpenClaw 外掛,請先閱讀 入門指南,以了解基本的套件結構與 manifest 設定。

Channel 外掛如何運作

Channel 外掛不需要自己的 send/edit/react 工具。OpenClaw 在核心中保留一個共享 message 工具。你的外掛擁有:
  • Config — account 解析與 setup 精靈
  • Security — DM 策略與 allowlists
  • Pairing — DM 批准 flow
  • Outbound — 傳送文字、media 與 polls 到平台
  • Threading — 回覆如何執行線
核心擁有共享 message 工具、prompt 配線、工作階段簿記與分派。

逐步指南

1

套件與 manifest

建立標準外掛檔案。package.json 中的 channel 欄位是使其成為 channel 外掛的原因:
2

建置 channel 外掛物件

ChannelPlugin 介面有許多可選 adapter 介面。從最少的開始 — idsetup — 並根據需要加入 adapters。建立 src/channel.ts
src/channel.ts
不是手動實作低階 adapter 介面,你傳遞宣告式選項,builder 會合成它們:如果需要完整控制,你也可以傳遞原始 adapter 物件代替宣告式選項。
3

配線進入點

建立 index.ts
index.ts
defineChannelPluginEntry 自動處理 setup/full 註冊分割。參考 進入點 取得所有選項。
4

加入 setup entry

建立 setup-entry.ts 以在 onboarding 期間進行輕量級載入:
setup-entry.ts
當頻道已禁用或未設定時,OpenClaw 載入這個代替完整 entry。它避免在 setup flows 期間拉入重型 runtime 代碼。參考 Setup 與 Config 取得詳細資訊。
5

處理入站訊息

你的外掛需要從平台接收訊息並轉發到 OpenClaw。典型模式是驗證請求的 webhook 並透過 channel 的 inbound handler 分派:
Inbound 訊息處理是 channel 特定的。每個 channel 外掛擁有自己的 inbound pipeline。查看捆綁 channel 外掛(例如 extensions/msteamsextensions/googlechat)以取得真實模式。
6

測試

src/channel.test.ts 中寫入共置測試:
src/channel.test.ts
針對共享測試輔助函式,參考 Testing

檔案結構

進階主題

執行緒選項

固定、account-scoped 或自訂回覆模式

訊息工具整合

describeMessageTool 與 action 發現

Target 解析

inferTargetChatType、looksLikeId、resolveTarget

Runtime 輔助函式

TTS、STT、media、subagent via api.runtime

後續步驟