Skip to content

构建按用户开通的飞书助手

本实战把一个智能体模板接入飞书,让两位测试用户分别通过 /init 创建自己的智能体实例。完成后,可以在 用户绑定 中看到用户与实例的对应关系,并验证后续消息持续进入各自的实例。

本页使用非生产飞书应用和测试用户。不要用真实客户身份、生产群或敏感数据完成练习。

本实战适合需要为每位用户单独创建一个智能体实例的场景。如果所有用户可以共用一个智能体实例,只需分别保留对话历史,不要仅为分开对话采用按用户开通;请使用实例绑定。选择方法参见通过渠道提供智能体

准备实战

本阶段准备模型、飞书测试应用和两位测试用户,并了解 /init 如何从智能体模板创建专属实例和用户绑定。

准备条件

开始前需要:

  • 一个可用的模型凭证和模型,并已经通过一次实际模型回复验证。
  • 创建智能体模板和渠道账号的权限。
  • 一个非生产飞书企业自建应用,以及管理机器人能力、权限、事件订阅和应用版本的权限。
  • 同一测试企业中的两位测试用户。
  • 为测试资源准备统一且未被占用的名称前缀,例如 recipe-feishu-per-user-v1

飞书应用需要启用机器人能力,使用长连接接收 im.message.receive_v1,并具有接收目标消息和以机器人身份回复所需的权限。完整准备步骤参见接入飞书机器人

App Secret 只填写到一体化智能体运行与协同平台(AgentWorks)的渠道账号中,不要放入智能体提示词、聊天消息、截图或测试记录。

理解创建和路由关系

渠道账号本身不会批量创建实例。每位用户第一次完成 /init 时,平台才创建一个实例并保存用户绑定;后续消息按该绑定路由。

按钮会在新标签页打开控制台。若先进入登录页,控制台目前不会在登录后自动返回目标页面;请登录后返回本文,再次选择按钮。

配置按用户开通

本阶段创建可配置的智能体模板,再创建一个绑定该模板的飞书渠道账号。配置完成后,平台会等待测试用户发送 /init,不会提前创建用户实例。

创建可按用户配置的智能体模板

  1. 打开创建智能体模板页面。

    也可以打开 智能体模板,再选择 创建智能体模板

  2. 模板名称 中输入带有测试前缀的名称。

  3. 选择已经通过实际回复验证的 模型凭证模型

  4. 系统提示词 中输入:

language-text
你是面向飞书用户的内部服务助手。
使用简洁中文回答,只根据用户提供的信息作答。
用户要求长回复测试时,按用户指定的编号范围完整输出,不要省略或重复编号。
  1. 把系统提示词标记为 可配置,让 /init 可以为不同用户提供该实例参数。
  2. 本实战不添加知识库、记忆库、MCP、Skill、沙箱或子代理。选择 创建智能体模板

系统提示词参数用于验证 /init 的参数反馈和按用户创建过程。它不是用户认证或权限控制。真实业务中的身份和授权仍应由飞书组织、渠道允许名单和业务系统共同控制。

检查点 1:智能体模板已保存,模型和系统提示词正确,并且系统提示词可以在创建实例时配置。

创建模板绑定的飞书渠道账号

  1. 打开 渠道账号

    也可以从控制台左侧导航进入 渠道账号

  2. 选择 新建账号,在 渠道类型 中选择 飞书

  3. 账号名称 中输入带有测试前缀的名称,填写专用测试应用的 应用 ID(凭证)应用密钥

  4. 绑定模式 中选择 模板绑定(agent_id 指向 Agent 模板,用户需 /init)

  5. Agent 模板 中选择刚创建的智能体模板。

  6. 单聊允许的发送者 ID 中只填写两位测试用户;本实战不需要群聊。

  7. 选择 创建 并启用渠道账号,等待状态变为 在线

检查点 2:渠道账号显示为 在线绑定模式模板绑定(agent_id 指向 Agent 模板,用户需 /init),绑定目标是本实战的智能体模板。

验证按用户开通

本阶段使用两位测试用户验证初始化、专属实例路由、重复初始化、长回复,以及解绑后的重新初始化。每个检查点都应达到预期结果后再继续。

让第一位用户完成初始化

第一位测试用户先发送:

language-text
/init

机器人应返回需要填写的参数名和示例。再发送一个未知参数:

language-text
/init foo=bar

机器人应拒绝未知参数,并指出可用的参数。最后发送有效命令:

language-text
/init system_prompt=你是第一位飞书测试用户的服务助手。使用简洁中文回答,只根据用户提供的信息作答。

收到初始化成功提示后,发送:

language-text
请只回复:第一位用户的专属实例路由正常

确认机器人返回指定短句。

在渠道账号详情打开 用户绑定,记录第一位用户对应的智能体实例 ID。再打开 智能体实例,确认该实例存在。

检查点 3:第一位用户已有用户绑定和专属实例,普通消息可以得到回复。

让第二位用户完成初始化

第二位测试用户发送:

language-text
/init system_prompt=你是第二位飞书测试用户的服务助手。使用简洁中文回答,只根据用户提供的信息作答。

初始化成功后发送:

language-text
请只回复:第二位用户的专属实例路由正常

用户绑定 中记录第二位用户对应的实例 ID。两个用户的实例 ID 必须不同,并且都能在 智能体实例 中找到。

检查点 4:两个用户分别绑定到不同实例,普通消息持续进入各自实例。

验证重复初始化和长回复

让任意一位已经初始化的用户再次发送原 /init 命令。机器人应提示用户已经初始化,智能体实例 中不应出现第三个该用户的实例。

再让第二位用户请求足以超过一张卡片的编号长回复,例如:

language-text
长回复测试:请输出80个编号段落,从1到80。每段至少80个中文字符,每段只出现一次编号,不要省略、合并或提前结束。

内容超过单张卡片承载范围时,后续卡片会显示“接上一张卡片继续”。从第一张到最后一张检查:

  1. 编号从 1 连续到 80。
  2. 每个编号只出现一次。
  3. 没有缺失、重复或顺序倒置的段落。

不要把 80 段当作固定分页阈值。它只是本实战用于稳定触发多卡片输出的测试输入。

检查点 5:重复 /init 没有创建新实例,长回复跨卡片保持完整和有序。

练习解绑和重新初始化

这个步骤会改变测试用户的路由,只能对本实战的非生产用户执行。

  1. 用户绑定 中记录第二位用户的原实例 ID。在该用户的操作列选择垃圾桶图标 删除绑定,然后在 确认删除用户绑定? 中选择 删除
  2. 确认绑定列表中不再显示该用户。
  3. 智能体实例 中确认原实例仍然存在。删除绑定不会删除实例。
  4. 让第二位用户先发送一条普通消息,确认机器人提示“您尚未初始化,请先发送 /init 创建您的智能体实例”,而不是继续进入原实例。
  5. 让第二位用户重新发送有效 /init,等待平台创建新实例。
  6. 记录新的用户绑定和实例 ID。
  7. 确认新实例 ID 与原实例 ID 不同,再发送一条普通消息验证新路由。

检查点 6:删除绑定后,用户通过 /init 创建了新实例;新绑定指向新实例,原实例仍等待运营人员单独处理。

调整、上线与清理

完成验证后,根据实际用户范围、能力资源和权限边界调整配置,并确定实例、用户绑定和飞书测试应用的管理与清理方式。

调整为自己的交付方式

根据用户是否共享实例、身份范围和所需能力调整渠道绑定与智能体配置。

  • 所有用户共享一个机器人实例:改用实例绑定,先创建并验证共享智能体实例。
  • 每个用户需要不同业务参数:只开放必要的实例参数,并在 /init 中校验和记录这些值。
  • 只允许指定员工使用:填写单聊允许名单,并在业务工具侧继续校验用户身份和权限。
  • 需要群聊:在非生产群中验证 @ 机器人、允许名单、身份传递和会话边界。
  • 需要长期用户事实:验证记忆库的调用者身份和数据范围,再把记忆能力加入智能体模板。
  • 需要调用业务系统:使用 MCP 或平台工具包,并为写操作配置确认、权限和审计。

按用户开通会创建不同的智能体实例和用户绑定,但不会自动拆分已经共享的能力资源。模板绑定提供的是每用户实例路由,不会自动完成业务身份授权、数据隔离审计或资源配额治理。

准备上线和清理

上线前至少确定:飞书应用负责人、App Secret 轮换、允许名单、用户参数来源、实例数量和配额、能力资源所有权、Trace 和告警、解绑流程、离职用户处理,以及原实例和外部数据的保留策略。参见管理渠道账号与用户绑定将智能体投入生产

清理本实战时:

  1. 停用测试渠道账号,确认机器人不再接收新消息。
  2. 记录并删除本实战的用户绑定。
  3. 智能体实例 中分别处理所有原实例和重新初始化产生的实例。
  4. 删除测试渠道账号。
  5. 删除本实战的智能体模板。
  6. 在飞书开放平台停用或删除专用测试应用,并按组织流程撤销 App Secret。

删除用户绑定、渠道账号或智能体模板都不能代替对智能体实例和外部飞书应用的单独清理。

了解更多