渠道配置
这一页聚焦“怎么把 CountBot 接到外部渠道,并让它在实际聊天里按预期工作”。如果你更关心渠道运行机制,请看 渠道与机器人;如果你要查 IM 命令,请看 IM 命令。
先理解两层配置
第一层:渠道本身
这层解决“消息怎么进来”:
- 是否启用渠道
- 该渠道使用哪个机器人账号
- 凭证是什么
- 是否允许指定用户或群访问
- 是否挂载多个账号
第二层:渠道账号的高级行为
这层解决“消息进来以后怎么处理”:
- 默认路由模式是
ai还是direct - 默认外部编码工具是哪个 profile
这两个高级选项不是只影响 Web 页面,它们会直接影响 IM 渠道里普通消息的实际走向。
当前支持的渠道节点
当前已实现的渠道:
telegram— Telegramqq— QQdingtalk— 钉钉feishu— 飞书weibo— 微博wecom— 企业微信wechat— 微信xiaozhi— 小智 AI
文档应以当前代码中的 schema 和运行实现为准。某些节点可能已经有配置结构,但运行时能力仍是预留状态。
通用账号字段
所有渠道账号都继承一组共同字段:
enableddisplay_nameaccount_idallow_fromrouting_modeexternal_coding_profile
其中最容易被忽略的是最后两个:
routing_mode:默认路由模式,只允许ai或directexternal_coding_profile:默认外部编码工具 profile,例如codex、claude
如果某个账号把 routing_mode 设为 direct,但没有配置 external_coding_profile,保存渠道配置时会被后端拒绝。
多账号结构
同一个渠道支持一个主账号加多个附加账号。主账号直接写在渠道根节点里,其他账号写在 accounts 下。
示例:
{
"channels": {
"telegram": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"token": "123456:main_token",
"routing_mode": "ai",
"external_coding_profile": "codex",
"allow_from": [],
"accounts": {
"ops": {
"enabled": true,
"display_name": "运维机器人",
"account_id": "ops",
"token": "123456:ops_token",
"routing_mode": "direct",
"external_coding_profile": "codex",
"allow_from": []
}
}
}
}
}
适合的拆分方式:
- 按业务拆账号,例如研发、客服、运营
- 按环境拆账号,例如生产、预发、测试
- 按团队拆账号,例如开发团队、内容团队、支持团队
routing_mode 和 external_coding_profile 怎么生效
ai
普通消息先进入 CountBot 主 Agent 流程,再由主模型决定是否调用工具、是否调度团队、是否转外部编码工具。
direct
普通消息会直接转给当前账号绑定的外部编码工具,不走常规 Agent 决策链路,更适合把 IM 聊天窗口当成编码入口。
这两个默认值可以被聊天内 命令临时覆盖
IM 渠道支持:
/route ai/route direct/route default/coder codex/coder claude/coder default
这些命令只影响“当前聊天上下文”,不会回写渠道账号的持久化默认配置。也就是说:
- 后台高级设置决定默认行为
/route和/coder决定当前聊天临时行为
IM 渠道里常用命令
目前帮助文本中已经内置以下命令组:
- 会话管理:
/new、/list、/all、/switch、/clear - 个性化:
/personality、/provider - 编码代理:
/route、/coder - 团队协作:
/team - 控制:
/stop、/help
完整说明单独放在 IM 命令。
常见渠道字段示例
Telegram
{
"channels": {
"telegram": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"token": "你的 Bot Token",
"proxy": "",
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
QQ
{
"channels": {
"qq": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"app_id": "你的 AppID",
"secret": "你的 AppSecret",
"markdown_enabled": true,
"group_markdown_enabled": true,
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
钉钉
{
"channels": {
"dingtalk": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"client_id": "你的 Client ID",
"client_secret": "你的 Client Secret",
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
飞书
{
"channels": {
"feishu": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"app_id": "cli_xxxxx",
"app_secret": "你的 App Secret",
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
企业微信
{
"channels": {
"wecom": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"bot_id": "你的 Bot ID",
"secret": "你的 Secret",
"websocket_url": "wss://openws.work.weixin.qq.com",
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
微博
{
"channels": {
"weibo": {
"enabled": true,
"display_name": "主机器人",
"account_id": "default",
"app_id": "你的 App ID",
"app_secret": "你的 App Secret",
"token_endpoint": "http://open-im.api.weibo.com/open/auth/ws_token",
"ws_endpoint": "ws://open-im.api.weibo.com/ws/stream",
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
小智
{
"channels": {
"xiaozhi": {
"enabled": true,
"display_name": "小智入口",
"account_id": "default",
"endpoint": "ws://127.0.0.1:8765",
"enable_conversation": false,
"routing_mode": "ai",
"external_coding_profile": "",
"allow_from": [],
"accounts": {}
}
}
}
推荐配置顺序
- 先打通一个渠道的一个主账号。
- 先确认消息能收发,再配置
allow_from。 - 外部编码工具 profile 先单独配置并检测通过。
- 再去渠道账号的高级设置里绑定
routing_mode和external_coding_profile。 - 最后再扩展同渠道的多账号。