Skip to content

2026 AI 空间智能体 - 统一权限体系设计 PRD (v3.4) ​

版本: v3.4
日期: 2026-09-18
状态: 管理后台页面权限从 Web 端章拆出,独立为 §5(传统 Web 后台,非 Agent 部分)


1. 权限体系总览 ​

1.1 背景 ​

本 PRD 定义 AI 空间智能体的统一权限体系。原方案(v2.3)拟在中台新增"智能体"模块、通过 checkbox 控制子 Agent 功能准入,但经 2026-06-09 会议讨论及后续落地验证,确定实际路径:

  • 资源管理中心(地址 http://172.21.234.70/ipdhub/ ;此称谓为 5.x 产品化版本引入,4.5 环境无此概念,见 §1.5)已提供"移动端卡片 → Chatbot → 子 Agent"的层级结构
  • 在此结构下配置子 Agent 天然实现了权限控制——配置即有权限、未配置即无权限
  • 无需在中台额外新增智能体管控模块,避免重复建设

1.2 权限体系全景 ​

权限体系 = 资源管理中心(功能准入) + 中台数据权限(设备范围)+ 业务系统自治(工单类型)
                │                              │                            │
                ▼                              ▼                            ▼
        子 Agent 配置                      设备单控-按建筑空间           工单系统流程发起人配置
        (本 PRD 覆盖)                      (现有中台能力,不变)          (本 PRD 预留接口位)
维度管控方式责任方
子 Agent 功能准入资源管理中心配置 Chatbot → 子 Agent 归属资源管理中心
设备数据权限复用中台现有"设备单控-按建筑空间",用户角色取并集中台(不变)
工单类型权限工单系统(工作流引擎)通过流程发起人配置自治工单系统
工具胶囊(快捷方式)前端消费资源管理中心配置,硬编码展示前端(本 PRD 定义规则)
Chatbot 入口图标显隐资源管理中心按端配置入口图标资源(见 §1.4)资源管理中心
Web 管理后台页面权限中台 web端 页面级 RBAC(见 §5)中台

1.3 核心设计原则 ​

  1. 不复用则不重复:功能准入依赖资源管理中心现有能力,数据权限复用中台,工单类型权限由工单系统自治
  2. 配置即授权:将子 Agent 配置在 Chatbot 下即赋予许可,移除即回收许可
  3. 先查权限,再意图识别:Master Agent 在意图识别前即知道用户可用哪些子 Agent,避免识别出无权限意图后再告知失败
  4. 两段式校验:主 Agent 负责功能准入(yes/no),子 Agent 负责数据权限(按需查询)
  5. 最小权限原则:用户默认零智能体权限,管理员按需配置

1.4 两类权限的区分 ​

同一棵资源树里承载着两类语义不同的权限,配置时须分清:

权限类型作用面挂载节点说明
入口图标权限端侧 UI见 §2.2 / §2.3 / §3.2决定用户能否看到 Chatbot 入口图标;无权限则图标不渲染
子 Agent 功能权限后台 workflow各子 Agent 节点纯 Agent 能力准入,不涉及 UI;决定该子 Agent 能否被意图识别命中并调用

两者是「门」与「门后的房间」的关系:没有入口图标权限,用户根本进不来;有入口但缺某个子 Agent 权限,只是该能力不可用。

1.5 版本与落地状态 ​

术语说明:「资源管理中心」是 5.x 产品化版本才引入的概念与称谓。4.5 版环境下不存在该概念,权限配置借用平台既有的「平台管理 → 资源列表」机制完成。本文其余章节若无特别说明,均以「资源管理中心」指代配置入口。

权限配置机制存在两套形态,UI 术语不同、权限模型一致:

维度4.5 版(如奇瑞项目)5.x 版(产品化 · 资源管理系统)
配置入口平台管理 → 资源列表 → 页面功能资源配置中心 → 菜单管理 → 菜单树
父级(应用)类型应用分类
子级(子 Agent)类型功能页面
端 TabWeb端 / 移动端 / 大屏 / C端WebWeb端 / 移动端 / C端Web / 移动C端

各端落地情况:

端4.5 版5.x 版
小程序端✅ 已开发完成✅ 已配置、已实现
Web 端🚧 方案已定,待开发⏸ 方案待定

两版的资源标识符命名保持一致,配置理念可直接平移。端 Tab 中的「大屏」「C 端 Web」「移动 C 端」本期未展开,留待后续补充。

1.6 通用配置模型 ​

资源管理中心以"移动端/小程序卡片 → Chatbot → 子 Agent"三级结构实现权限配置:

层级类型说明
卡片移动端/小程序卡片资源管理中心维护的入口图标,用户可见
Chatbot分类卡片下的对话机器人,作为子 Agent 的容器
子 Agent分类具体的 Agent 能力单元,绑定 agent_identifier

权限含义:用户在资源管理中心被授予了某张卡片的访问权限 → 卡片下 Chatbot 可见 → 该 Chatbot 下配置的子 Agent 即为该用户可用的能力。配置本身即权限声明,无需重复的 checkbox 控制。

版本与术语:以上是抽象模型。实际落地时,4.5 版环境的节点类型显示为「应用 / 功能」,5.x 版显示为「分类 / 页面」,命名不同但权限模型一致。详见 §2.2、§2.3。

子 Agent 配置 Schema ​

每个子 Agent 在资源管理中心中维护以下信息:

json
{
  "name": "设备控制",
  "agent_identifier": "device_control"
}

{
  "name": "会议预定",
  "agent_identifier": "meeting_reservation"
}

{
  "name": "工单创建",
  "agent_identifier": "workorder_create"
}
字段类型说明
nameString资源管理中心展示的中文名,同时作为 Master Agent 意图识别的可用意图范围
agent_identifierStringAgent 唯一标识符,Master Agent 根据此值路由到对应的子 Agent 处理逻辑

agent_identifier 是连接"资源管理中心配置"与"运行时路由"的关键字段。Master Agent 收到的可用意图列表中的 identifier 与其内部的意图路由表对应,前端也通过它判断是否展示对应的工具胶囊。data_scope 等数据权限信息不在资源管理中心维护,由中台数据权限模块独立管理(见 §2.4)。

实际标识符格式:落地配置中,子 Agent 标识符采用「父级标识符:子项」的拼接形式(如 app-aihub-agent:device-control),父级本身也是一个独立资源。上表 Schema 为简化写法,详见 §2.2。

配置即授权 ​

用户登录 →
  ① 资源管理中心返回该用户的卡片/菜单权限
  ② 卡片下的 Chatbot 可见
  ③ Chatbot 下的子 Agent 清单 = 该用户可用能力列表
  ④ 清单注入 Master Agent LLM 上下文 → 意图识别被约束在可用范围内
  ⑤ 前端消费同一份清单 → 展示对应的工具胶囊(见 §2.5)

新增子 Agent → 在资源管理中心 Chatbot 下新增一条配置 → 用户下次进入 Chatbot 自动获得该能力 + 对应胶囊。
移除子 Agent → 从 Chatbot 下删除 → 用户能力即刻回收。


2. 小程序端 ​

2.1 层级结构 ​

小程序端(移动端)的资源树,各子 Agent 挂在同一个 Chatbot 下:

移动端/小程序
  └── AI 空间管家 (Chatbot)
        ├── 设备控制 (子 Agent)
        ├── 会议预定 (子 Agent)
        ├── 工单创建 (子 Agent)
        └── 智能问数ChatBI (子 Agent)

层级模型与 Schema 的通用说明见 §1.6;两个版本的落地配置形态见 §2.2、§2.3。
小程序 Chatbot 的入口接入由配置入口统一管理,无需在中台额外配置小程序页面权限。

2.2 权限配置方案 · 4.5 版本(如奇瑞项目) ​

入口图标权限由父级应用节点 app-aihub-agent 承担:

image

节点类型标识符承载权限
AI智能体应用app-aihub-agent入口图标显隐
子智能体-chatBi功能app-aihub-agent:chat-bi子 Agent 准入
子智能体-会议预定功能app-aihub-agent:meeting子 Agent 准入
子智能体-智能工单功能app-aihub-agent:work-order子 Agent 准入
子智能体-设备控制功能app-aihub-agent:device-control子 Agent 准入

入口图标权限挂在父级应用节点上;4 个子 Agent 权限挂各自功能节点,不涉及 UI。落地状态:✅ 已开发完成。

2.3 权限配置方案 · 5.x 版本(产品化版本) ​

image

节点类型标识符承载权限
AI智能体分类app-aihub-agent入口图标显隐
子智能体-会议预定页面app-aihub-agent:meeting子 Agent 准入
子智能体-智能工单页面app-aihub-agent:work-order子 Agent 准入
子智能体-设备控制页面app-aihub-agent:device-control子 Agent 准入

结构与 4.5 版一致,仅节点类型命名不同(分类 / 页面)。落地状态:✅ 已配置、已实现。

现网 5.x 移动端当前只配置了「会议预定 / 智能工单 / 设备控制」三个子 Agent,未含 ChatBI,与 4.5 版存在差异,待确认是产品化裁剪还是暂未配置。

2.4 数据权限引用机制 ​

部分子 Agent 需要叠加数据范围,但不在资源管理中心重复定义,而是引用中台现有"数据权限"模块:

子 Agent数据范围策略说明
会议预定❌ 不涉及由会议系统自身管理资源可用性
设备控制✅ inherit → 数据权限.设备单控.按建筑空间复用中台已有的空间数据权限
工单创建❌ 不在此层处理子 Agent 调用工单系统 API 获取该用户可用模板列表(见 §4.3)

设备控制的数据权限落地情况见 §4.1.3。

2.5 工具胶囊 ​

2.5.1 概述 ​

Chatbot 对话输入框底部有一排"工具胶囊",为用户提供快捷入口,点击即直接触发对应的子 Agent 能力,绕过意图识别步骤。

2.5.2 配置来源 ​

工具胶囊的配置来源与权限配置共用同一份数据——即资源管理中心的子 Agent 配置清单。前端在打开 Chatbot 时,从资源管理中心获取当前用户可用的 Chatbot 配置,其中的子 Agent 列表作为胶囊的展示依据。

2.5.3 前端消费逻辑 ​

前端打开 Chatbot →
  ① 请求资源管理中心获取当前用户的 Chatbot 配置
  ② 解析配置中的子 Agent 列表
  ③ 与前端硬编码的胶囊枚举取交集
  ④ 渲染匹配的胶囊
typescript
// 前端硬编码的胶囊枚举(2026-07 一期)
const CAPSULE_MAP: Record<string, CapsuleConfig> = {
  "device_control":       { icon: "device",   label: "设备控制" },
  "meeting_reservation":  { icon: "meeting",  label: "会议预定" },
  "workorder_create":     { icon: "workorder", label: "工单创建" },
};

// 消费逻辑:从资源管理中心配置中过滤出前端支持的胶囊
function getVisibleCapsules(subAgents: SubAgentConfig[]): CapsuleConfig[] {
  return subAgents
    .map(sa => CAPSULE_MAP[sa.agent_identifier])
    .filter(Boolean);                      // 只保留前端有对应实现的胶囊
}

标识符口径:上面枚举用的仍是逻辑名,而实际资源管理中心配置的标识符是「父级:子项」拼接形式(如 app-aihub-agent:device-control,见 §2.2)。二者之间需要一层映射,或前端枚举直接改用落地标识符——待确认。

2.5.4 极端情况处理 ​

场景行为说明
子 Agent 在配置中存在,但不在前端枚举中不展示胶囊该子 Agent 仍有权限(配置即授权),但无快捷入口。用户仍可通过对话自然语言触发
子 Agent 在配置中不存在,但在前端枚举中不展示胶囊用户无权限,胶囊不展示
前端枚举新增第 4 个胶囊需发版更新 CAPSULE_MAP胶囊涉及页面布局/交互模式的差异,硬编码为当前约束

设计决策说明:不同工具胶囊对应的可能不仅仅是"展示一个入口",而是完全不同的页面交互模式(如文档编辑胶囊触发 Canvas 编辑模式)。因此胶囊的展示逻辑采用前端硬编码枚举 + 服务端配置过滤的方式,前端枚举决定了"能做哪些",服务端配置决定了"允许用哪些"。新增胶囊需要前端发版。

2.5.5 与权限校验的关系 ​

工具胶囊不改变权限校验链:

  • 通过胶囊进入 → 直接触发子 Agent → 正常执行(跳过意图识别,但仍在可用意图范围内)
  • 通过对话进入 → Master Agent 意图识别 → 路由到子 Agent

两种路径最终到达同一子 Agent,权限校验逻辑一致。


3. Web 端 ​

3.1 层级结构 ​

网页端
  └── AI 空间管家 (Chatbot)
        └── 智能问数ChatBI (子 Agent)

网页端仅两个子 Agent:QA 问答与 ChatBI。其中 QA 问答不设权限、不占用资源树节点,因此树上只有 ChatBI 一条。

3.2 权限配置方案 · 4.5 版本(如奇瑞项目) ​

与移动端的关键差异:入口图标权限不挂在应用节点上,而由应用下的一个独立功能资源 bot悬浮窗 承载,应用节点 app-chatbot 本身无实际作用。

image

节点类型标识符承载权限
chatbot应用app-chatbot无实际作用(仅作容器)
bot悬浮窗功能待定 *入口图标显隐
ChatBI功能待定 *子 Agent 准入(ChatBI)

* 现网为占位值,正式标识符待确认。

两个子 Agent 的授权策略不同:

子 Agent是否设用户权限说明
QA 问答❌ 不设置凡能看到入口图标的用户即可问答
ChatBI✅ 设置需在资源管理中心按用户/角色授权后方可使用

QA 问答不单独授权,是为了保证「看得到入口 = 用得上问答」的体验一致性;需要收紧的能力(ChatBI)才单点授权。

落地状态:🚧 与前端已达成方案,待开发。

3.3 权限配置方案 · 5.x 版本(产品化版本) ​

方案待定,由技术方案(李洋)主导设计后回填本节。落地状态:⏸ 方案待定。


4. 后台通用规则 ​

4.1 Agent 执行时的权限校验链 ​

4.1.1 核心设计原则 ​

先查权限,再意图识别。主 Agent 在意图识别前就知道用户能做什么,避免识别出无权限的意图后再告知失败。

两段式校验:

  • 主 Agent:负责功能准入——用户是否有权使用该意图(yes/no)
  • 子 Agent:负责数据权限——用户能在哪些空间/设备范围内操作(按需查询,不预取全量)

主 Agent 不做实体提取(slot filling),空间/设备的向量检索是子 Agent 的事。因此数据权限只能下沉到子 Agent 侧校验。

4.1.2 Chatbot 路径(子 Agent 功能准入) ​

用户进入 Chatbot →
  ① 前端获取可用子 Agent 列表(来自资源管理中心配置)
  ② 将此列表注入主 Agent LLM 上下文
  ③ 主 Agent 意图识别 → 仅在可用范围内匹配
  ④ 命中 → 路由到对应子 Agent,传入 user_id
  ⑤ 未命中 → 降级回复(不暴露权限信息)

前端已预取可用子 Agent 列表并注入 LLM 上下文,意图识别本身被约束在可用范围内,命中即代表已授权,无需主 Agent 再次调权。

4.1.3 设备控制数据权限方案 ​

设备控制的权限校验分为两层,当前落地情况如下:

校验层说明落地状态
功能准入用户是否有权使用"设备控制"子 Agent(资源管理中心配置)✅ 已落地,见 §4.1.2
数据权限用户对具体设备的操作范围(按建筑空间)🔜 待与组件集成

选定方案:API 层过滤(方案 A)

决策:设备语义查询接口在返回设备列表时,根据当前用户的数据权限过滤结果,组件只渲染有权限的设备。

设备控制子 Agent →
  ① 根据空间 + 语义 Key 查询设备列表
  ② 查询中台数据权限,判断当前用户对每台设备的控制权限
  ③ 过滤:仅返回有权限的设备(取 Top N 中的有效子集)
  ④ 传给前端组件 → 正常渲染确认卡片

优点:

  • 组件零改动,无需新增权限相关 UI 状态
  • Top N 名额不浪费在无权设备上
  • "全场同步"逻辑不变——列出的全部可操作

缺点(可接受):

  • 用户看不到无权设备的存在(但结合设备查询 Agent 可另行查全量)

备选方案:组件中置灰(方案 B,未采用)

检索后保留所有设备,组件中对无权设备做置灰展示 + 权限提示。未采用原因:

  1. Top N 名额被无权设备占用,挤占有效设备的展示空间
  2. 组件已有"已到位置灰",再加"无权限置灰"意味着两种不同的置灰语义,交互信息量过大(设备列表中已展示当前值、待操作状态,再无空间展示权限状态)

4.1.4 各子 Agent 校验矩阵 ​

子 Agent功能准入(资源管理中心)数据范围附加校验
会议预定配置了即可用❌ 不涉及会议系统管理资源可用性
设备控制配置了即可用✅ 按候选实体逐个查中台"设备单控-按建筑空间"语义物理量程约束
工单创建配置了即可用❌ 不在此层处理子 Agent 调工单系统 API 获取可用模板(见 §4.3)

4.2 角色与权限组 ​

4.2.1 推荐角色模板 ​

以下为在资源管理中心和中台配置角色时的建议组合:

角色web 端移动端-小程序子 Agent(资源管理中心)数据权限
超级管理员空间智能体管理后台(全部页面)AI 空间管家全部子 Agent全部空间
物业经理空间/设备管理AI 空间管家会议预定、设备控制、工单创建管辖空间范围
普通员工—AI 空间管家会议预定所在空间
访客—AI 空间管家会议预定—

实际角色名称和配置粒度由各项目(如奇瑞)在中台 + 资源管理中心中按需定义,上表为推荐基线。

4.2.2 设备控制的数据权限策略 ​

对于设备控制,建议中台为不同用户组配置不同的"设备单控-按建筑空间"范围:

用户组数据范围典型说明
领导层全部办公空间(排除机房/配电间)不能控制需要专业知识的关键设备
后勤组全部空间(含机房/配电间)专业设备全覆盖
普通员工仅所在空间或已预订空间最小权限

配置方式:直接在中台"数据权限 → 设备单控 → 按建筑空间"中按用户/角色分配,无需在资源管理中心重复定义。

4.3 工单权限(预留) ​

20260701164009 20260701163954

4.3.1 设计原则 ​

工单类型权限不在统一权限体系内定义,由工单系统(工作流引擎)自行管理:

  • 工单系统的工作流配置中可指定发起人,粒度可达部门级或具体用户
  • 中台/资源管理中心不感知工单类型的业务含义
  • 智能体侧只做"查询可用模板 → 匹配用户意图"的消费方

4.3.2 端到端流程 ​

工单创建的完整权限链路涉及前端胶囊、主 Agent 功能准入、子 Agent 模板匹配三个环节:

① 用户进入 Chatbot 页面
   └→ 前端消费资源管理中心配置
       └→ 若有"工单创建"子 Agent 配置 → 展示建单胶囊(§2.5)
       └→ 若无 → 不展示

② 用户提问后,主 Agent 意图识别
   └→ 可用意图范围包含"工单创建"(§4.1.2)
      └→ 命中 → 路由到工单建单子 Agent,传入 user_id
      └→ 未命中 → 降级回复

③ 工单建单子 Agent 调用工单系统接口        ← 本节新增
   └→ GET /api/workorder/allowed-templates?user_id=xxx
   └→ 工单系统返回该用户可用的工单模板列表

④ 子 Agent 进行意图理解与分类(ILUC)
   └→ 在可用模板范围内匹配用户语义
      └→ 命中 → 创建对应工单
      └→ 未命中 → 引导用户调整描述

注:步骤 ①② 与通用权限校验链一致(见 §2.5、§4.1),无需特殊处理。本 PRD 新增的设计点在步骤 ③——子 Agent 在执行业务前需先调工单系统接口获取可用模板,以此实现工单类型权限的运行时校验。

4.3.3 接口约定(待工单系统确认) ​

需要工单系统提供以下能力:

接口说明状态
GET /api/workorder/allowed-templates?user_id={id}根据用户 ID 返回可用的工单模板列表🔜 待确认

预留说明:此处截图为工单系统相关权限配置界面截图,待补充。


5. Web 管理后台页面权限(传统 Web 后台,非 Agent) ​

本节与 AI 智能体无直接关系,属于传统 Web 管理后台的页面级权限。列出以保持权限体系全貌完整,配置与维护均在中台完成。

页面归属应用权限级别
标准语义库 (iot-semantics.html)空间智能体管理后台页面级
空间资产管理 (iot-assets.html)空间智能体管理后台页面级
设备资产管理 (iot-devices.html)空间智能体管理后台页面级
系统设置(预留)空间智能体管理后台页面级

接入方式:在中台 web端 下新增应用"空间智能体管理后台",挂载以上页面。页面级控制即可,无需细化到按钮。

与 §3.2 / §3.3 的区别:本节管的是管理后台页面本身能否打开(中台 web端 页面级 RBAC);§3.2/§3.3 管的是 Web 端 Chatbot 入口图标显不显示(资源管理中心配置)。两者是独立链路,不要混用。


6. 附录 ​

6.1 2026-06-09 会议纪要(已归档) ​

参会人:李洋 / 马骥 / 肖凯 / 顾波涛

会议结论:

  • 资源管理系统:移动端/小程序卡片配置 Chatbot(类型=分类),Chatbot 下配置子 Agent(类型=分类)
  • 数据权限管理(不改造):现有数据权限(设备权限)为用户角色的数据权限并集,不为 AI Chatbot 单独定义设备权限
  • 资源管理系统暂不改造(后续中台产品视情况统一设计升级)

以上结论已融入 §1.6 通用配置模型,此处留档备查。

Released under the Private License.