Skip to content

构建按需开通的飞书员工服务助手

本实战把一项由平台统一维护的知识服务接入飞书。两位员工分别发送 /init 时,平台才为该员工创建智能体实例和用户绑定;后续消息进入各自实例,但两个实例使用同一套经过验证的制度资料。

完成后,可以同时验证按需开通、按用户路由、共享知识检索、资料缺失回答,以及删除绑定后的重新初始化。

准备条件和样例

开始前需要:

  • 一个已经通过实际回复验证的模型凭证和模型。
  • 一项已经通过固定问题验证的知识库组实例。
  • 创建智能体模板和飞书渠道账号的权限。
  • 一个专用于本实战的飞书企业自建应用,以及管理机器人能力、权限、事件订阅和应用版本的权限。
  • 同一测试企业中的两位测试用户。

下载并解压飞书员工服务助手样例包。压缩包包含 test-cases.json。可以另外查看样例清单和校验值

本实战复用知识助手样例包中的虚构制度资料。先完成构建可追溯的企业知识助手,或者准备一项能够通过同样固定问题的知识库组实例。

本文使用固定的 recipe-feishu-employee-service-* 名称。如果环境中已经存在同名资源,请统一追加简短后缀;不要修改或复用来源不明的同名资源。

飞书应用只能连接一个正在运行的渠道账号。为本实战创建新的专用应用,不要把已经连接到其他一体化智能体运行与协同平台(AgentWorks)环境或渠道账号的应用再次连接到本实战。

App Secret 只填写到 AgentWorks 渠道账号中,不要放入智能体提示词、聊天消息、截图或测试记录。

理解按需开通和共享知识

两位员工获得不同的智能体实例和用户绑定,因此可以分别管理实例状态和生命周期。知识库组实例仍然共享;更新制度资料后,两个员工实例都会使用同一项知识服务。

只需要分开对话而不需要分别管理实例时,绑定一个已经创建的共享实例更简单。选择方法参见通过渠道提供智能体

以下入口仅在租户已启用知识库和飞书渠道能力时可用。按钮会在新标签页打开控制台。若先进入登录页,控制台目前不会在登录后自动返回目标页面;请登录后返回本文,再次选择按钮。

创建员工服务智能体模板

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

  2. 模板名称 设为 recipe-feishu-employee-service-v1,选择已经验证的模型凭证和模型。

  3. 系统提示词 中输入:

    language-text
    你是面向员工的内部服务助手。
    回答支持制度和事件升级问题前,必须先检索已连接的知识库。
    只根据检索到的资料回答,不要补充资料中没有的政策、时限、金额、工单状态或负责人。
    如果资料没有答案,明确说明资料未提供该信息,并建议联系对应制度负责人。
    使用简洁中文回答。
  4. 插件配置 中添加 知识库 RAG - 实例

  5. 选择已经通过固定问题验证的知识库组实例。

  6. 创建智能体模板,并在 插件 中确认目标知识库组实例已经关联。

本实战不把知识库组设置为创建实例时可配置。每位员工的实例都使用同一项经过验证的知识服务,避免在 /init 时选择来源不明的资料。

检查点 1:智能体模板显示正确的模型、系统提示词和知识库组实例。

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

新建飞书渠道账号时选择需要用户执行 /init 的模板绑定
  1. 按照接入飞书机器人准备新的企业自建应用,启用机器人能力和长连接事件订阅。

  2. 打开 渠道账号

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

  4. 账号名称 设为 recipe-feishu-employee-service-v1,填写专用应用的 应用 ID(凭证)应用密钥

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

  6. 选择 recipe-feishu-employee-service-v1 智能体模板。

  7. 关闭群聊。若已经取得两位测试用户在本应用中的发送者 ID,在 单聊允许的发送者 ID 中填写这两个 ID。

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

同一位飞书用户在不同应用中的发送者 ID 可能不同,不要直接复用其他应用记录的 ID。还不知道本应用中的 ID 时,可以在新建且尚未分发的测试应用中短暂完成以下操作:

  1. 保持群聊关闭,暂时不填写单聊允许名单,并确认机器人只对两位测试用户可见。
  2. 让两位用户各发送一次 /init
  3. 从本渠道账号的 用户绑定 中复制两位用户的 ID。
  4. 立即编辑渠道账号,填写这两个 ID,保存后重启渠道账号。
  5. 在限制后的渠道账号中重新运行本实战的固定问题。

单聊允许名单为空时,能够找到机器人的其他用户也可能发起消息。这个临时步骤只适用于未分发的专用测试应用;取得 ID 后应立即收紧允许名单。

如果渠道账号无法保持在线,先确认同一个飞书应用没有连接到另一个仍在运行的渠道账号。不要用收到机器人回复作为唯一判断;还应在本渠道账号的 用户绑定 中核对结果。

检查点 2:渠道账号在线,绑定模式为模板绑定,绑定目标是本实战的智能体模板,用户绑定 还没有测试用户记录。

让两位员工按需开通

开通第一位员工

第一位测试用户在飞书中发送:

language-text
/init

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

language-text
P1 事件的首次响应目标是多少?请只依据资料回答。

回答应包含 15 分钟。在渠道账号的 用户绑定 中记录该用户对应的智能体实例 ID。

开通第二位员工

第二位测试用户发送:

language-text
/init

初始化成功后发送:

language-text
确认 P1 后 30 分钟仍没有技术负责人时,应执行什么升级动作?请只依据资料回答。

回答应包含值班热线,以及事件编号、影响范围、已完成操作和当前阻塞项。在用户绑定中记录第二位用户对应的智能体实例 ID。

两个实例 ID 必须不同,并且都能在 智能体实例 中找到。

两个飞书测试用户分别绑定到不同的智能体实例

检查点 3:两位用户分别获得不同的智能体实例和用户绑定,两个实例都能使用同一个知识库组回答固定问题。

检查 Trace 和资料边界

分别打开两位用户对应的智能体实例,在 Trace 中检查:

  1. 两次调用都执行了知识检索。
  2. collection_name 指向同一个 Collection 资源 ID。
  3. 检索结果包含最终回答使用的制度内容。

让第一位测试用户再发送:

language-text
P1 事件可以获得多少合同赔付?请只依据资料回答。

回答应说明资料没有提供赔付金额,不得编造金额。

按用户创建不同实例不会自动拆分知识、记忆、凭证或业务权限。本实战有意让两个实例共享制度资料;需要私有数据时,应按数据边界准备独立资源和访问控制。

检查点 4:两个 Trace 指向同一项知识资源,资料缺失问题没有产生虚构金额。

验证重复初始化和重新开通

重复初始化

让第一位已经初始化的用户再次发送:

language-text
/init

机器人应提示已经初始化。用户绑定不变,也不应为该用户创建另一个智能体实例。

删除绑定后重新开通

这个步骤会改变第二位测试用户的消息路由,只对本实战用户执行。

  1. 记录第二位用户的原实例 ID。
  2. 用户绑定 中选择该用户的垃圾桶图标 删除绑定,并确认删除。
  3. 确认绑定列表不再显示该用户。原智能体实例仍然存在。
  4. 让第二位用户发送一条普通消息,确认机器人要求先发送 /init
  5. 再次发送 /init,等待平台创建新实例。
  6. 确认新绑定指向不同的新实例,再发送制度问题验证新路由和知识检索。
删除用户绑定后重新初始化并再次取得资料答案

检查点 5:重复 /init 不创建额外实例;删除绑定后,第二位用户重新执行 /init 得到新实例,原实例仍由运营人员单独处理。

调整为自己的员工服务

  • 所有员工使用相同配置和生命周期:考虑使用实例绑定,通过渠道会话区分对话,减少实例和清理工作。
  • 每位员工需要独立实例参数或执行资源:保留模板绑定,只开放确实需要在 /init 时填写的参数。
  • 知识内容统一维护:让所有员工实例连接经过验收的同一个知识库组实例,并指定内容负责人。
  • 需要按员工隔离私有资料:不要只依赖不同智能体实例;为数据资源和外部系统增加对应的身份与权限边界。
  • 需要查询当前工单或业务状态:飞书渠道不会运行本地用户工具代码。使用 MCP、平台工具包,或由业务系统通过 Invoke API 承担工具执行。

准备上线和清理

上线前确定飞书应用负责人、App Secret 轮换、允许名单、知识内容负责人、实例容量、用户绑定清理、离职用户处理、Trace 检查和原实例保留策略。

清理本实战时:

  1. 停用飞书渠道账号。
  2. 记录并删除两位测试用户的绑定。
  3. 分别处理本实战创建和重新初始化产生的智能体实例。
  4. 删除渠道账号和智能体模板。
  5. 仅在没有其他智能体引用时,清理本实战创建的知识资源。
  6. 在飞书开放平台停用或删除专用应用,并按组织流程撤销 App Secret。

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