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 — 回覆如何執行線
逐步指南
建置 channel 外掛物件
ChannelPlugin 介面有許多可選 adapter 介面。從最少的開始 — id 與 setup — 並根據需要加入 adapters。建立 src/channel.ts:src/channel.ts
createChatChannelPlugin 為你做什麼
createChatChannelPlugin 為你做什麼
不是手動實作低階 adapter 介面,你傳遞宣告式選項,builder 會合成它們:
如果需要完整控制,你也可以傳遞原始 adapter 物件代替宣告式選項。
| 選項 | 配線內容 |
|---|---|
security.dm | 從 config 欄位的範疇 DM 安全性解析器 |
pairing.text | 基於文字的 DM 配對 flow 搭配代碼交換 |
threading | 回覆轉模式解析器(固定、account-scoped 或自訂) |
outbound.attachedResults | 傳回結果中繼資料的傳送函式(訊息 ID) |
配線進入點
加入 setup entry
建立 當頻道已禁用或未設定時,OpenClaw 載入這個代替完整 entry。它避免在 setup flows 期間拉入重型 runtime 代碼。參考 Setup 與 Config 取得詳細資訊。
setup-entry.ts 以在 onboarding 期間進行輕量級載入:setup-entry.ts
處理入站訊息
你的外掛需要從平台接收訊息並轉發到 OpenClaw。典型模式是驗證請求的 webhook 並透過 channel 的 inbound handler 分派:
Inbound 訊息處理是 channel 特定的。每個 channel 外掛擁有自己的 inbound pipeline。查看捆綁 channel 外掛(例如
extensions/msteams、extensions/googlechat)以取得真實模式。測試
檔案結構
進階主題
執行緒選項
固定、account-scoped 或自訂回覆模式
訊息工具整合
describeMessageTool 與 action 發現
Target 解析
inferTargetChatType、looksLikeId、resolveTarget
Runtime 輔助函式
TTS、STT、media、subagent via api.runtime
後續步驟
- Provider 外掛 — 如果外掛也提供模型
- SDK 概述 — 完整 subpath import 參考
- SDK 測試 — 測試工具與合約測試
- Plugin Manifest — 完整 manifest schema