如何使用CountBot在飞书/企业微信构建你的AI军团

0 阅读13分钟

本文用于指导用户在 CountBot 中配置“一个主机器人 + 多个子机器人”的多角色协作方案,并为每个角色分别设置不同的模型、API 与系统提示词。适用于飞书、企业微信等 IM 渠道接入场景,尤其适合搭建 主机器人 + 子机器人A + 子机器人B ... 这类团队式 AI 协作入口。


一、目标效果

完成配置后,你可以实现下面这套工作方式:

  • 在同一个 IM 渠道中配置多个机器人账号
  • 设定一个主机器人,例如 CEO
  • 再配置多个子机器人,例如 CTOcoder
  • 把这些机器人同时拉进一个群聊
  • 在群里通过 @不同机器人 的方式,把任务分发给不同角色
  • 每个机器人都可以拥有各自独立的:
    • 模型提供商

    • 模型名称

    • API Key / API Base

    • 温度参数

    • 最大令牌数

    • 最大工具调用次数

    • 思考模式

    • 角色名称

    • 性格

    • 自定义系统提示词

推荐理解方式如下:

  • CEO 是主机器人,适合承担总控、汇总、调度、决策类任务
  • CTO 是技术架构角色,适合做方案评审、技术设计、复杂系统分析
  • coder 是执行角色,适合专注编码、修复、实现与输出

图1:整体架构示意图

二、先理解一个关键概念:会话是按机器人分开的

在 CountBot 里,多机器人不是共用一个完全相同的会话,而是按照不同机器人路由生成不同会话。

你在 Web 界面里通常看到的是类似下面这样的会话名称:

feishu:default:oc_xxxxxxxxxxxxxxxxxxx:20260323_011745
feishu:bot:oc_xxxxxxxxxxxxxxxxxxx:20260320_232309
feishu:bot-2:oc_xxxxxxxxxxxxxxxxxxx:20260320_232253

这些名称的格式可以理解为:

渠道:account_id:聊天对象ID:时间戳

例如:

  • feishu:default:... 表示飞书渠道下的主机器人会话
  • feishu:bot:... 表示飞书渠道下 bot 子机器人的会话
  • feishu:bot-2:... 表示飞书渠道下 bot-2 子机器人的会话

注意区分两个概念:

  • Web 会话列表中看到的,是“会话名称”
  • 系统内部实际还有一个 UUID 形式的 session_id,例如:
d1f90fc0-3521-402e-82e2-ae1a699c8117

通常用户在界面中主要接触的是前一种,也就是带 feishu:default:... 这种格式的会话名。

图2:Web 会话列表示意图


三、第一步:在 IM 渠道中添加多个机器人

先进入 CountBot 后台:

  1. 打开 设置
  2. 进入 IM 渠道
  3. 选择你要接入的渠道,例如:
    • 飞书

    • 企业微信

然后配置多个机器人账号。

推荐示例:

角色account_id用途
CEOdefault主机器人,负责主群上下文与总控
CTObot技术负责人角色
coderbot-2编码执行角色

配置原则

每个机器人账号都应该单独填写自己的渠道凭据。

以飞书为例,每个账号都应分别配置自己的:

  • App ID
  • App Secret
  • display_name
  • account_id

以企业微信为例,每个账号都应分别配置自己的:

  • Bot ID
  • Secret
  • display_name
  • account_id

重要规则

  1. 主机器人建议使用 default 作为 account_id
  2. 子机器人建议使用清晰可读的标识,例如 botbot-2ctocoder
  3. 同一个物理机器人不要重复配置成多个账号
  4. 每个账号都应单独测试并保存

如果你计划做“主机器人 + 多专家机器人”的路由模式,建议这样命名:

  • default = CEO
  • ctobot = CTO
  • coderbot-2 = coder

这样后续在排查会话、定时任务、路由配置时会更直观。

图 3:飞书多机器人配置页

图 4:多机器人配置页


四、第二步:分别给每个机器人发一条消息,触发会话生成

机器人渠道配置完成后,不要立刻去找会话配置。
先要让每个机器人各自“产生一次真实对话”,这样 CountBot Web 才会生成对应的会话记录。

建议操作如下:

  1. 在飞书或企业微信群里,先给主机器人发一条消息
  2. 再给 CTO 机器人发一条消息
  3. 再给 coder 机器人发一条消息

只要消息发送成功,并且机器人已经接收到消息,CountBot Web 的会话列表中就会出现对应会话。

例如你可能看到:

feishu:default:oc_xxxxxxxxxxxxxxxxxxx:20260323_011745
feishu:bot:oc_xxxxxxxxxxxxxxxxxxx:20260320_232309
feishu:bot-2:oc_xxxxxxxxxxxxxxxxxxx:20260320_232253

如果没有发过消息,对应会话通常不会自动出现。

这一步非常重要,因为后面的“会话自定义配置”是挂在具体会话上的。

图 5:首次发消息后出现的会话列表


五、第三步:进入对应会话的“会话配置”

当会话已经生成后,回到 CountBot Web:

  1. 打开顶部 会话管理
  2. 在右侧会话列表中找到目标会话
  3. 找到对应会话后的 设置 图标
  4. 点击进入 会话配置

你会进入当前会话的独立配置面板。

这里的核心开关是:

使用自定义配置

  • 勾选:当前会话使用独立配置
  • 不勾选:当前会话继续使用全局默认配置

也就是说:

  • 全局配置管“默认行为”
  • 会话配置管“当前这个机器人会话的特殊行为”

这正是多角色自定义模型的核心能力。

图 6:会话配置入口


六、第四步:为每个角色单独配置模型

进入会话配置后,首先处理的是 模型设置

你会看到类似这些字段:

  • 选择提供商
  • 模型名称
  • 温度 (Temperature)
  • 最大令牌数 (Max Tokens)
  • 最大工具调用次数
  • 启用思考模式

示例配置

下面是一个典型示例:

  • 选择提供商:按你的接入情况选择,例如 zhipuopenaianthropic
  • 模型名称:glm-5
  • 温度:0.7
  • 最大令牌数:4096
  • 最大工具调用次数:25
  • 启用思考模式:按需要开启或关闭

这些参数分别意味着什么

1. 选择提供商

决定当前会话使用哪个模型服务商。

例如:

  • 主机器人使用一个偏综合推理的模型
  • coder 使用一个偏代码能力更强的模型
  • CTO 使用一个偏规划和分析的模型

2. 模型名称

决定当前会话具体调用哪个模型,例如:

  • glm-5
  • gpt-4.1
  • claude-sonnet
  • 其他你已接入的模型

3. 温度

温度越低,回复越稳定;温度越高,回复越发散。

4. 最大令牌数

控制单次输出的最大长度。

如果你希望角色能生成较长方案、较长代码或完整文档,可以适当调大。

5. 最大工具调用次数

控制当前会话一次任务中最多允许调用多少轮工具。
对于 coder 这种执行型角色,通常可以设得比普通聊天角色更高。

6. 启用思考模式

开启后,模型可能返回更完整的推理内容,但首字等待时间通常更长。
关闭后,通常响应更快,适合追求低延迟对话。

一个关键点:模型 API 也可以按会话独立配置

会话级模型配置不仅可以改:

  • provider
  • model
  • temperature
  • max_tokens
  • max_iterations
  • thinking_enabled

还可以独立覆盖:

  • api_key
  • api_base

这意味着:

  • CEO 可以走 A 服务商的 API,使用Claude模型
  • CTO 可以走 B 服务商的 API,使用GLM模型
  • coder 可以走 C 服务商的 API,GPT模型

互相不影响。

也就是说,真正实现的是“按角色配置不同模型 API”。

图7:模型设置面板


七、第五步:为每个角色单独配置人设和系统提示词

除了模型参数,每个角色还可以在 角色设置 中配置各自的人设。

常见字段包括:

  • AI名称
  • 用户称呼
  • 常用地址
  • 性格
  • 展开更多性格
  • 自定义系统提示词

推荐写法

CEO 主机器人

  • AI名称:CEO
  • 用户称呼:主人
  • 性格:直率 / 温柔 / 暴躁 / 吐槽 中选一个基础风格
  • 自定义系统提示词:写成总控型角色

示例:

你是 CEO 角色,负责全局任务理解、问题拆解、汇总结论和分配工作。
你说话要简洁、果断、像一个真正的负责人。
当任务适合交给技术角色或 coder 时,你应该明确给出分工建议。

CTO 子机器人

  • AI名称:CTO
  • 用户称呼:主人
  • 性格:偏理性、直接
  • 自定义系统提示词:写成架构师角色

示例:

你是 CTO 角色,专注技术选型、系统设计、架构评审、风险分析和工程规划。
你不要承担 CEO 的总控风格,而要像技术负责人一样提供方案、权衡和边界条件。

coder 子机器人

  • AI名称:coder
  • 用户称呼:主人
  • 性格:偏直接、执行型
  • 自定义系统提示词:写成编码执行角色

示例:

你是 coder 角色,专注编码实现、修复问题、输出可执行方案和落地步骤。
你应少讲空话,优先给出代码、命令、修改点和验证方法。

关于“性格”和“自定义系统提示词”的关系

这里一定要注意:

  • 如果只选性格,不填自定义系统提示词,则系统使用性格生成默认提示词
  • 如果填写了自定义系统提示词,则会完全覆盖默认性格提示词

也就是说,一旦你写了自定义系统提示词,就应该把角色职责写完整,不要只写一句很短的话。

图8:角色设置面板


八、把多个机器人拉进同一个群聊后,会发生什么

这是整个方案里最重要的一部分。

当你把 CEO(default)CTO(bot)coder(bot-2) 同时拉入一个群聊后,可以通过 @ 来唤醒不同角色。

例如:

  • @CEO 帮我拆一下这个需求
  • @CTO 给我出技术方案
  • @coder 按这个方案写代码

1. CEO 主机器人拥有主群上下文

主机器人使用的是主群共享上下文。
你可以把它理解为:CEO 更适合做“这个群的总控大脑”。

在飞书、企业微信、钉钉、QQ 这类支持主机器人群共享上下文的渠道里:

  • 主机器人会基于主群会话工作
  • 更适合承担持续上下文理解、汇总和调度

2. 子机器人拥有独立会话

当你 @CTO@coder 时:

  • 它们会进入自己的独立机器人群会话
  • 它们不会直接共享 CEO 的主群上下文
  • 它们更像“按需被唤醒的专用专家”

通俗理解就是:

  • CEO 看的是“主战场”
  • CTO / coder 看的是“派给自己的那条线”

3. 子机器人仍然会把结果回复到同一个群

虽然子机器人拥有独立会话,但它们的回答仍然会发送回当前群聊。
所以用户表面上看到的是一个群里多个角色协同工作,实际上 CountBot 内部已经为它们拆开了上下文。

4. 主机器人会保留更完整的群聊语境

对于飞书、企业微信等多机器人群聊场景,可以把主机器人理解为“最完整的上下文拥有者”。

这也是为什么建议把:

  • CEO 设为 default
  • 其他专家设为子机器人

因为主机器人更适合承担:

  • 汇总
  • 回顾
  • 接力
  • 继续追问
  • 跨子角色整合结果

图9:群聊里 @CEO / @CTO / @coder 的示意图


九、一个完整的实战流程示例

下面给出一个典型使用方式。

场景:做一个新项目

你可以在同一个群里这样安排:

第一步:找 CEO 做总控拆解

@CEO 我要做一个支持飞书和企业微信的智能客服系统,你先帮我拆成实施阶段。

CEO 可以负责:

  • 拆解项目阶段
  • 识别关键模块
  • 列出优先级
  • 决定哪些部分要交给 CTO 或 coder

第二步:找 CTO 做方案设计

@CTO 根据 CEO 的拆解,给我出一个技术架构方案,重点讲多机器人会话隔离和模型路由。

CTO 可以负责:

  • 技术方案
  • 会话设计
  • 接口边界
  • 选型比较
  • 风险评估

第三步:找 coder 做代码落地

@coder 按这个方案,先给我实现渠道多机器人会话路由和会话级模型覆盖。

coder 可以负责:

  • 写代码
  • 给 patch
  • 列出修改文件
  • 给出验证步骤

这种协作方式的优势在于:

  • 每个机器人都“像一个固定岗位”
  • 每个岗位都能用最合适的模型和提示词
  • 用户仍然只需要在一个群里工作

十、推荐的配置顺序

为了避免配置混乱,建议严格按下面顺序操作:

  1. 先在 IM 渠道 中配置多个机器人账号
  2. 确保主机器人使用 default
  3. 保存并测试每个机器人
  4. 在 IM 中分别给每个机器人发送一条消息
  5. 回到 Web,会话列表中确认已经出现对应会话
  6. 进入每个会话的 设置 图标
  7. 打开 会话配置
  8. 勾选 使用自定义配置
  9. 分别设置每个角色的模型参数
  10. 分别设置每个角色的系统提示词
  11. 把这些机器人拉进同一个群聊进行协作测试

按这个顺序做,最不容易出问题。


十一、常见问题

1. 为什么我配置了多个机器人,但 Web 里没有出现多个会话?

通常原因是:

  • 机器人虽然配置了,但还没有真正收到消息
  • 没有给每个机器人分别发送过消息
  • 渠道保存后未真正生效

解决方法:

  • 给每个机器人各发一条消息
  • 确认渠道测试通过
  • 确认配置已保存

2. 为什么主机器人和子机器人看起来没有完全共享上下文?

这是设计结果,不是异常。

多角色方案的目的本来就是:

  • 主机器人承担主群上下文
  • 子机器人承担独立专家会话

如果所有机器人都完全共享同一份上下文,角色边界会变弱,也更难做模型隔离。

3. 为什么我填了“自定义系统提示词”后,性格好像不生效了?

因为自定义系统提示词会完全覆盖默认性格提示词。
这属于正常行为。

4. 为什么同一个机器人不能配置成两个账号?

因为系统会校验重复机器人配置。
同一个物理机器人身份不能重复复用为多个账号,否则会导致路由和会话归属混乱。

5. 为什么建议主机器人使用 default

因为 default 是主账号语义,整体更符合主机器人群共享上下文的设计习惯,也更利于后续排查会话和路由。