渠道与机器人
CountBot 的渠道系统负责把外部消息接进来,并把它们映射到正确的会话、路由模式和机器人账号。它不只是“接几个 IM 平台”,而是统一了消息入口、会话归属、团队调度和外部编码工具路由。
这套系统负责什么
- 一个实例接入多个渠道
- 同一个渠道挂载 多个机器人账号
- 根据群聊或私聊决定会话作用域
- 决定默认走
ai还是direct - 决定外部编码工具默认用哪个 profile
- 支持在 IM 聊天内再临时覆盖这些默认值
当前渠道节点
配置模型中包含:
telegramdiscordqqdingtalkfeishuweibowecomwechatxiaozhi
其中“配置节点存在”不等于“运行能力已经完全落地”,应以当前仓库中的实际渠道实现为准。
多账号为什么重要
现实场景里很少是“一种渠道只挂一个机器人”:
- 研发、运营、客服可能各自有独立入口
- 生产、预发、测试可能使用不同账号
- 不同团队可能需要不同默认路由和默认编码工具
所以 CountBot 的渠道设计默认支持:
- 一个主账号
accounts下的多个附加账号
通用账号字段
渠道账号层有一组共同字段:
enableddisplay_nameaccount_idallow_fromrouting_modeexternal_coding_profile
这意味着“IM 渠道默认走哪条路”其实是账号级能力,而不是整个系统一个总开关。
会话作用域
渠道层不只做收发消息,它还要决定一条消息归属于哪个会话上下文。典型判断包括:
- 来自哪个渠道
- 来自哪个账号
- 是群聊还是私聊
- 是否使用主账号共享群聊上下文
这也是为什么渠道配置会和会话系统、团队系统、外部编码工具系统产生直接联动。
默认路由与聊天内覆盖
每个渠道账号都可以在高级设置中定义:
- 默认路由模式:
ai或direct - 默认外部编码工具:某个 profile
运行时又支持在聊天中临时覆盖:
/route/coder
规则是:
- 高级设置负责默认值
- 聊天命令负责当前聊天临时值
- 命令不会回写后台默认配置
详细命令见 IM 命令。
与外部编码工具的关系
当账号默认路由为 direct 时,普通消息会直接转给外部编码工具。这个模式非常适合:
- 把 IM 聊天当编码入口
- 持续修 bug
- 跟进一串连续的代码修改
但前提是该账号已经绑定有效的 external_coding_profile,否则渠道配置保存时就会校验失败。
详细见 外部编码工具。
与团队工作流的关系
渠道消息还可以触发团队工作流:
- 显式命令:
/team 团队名 任务 - 隐式触发:
@团队名
也就是说,渠道层既是“对话入口”,也是团队调度入口。
详细见 智能体团队。
常用渠道 API
| 方法 | 路径 | 说明 |
|---|---|---|
GET | /api/channels/list | 获取渠道配置摘要 |
GET | /api/channels/status |