渠道插件系统

一句话概括

渠道插件系统定义了基于适配器模式的模块化契约(ChannelPlugin),38 个消息扩展实现此契约以将 Telegram、Discord、Slack、Signal、iMessage 等平台连接到 OpenClaw。

职责

  • 定义 ChannelPlugin 接口,包含约 20 个可选适配器插槽
  • 管理插件注册、加载和生命周期
  • 将不同平台格式的入站消息归一化
  • 将出站回复路由到正确的平台 API
  • 处理平台特定功能(线程、reactions、内联按钮、配对、引导)

关键源码文件

文件行数角色
src/channels/plugins/types.plugin.ts85核心契约ChannelPlugin 类型含约 20 个适配器插槽
src/channels/plugins/types.core.ts371核心类型:ChannelMetaChannelCapabilitiesChannelAccountSnapshot
src/channels/plugins/types.adapters.ts310适配器接口:config、setup、security、outbound、status、threading 等

ChannelPlugin 适配器插槽

适配器用途必需
config账号/渠道配置
meta渠道元数据(名称、图标)
capabilities功能标志(内联按钮、reactions)
security发送者验证、消息信任
outbound平台回复投递
setup初始渠道设置流程
threading线程支持
streaming实时流式支持
gatewayGateway HTTP/WS 方法
agentTools此渠道的自定义工具

与其他模块的关系

  • 依赖config/(渠道设置)、plugin-sdk/(稳定 API)
  • 被依赖auto-reply/(入站分发)、gateway/(webhook 路由)、routing/(渠道解析)

我的认知盲区

  • 插件加载顺序和冲突解决
  • configSchema 如何启用 UI 驱动的渠道配置
  • agentTools — 渠道特定工具如何与工具策略管道集成

变更频率

  • types.plugin.ts:低 — 核心契约稳定;新适配器是增量的
  • types.adapters.ts:中 — 适配器接口随平台功能演进
  • 扩展插件:高 — 各渠道频繁更新