Skip to content

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

版本: v3.0 日期: 2026-07-01 状态: 资源管理中心取代中台智能体模块,新增工具胶囊消费逻辑与工单权限占位


1. 权限体系总览

1.1 背景

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

  • 资源管理中心(地址 http://172.21.234.70/ipdhub/ )已提供"移动端卡片 → Chatbot → 子 Agent"的层级结构
  • 在此结构下配置子 Agent 天然实现了权限控制——配置即有权限、未配置即无权限
  • 无需在中台额外新增智能体管控模块,避免重复建设

1.2 权限体系全景

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

1.3 核心设计原则

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

2. 资源管理中心权限结构

2.1 层级结构

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

移动端/小程序卡片                    ← 资源管理中心的最低入口层级
  └── AI 空间管家 (Chatbot)         ← 类型=分类
        ├── 设备控制 (子 Agent)     ← 类型=分类,绑定 agent_identifier
        ├── 会议预定 (子 Agent)     ← 类型=分类,绑定 agent_identifier
        └── 工单创建 (子 Agent)     ← 类型=分类,绑定 agent_identifier
层级类型说明
卡片移动端/小程序卡片资源管理中心维护的入口图标,用户可见
Chatbot分类卡片下的对话机器人,作为子 Agent 的容器
子 Agent分类具体的 Agent 能力单元,绑定 agent_identifier

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

2.2 子 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)。

2.3 配置即授权

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

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

2.4 数据权限引用机制

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

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

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


3. 资源管理中心配置界面

3.1 权限配置界面

已在资源管理中心落地的权限配置界面:

权限配置界面

用户在资源管理中心按角色/用户分配"卡片 → Chatbot"的可见权限,被授权用户即可进入 Chatbot。

3.2 权限配置下发

权限配置下发

配置发布后实时生效。资源管理中心承担的权限管控范围包括:

  • 卡片与 Chatbot 的可见性控制
  • 子 Agent 的归属配置(哪些 Agent 能力挂载在 Chatbot 下)
  • 子 Agent 标识符的管理

4. Web 管理后台接入(页面级,接入现有 web端

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

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


5. 小程序 Chatbot 接入

Chatbot 的移动端入口接入由资源管理中心统一管理(见 §3),无需在中台额外配置小程序页面权限。


6. 工具胶囊

6.1 概述

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

6.2 配置来源

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

6.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);                      // 只保留前端有对应实现的胶囊
}

6.4 极端情况处理

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

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

6.5 与权限校验的关系

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

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

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


7. Agent 执行时的权限校验链

7.1 核心设计原则

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

两段式校验

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

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

7.2 Chatbot 路径(子 Agent 功能准入)

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

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

7.3 设备控制数据权限方案

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

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

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

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

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

优点

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

缺点(可接受)

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

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

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

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

7.4 各子 Agent 校验矩阵

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

8. 角色与权限组

8.1 推荐角色模板

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

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

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

8.2 设备控制的数据权限策略

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

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

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


9. 工单权限(预留)

20260701164009 20260701163954

9.1 设计原则

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

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

9.2 端到端流程

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

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

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

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

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

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

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

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

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

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


10. 附录

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

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

会议结论

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

以上结论已融入 §2 资源管理中心权限结构,此处留档备查。

Released under the Private License.