Channel 和 Plugin 是包含关系Channel 是 Plugin 的一种特殊类型每个 Channel 必须通过 Plugin 的register()方法向系统注册后才能运行。核心关系Channel ⊂ PluginOpenClawPluginDefinitionPlugin 插件定义 ↓ register(api) api.registerChannel({ plugin: ChannelPlugin }) ← 注册通道 api.registerTool(...) ← 也可注册工具 api.registerHttpHandler(...) ← 也可注册 HTTP 路由 api.registerHook(...) ← 也可注册钩子 ...一个Plugin外壳/容器可以注册一个 Channel也可以同时注册其他能力工具、HTTP 路由、钩子等。Channel 本身不能独立存在它是 Plugin 向系统贡献的一种能力。两层结构层次类型职责外层PluginOpenClawPluginDefinition插件容器持有 id/name/description实现register()生命周期通过OpenClawPluginApi向系统注册各类能力内层ChannelPluginChannelPluginResolvedAccount通道能力契约定义消息通道的所有适配器发送、认证、群组、配对、状态探测等以 Discord 为例// extensions/discord/index.tsconstplugin{id:discord,// 这是 Plugin 的 IDname:Discord,register(api:OpenClawPluginApi){setDiscordRuntime(api.runtime);api.registerChannel({plugin:discordPlugin});// discordPlugin 是 ChannelPlugin},};飞书Feishu还体现了 Plugin 可以在注册 Channel 之外额外注册工具register(api:OpenClawPluginApi){api.registerChannel({plugin:feishuPlugin});api.registerFeishuDocTools(api);// 额外工具api.registerFeishuWikiTools(api);// 额外工具...}ChannelPlugin 的能力模型[ChannelPlugin](file:///Users/hcegxm/Documents/project/openclaw-main/src/channels/plugins/types.plugin.ts) 是一个多适配器组合对象通过可选字段按需扩展ChannelPlugin ├── config必须 账号配置读取、列表 ├── outbound 出站消息发送 ├── gateway 启动/停止/登录监听器 ├── auth 登录操作 ├── status 状态探测与审计 ├── pairing allowlist 配对管理 ├── groups 群组配置 ├── security DM 安全策略 ├── heartbeat 心跳健康检查 ├── agentTools 通道专属 Agent 工具 └── ...共 18 个适配器运行时注册流程extensions/channel/index.tsPlugin 定义 ↓ 插件加载器 loadOpenClawPlugins() ↓ plugin.register(api) ↓ api.registerChannel() ↓ PluginRegistry.channels[] ↓ listChannelPlugins() ← Gateway / 路由 / UI 消费总结Plugin 是系统的扩展单元Channel 是 Plugin 注册进去的一种消息通道能力。所有 Channel 都通过 Plugin 机制接入同一个 Plugin 还可以同时携带工具、HTTP 路由等其他能力。**