权限(Permission)
先用一句话说清楚
权限(Permission)是系统用来判断某个用户、角色或 Agent(智能体)能否访问某份资料、调用某个工具或执行某个动作的规则。
实战知识卡
| 维度 | 要点 |
|---|---|
| 项目里看什么 | 看用户身份、角色、资料范围和工具权限是否一起校验。 |
| 新手最该记住 | 权限(Permission)必须由系统控制,不能只靠模型自觉。 |
| 作品集证据 | 准备一个无权访问样例,证明系统会拒绝或转人工。 |
| 面试回答公式 | 先说身份识别,再说资源范围,最后说工具调用前的权限校验。 |
| 常见扣分点 | 只在页面上隐藏按钮,却没有后端权限控制。 |
新手通俗解释
AI Agent(人工智能体)不是“看见什么就能用什么”。员工不能看所有客户资料,客服不能随便退款,销售不能查看人事文件,模型更不能绕过系统读取数据。
权限(Permission)就是把“谁能做什么”写成系统规则,而不是只靠前端隐藏按钮或 Prompt(提示词)提醒模型。
为什么岗位会问它
智能体工程师经常要把模型接到企业资料和业务系统。面试官问权限(Permission),是在看你是否知道真实系统必须防止越权读取、越权工具调用和越权输出。
| 权限层级 | 示例 |
|---|---|
| 用户身份 | 当前请求来自谁 |
| 角色权限 | 客服、主管、管理员、审核员权限不同 |
| 资料范围 | 某人只能看某部门、某客户、某产品资料 |
| 工具动作 | 查询、创建、修改、删除、导出权限不同 |
| 输出权限 | 有些引用和字段不能展示给当前用户 |
它在项目里怎么用
RAG(检索增强生成)项目中,权限(Permission)至少要出现在两个地方:
| 位置 | 为什么重要 |
|---|---|
| 检索前过滤 | 不让无权资料进入候选集 |
| 输出前检查 | 防止模型回答中泄露无权内容 |
Tool Calling(工具调用)项目中,权限(Permission)还要控制工具能不能执行。只读查询、写入动作和高风险动作必须分级。
和前端隐藏按钮的区别
前端隐藏按钮只是用户界面控制,不能当真正权限。真正权限要在后端、工具层、资料层和审计层校验。用户看不到按钮,不代表不能伪造请求;模型没有看到工具,也不代表系统不需要校验。
常见误解
| 误解 | 为什么不对 | 正确理解 |
|---|---|---|
| Prompt(提示词)能管住权限 | 模型可能误判或被诱导 | 权限必须系统校验 |
| 前端不展示就安全 | 请求可能被伪造 | 后端每次都要检查 |
| 管理员能看所有内容 | 管理员也要最小权限和审计 | 高风险数据要单独控制 |
| 只读工具不用权限 | 读取也可能泄露隐私 | 只读也要校验范围 |
面试官可能怎么追问
1. RAG(检索增强生成)怎么防止越权引用?
考察点: 是否理解资料权限。
参考回答: 我会在检索前按用户身份、角色、部门、业务对象和资料权限过滤候选片段,生成前只把有权限的片段放进上下文,输出前再检查 Citation(引用来源)是否允许展示。不能只在前端隐藏来源。
容易扣分: 检索全库后再让模型自己判断。
2. 工具权限怎么设计?
考察点: 是否理解动作风险。
参考回答: 我会把工具分成只读、写入和高风险三类。只读也要校验身份和数据范围;写入要参数校验、幂等和用户确认;高风险动作要人工审批和审计。
容易扣分: 所有工具统一开放给模型。
作品集里怎么展示它
- 做一张权限矩阵:角色、资料范围、可用工具、是否需要审批。
- 展示同一个问题在不同角色下的不同结果。
- 展示越权请求如何拒答。
- 展示工具调用前后的权限校验记录。