IM 渠道适配器

wesgine 的 Channel 适配器为每个 Cell 提供即时通讯渠道管理能力,支持企业微信、飞书、钉钉等平台。


API 端点

GET    /cells/{id}/channels                          渠道列表
POST   /cells/{id}/channels                          注册/更新渠道
DELETE /cells/{id}/channels/{platform}/{account}      删除渠道
GET    /cells/{id}/channels/bindings                  绑定列表
PUT    /cells/{id}/channels/bindings                  替换绑定
POST   /cells/{id}/channels/preflight                 预检验证
POST   /cells/{id}/channels/send                      发送消息
GET    /cells/{id}/channels/events                    SSE 事件流

Webhook 入口

POST /cells/{id}/webhook/wecom      企业微信回调
POST /cells/{id}/webhook/feishu     飞书回调
POST /cells/{id}/webhook/dingtalk   钉钉回调

Webhook URL 中 cellID 是路由依据——每个部门/Cell 配独立 URL。


Cell Handle

cell.Channels() → ChannelHandle
  .List(ctx)
  .Upsert(ctx, config)
  .Delete(ctx, platform, account)
  .Bindings(ctx)
  .ReplaceBindings(ctx, bindings)
  .Preflight(ctx, config)
  .Send(ctx, msg)

CellSpec 声明模式

Channels 与 MCPs 没有运行时存储,CellSpec 就是唯一副本:


配额管理

受 CellQuotas.MaxIMChannels 限制:


凭证管理

渠道凭证通过 SecretRef 管理:

降级保护(INV-PERSIST-07)防止未解密凭证被空值覆盖。


Per-Cell 隔离


反模式

禁止正确做法
全局 webhook URL + header 传 cellID每部门独立 URL /cells/{id}/webhook/{platform}
共享 IM 渠道 credentials 跨 Cell物理隔离
在 Cell.Start 校验渠道数量运行时在增长点校验(INV-QUOTA-05)