
按用户权限裁剪 Agent 能力方案1. 背景企业级权限系统(RBAC/ABAC)中,一个通用 Agent 的能力与其服务于的用户权限强相关。Agent 在设计期应声明「完整能力」作为其理论上限,运行期则根据当前用户的系统权限自动裁剪——被裁掉的能力对 Agent 与模型而言「等价于不存在」,而非仅在调用时被拦截。本方案面向「能力由工具与技能构成、由模型按需选择调用」的 Agent(ReActAgent 为典型代表);对能力非工具形态的 Agent(固定流程、子 Agent 编排等),裁剪思想同样适用,但需将「Tool/Skill」泛化为对应的可执行单元。2. 需求R1 完整能力声明:设计期以 Skill 为业务能力单元,声明 Agent 的全部 Skill 及其工具。R2 动态裁剪:运行期按用户权限裁剪能力子集;被裁能力既不进入模型可见工具列表,也无法被执行。R3 多用户隔离:同一 Agent 实例服务多用户,各用户能力互不串扰。R4 实时生效:权限变更(含会话中途降权)在下一次请求即生效;可根据业务实际情况设置短期(小时级)权限缓存,兼顾实时性与查询开销。R5 执行层兜底:越权调用必须在执行层被拒绝,不能依赖模型自觉。3. 核心模型与逻辑概念说明Tool原子操作能力(调用外部能力的最小单位)Skill业务能力单元(手册 + 资源/脚本 + 关联工具),权限锚点;其关联工具由 SkillToolGroup 承载SkillToolGroupToolGroup 的子类(「绑定技能的 ToolGroup」),本身就是一个工具组ToolGroup工具集(一组原子工具的分组,不属于任何 Skill),权限锚点权限→能力映射User → Permissions → 允许的 Skill 集合与允许的 ToolGroup 集合分层结构:权限域(面向业务):Permission可锚定两类对象——Skill(手册 + 资源/脚本 + 关联工具构成的业务能力)或ToolGroup(纯工具集)。能力域(面向实现):Skill内部经SkillToolGroup组织其工具;ToolGroup直接包含Tool。关键逻辑链: