Skip to content
访问 BetterYeah 官网

Agent权限配置

前言:为什么权限管理如此重要?

随着Agent在企业的应用场景不断拓展,一个关键问题浮出水面: 如何在开放便捷与安全可控之间找到完美平衡点?

想象一下,如果你开发的企业Agent能够:

  • 精准授权 - 为每位用户量身定制可访问的Agent或技能范围
  • 数据分级 - 识别用户身份,仅展示其权限范围内的业务数据
  • 个性化体验 - 根据部门、职级、角色提供动态化的Agent能力
  • 无缝集成 - 可在钉钉/飞书/企微等Agent交互入口集成这些功能

这一切,都可以通过我们强大而灵活的权限管理系统实现,从而让一个Agent被不同人使用时,展示出不同的任务处理能力!

BetterYeah平台不仅提供了平台级的开发者权限管理,更打造了直观易用、与企业权限中心结合的 Agent使用者权限控制功能 。通过与钉钉/飞书等交互平台的无缝对接,我们让"千人千面"的智能体验成为现实,在释放AI潜能的同时,为企业数据安全构筑坚不可摧的堡垒。


一、权限管理架构

概述

BetterYeah平台除了平台开发者的基础权限管控之外,还可以通过企业的权限映射来管控使用者在使用Agent的访问权限,精确控制用户对Agent技能资源的访问范围,包括子Agent、知识库、工作流、插件、数据库等核心资源。 image

核心流程:

(1)身份识别 :当用户尝试通过钉钉机器人\飞书机器人等来访问Agent时,平台会自动捕获用户身份信息

(2) 权限查询 :平台通过预先配置的权限回调接口,向你的企业权限中心发送身份验证请求

(3) 权限映射 :企业权限中心返回该用户可访问的具体资源列表(如Agent、数据集等)

(4) 访问控制 :平台根据返回的权限列表,智能控制用户对各类资源的访问权限


二、权限功能配置

  1. 在发布Agent页面,找到 "权限控制" 开关并启用 image
  2. 打开开关后,点击“去配置”,配置好权限的回调查询地址,并保存 imageimage 完成配置后,点击 "测试连接" 按钮,系统将发送测试请求,验证权限接口是否正常工作。

🔔 注意事项 :为确保你的权限回调服务稳定可靠,建议设置适当的超时处理机制,避免因权限服务异常影响用户体验。


三、权限 SPI 接口说明

说明

BetterYeah 平台对外开放的 Agent 权限扩展能力,通过外部用户权限 SPI 与用户系统进行通讯协作,以完成发布到外部的 Agent 的权限扩展。


SPI 接口

外部用户权限

(1)接口说明
  • 接口概述: 由用户提供,并注册在 BTY 平台的外部用户权限 webhook 接口,用于获取外部用户权限。

  • Method: POST

  • 接口路径: 由用户提供

  • 注意事项

    • 用户提供的接口需要自行实现鉴权,支持通过 Header 中的 Workspace-IdAccess-Key 进行鉴权

    • 请求参数中 user_list 需要支持传空数组,平台的 webhook 测试功能,会发起参数为空数组的请求。


(2)请求参数
  • 请求头参数
参数名类型必填描述
Workspace-IdString工作空间 ID
Access-KeyString工作空间 API Key
Content-TypeStringapplication/json
  • 请求 Query Params
参数名类型必填描述
actionString固定值:external_user_auth
  • 请求体参数
字段名类型必填描述
user_listlist<ExternalUser>外部用户列表
user_list[x].user_typeString外部用户类型
user_list[x].user_idString外部用户 ID 或唯一标识
  • user_type 枚举值
Agent 发布到外部类型user_type 值user_id 取值来源
微信客服WEIXIN_KF暂未支持
微信公众号WEIXIN_MP暂未支持
企业微信WEIXIN_WORK_APP暂未支持
企业微信机器人WEIXIN_WORK_APP_BOT暂未支持
钉钉机器人(非流式)DINGTALK_ORGAPP_ROBOT{senderCorpId}:{senderStaffId}
钉钉流式机器人DINGTALK_STREAM_ROBOT{senderCorpId}:{senderStaffId}
钉钉网页应用DINGTALK_ORGAPP_WEB暂未支持
飞书机器人FEISHU_APP_BOT{union_id}
  • 请求示例
bash
curl 'http://example.com?action=external_user_auth' \
--header 'Access-Key: xxx' \
--header 'Workspace-Id: yyy' \
--header 'Content-Type: application/json' \
--data '{
  "user_list": [
    {
      "user_type": "DINGTALK_STREAM_ROBOT",
      "user_id": "ding0fb0a52f4b1428abee0fa5d8e4d7c290:17537543348321790"
    }
  ]
}'
  • 测试请求示例,平台的 webhook 测试按钮,点击后会发起如下的请求进行接口测试
bash
curl 'http://example.com?action=external_user_auth' \
--header 'Access-Key: xxx' \
--header 'Workspace-Id: yyy' \
--header 'Content-Type: application/json' \
--data '{
  "user_list": []
}'
(3)响应参数
  • 响应字段
字段名类型必填描述
codeInteger响应状态码
successBoolean请求是否成功
messageString响应消息
dataObject<data>响应数据
  • data 对象字段
字段名类型必填描述
user_permission_listList<ExternalUserPermission>外部用户权限列表
  • ExternalUserPermission 对象字段
字段名类型必填描述
user_typeString外部用户类型
user_idString外部用户 ID
allowObject<PermissionApp>允许的权限配置,不填代表不做任何权限限制
  • PermissionApp 对象字段
字段名类型必填描述
agentsArray[String]Agent ID 列表
flowsArray[String]Flow ID 列表
pluginsArray[String]Plugin ID(function_id) 列表
a2a_agentsArray[String]A2A Agent ID 列表
datasetsArray[String]Dataset Partition ID 列表
  • 成功响应示例

    • HTTP 状态码: 200
json
{
  "code": 200,
  "success": true,
  "message": "SUCCESS",
  "data": {
    "user_permission_list": [
      {
        "user_type": "DINGTALK_STREAM_ROBOT",
        "user_id": "ding0fb0a52f4b1428abee0fa5d8e4d7c290:17537543348321790",
        "allow": {
          "agents": ["779768b867b04de9bded9b80a2ffa259"],
          "flows": ["2d0f9a8094524463b40553acfa4619be"],
          "plugins": ["3a5cf9381b354145995dd2fb6fbbf4cf"],
          "a2a_agents": ["1c9ee1731bdf4a94a0423fe58c21978e"],
          "datasets": ["1971","1980"]
        }
      }
    ]
  }
}
  • 错误响应示例

    • HTTP 状态码: 400
json
{
  "code": 400,
  "success": false,
  "message": "workspace_id is required",
  "data": null
}

四、场景应用案例

企业知识库差异化访问

场景描述 : 企业有多个部门的用户使用同一个Agent,但需要针对不同部门展示不同的知识库内容。

实现方案 :

第1步:在企业自己的权限中心配置各部门每个用户可访问的知识库ID;

第2步:创建「知识库问答Agent」,并按照上面的流程配置好权限控制;

第3步:部门不同的人,在钉钉机器人或其他端与「知识库问答Agent」问答时,即可根据权限范围,来调用不同的知识库来回答。


4.2 钉钉/飞书机器人的个性化问答

场景描述 :企业在钉钉/飞书中部署了「智能助手机器人」,需要根据用户角色提供不同的子Agent调用和技能调用能力。

实现方案 :

第1步:开发「智能助手机器人」,并关联好子Agent、工作流、插件等技能;

第2步:将「智能助手机器人」发布到钉钉/飞书机器人;

第3步:开启并配置好企业不同用户在使用「智能助手机器人」时的权限范围;

第4步:在钉钉/飞书机器人直接问答,即可根据用户权限来为不同用户展示不同的任务处理能力,提供个性化服务;

🌟 结合企业组织架构,你可以为高管团队、研发部门、销售团队分别定制专属的AI助手的资源访问控制权限,从而保证资源访问的安全性,并大幅提升各部门的工作效率。