主题
第10章 安全与合规治理
10.1 问题场景
智能体系统会处理企业知识、用户数据、工具权限和业务流程,因此安全与合规不是上线前最后补的一层壳,而是从设计阶段就必须前置的硬约束。 如果只关注功能效果而忽略治理,系统很容易在以下地方出问题:
- 用户通过提示词诱导越权读取不该访问的数据。
- 工具调用缺少权限边界,导致高风险动作被误执行。
- 敏感数据进入日志、评测样本或截图后,产生二次泄露风险。
- 事故发生后,审计信息不完整,无法复盘是谁、在什么时候、通过什么链路触发了问题。
很多前端工程师刚转做智能体(AI Agent)项目时,会把安全理解成“最后加个鉴权”或“把敏感词拦一下”。 但在真实业务里,安全问题远不止输入拦截这么简单,它横跨:
- 数据分级。
- 工具权限。
- 输入注入防护。
- 输出脱敏与审计。
- 日志与评测样本治理。
- 人工确认和责任归属。
前端迁移提示
前端工程师其实已经拥有很多可迁移的安全经验:
- 登录态、角色权限、页面级能力控制 -> Agent 工具与资源权限边界。
- XSS / 接口鉴权 / 越权防护意识 -> 提示词注入、工具滥用和数据越权防护。
- 埋点与错误监控 -> 审计日志与异常访问追踪。
- 危险操作确认弹窗 -> 高风险工具调用的 Human-in-the-Loop 机制。
最小项目目标
本章建议先完成一个“最小安全治理闭环”项目,例如:
- 为一个知识问答 Agent 定义数据分级和权限矩阵。
- 为一个执行型 Agent 设计高风险工具确认机制。
- 为一个工作流 Agent 增加审计字段和越权访问拦截规则。
参考入口:
- 章节代码片段索引
docs/examples/assets/samples/example-10-security-controls.jsondocs/examples/assets/screenshots/README.md
10.2 核心原理
安全治理边界图
安全与合规治理的关键,不是做一个孤立的“安全模块”,而是把“最小权限、数据分级、输入输出约束、审计可追溯、人工确认”嵌进系统全链路。 如果没有这层设计,系统功能越强、接入工具越多、上下文越丰富,风险就越大。
一、最小权限:只给完成任务所需的最少能力
这是最基础也最容易被忽略的原则。 你需要持续问:
- 这个用户真的需要看到这份文档吗。
- 这个 Agent 真的需要能调用这个工具吗。
- 这个工具真的需要写权限吗,还是只读就够了。
在 Agent 系统里,最小权限至少要覆盖:
- 用户角色权限。
- Agent 可见工具权限。
- 数据资源访问权限。
- 不同环境下的操作权限。
二、数据分级:不同数据必须不同治理
所有数据都一视同仁是很危险的。 建议至少先做一个最小分级:
- 公开数据。
- 内部数据。
- 敏感业务数据。
- 高敏感个人或财务数据。
数据分级会直接影响:
- 谁能访问。
- 是否需要脱敏。
- 能否进入评测集。
- 能否出现在日志或截图中。
- 是否必须人工确认后才能进一步处理。
三、输入防护:提示词注入不是理论问题
在智能体(AI Agent)场景里,输入不仅来自用户,还可能来自:
- 外部网页。
- 文档内容。
- 工具返回结果。
- 历史消息。
因此输入防护不能只盯用户输入框,而要把所有“可能进入上下文的内容”都视为潜在风险源。 最小防护思路包括:
- 明确系统指令优先级。
- 对高风险提示做规则检查。
- 对外部文本做可信度边界处理。
- 对工具执行增加额外确认或权限判断。
四、输出治理:不是生成出来就能直接用
智能体输出可能会:
- 泄露敏感信息。
- 给出越权内容。
- 在高风险场景下给出过度确定的结论。
- 把内部信息写进对外可见回复。
因此输出治理至少要考虑:
- 是否需要脱敏。
- 是否需要人工复核。
- 是否允许直接发送或写回系统。
- 是否需要记录审计日志。
五、全链路审计:出了问题必须能追
安全和合规最怕“事后查不到”。 因此审计日志至少要能回答:
- 谁发起了请求。
- 请求走了哪些工具或节点。
- 访问了哪些资源。
- 哪一步被拦截或放行。
- 最终输出了什么级别的信息。
参考入口:
docs/examples/assets/samples/example-10-security-controls.json
10.3 实操步骤
推荐做法不是先堆一堆安全术语,而是先把“数据分级 + 权限矩阵 + 审计字段 + 高风险确认”四件事落下来。 先从最小治理闭环做起,再逐步扩展更细的规则和流程。
步骤 1:画出数据流和风险点
至少明确:
- 数据从哪里来。
- 会经过哪些节点。
- 最终流向哪里。
- 哪些输入是外部可控的。
- 哪些输出可能被用户直接看到或被系统直接执行。
步骤 2:做最小数据分级
建议至少列出:
- 数据类型。
- 敏感级别。
- 是否允许进入日志。
- 是否允许进入评测样本。
- 是否必须脱敏。
步骤 3:建立最小权限矩阵
建议至少覆盖三类角色,例如:
- 普通用户。
- 运营或客服人员。
- 管理员 / 审核人。
同时再定义:
- 哪些工具是只读。
- 哪些工具需要确认。
- 哪些工具默认禁用。
步骤 4:补输入防护规则
对高风险输入至少要考虑:
- 明显诱导忽略规则的提示。
- 尝试读取无权限资源的请求。
- 通过外部文档内容注入恶意指令。
步骤 5:补输出和执行保护
至少明确:
- 哪些输出必须脱敏。
- 哪些结果必须人工确认后才能继续。
- 哪些高风险动作不能由系统自动执行。
步骤 6:设计审计日志字段
至少保留:
- 用户标识。
- 角色信息。
- 请求 ID / trace ID。
- 调用的工具或节点。
- 访问的资源级别。
- 是否触发拦截。
- 最终处置结果。
步骤 7:同步保留安全证据材料
建议至少保留:
- 安全治理样本:
docs/examples/assets/samples/example-10-security-controls.json - 截图清单:
docs/examples/assets/screenshots/README.md - 章节片段索引
10.4 常见坑
坑 1:把安全当成发布前补丁
如果不在方案阶段考虑权限、数据分级和审计,后面返工成本会很高。
坑 2:权限模型过粗
如果权限只分“有 / 没有”,通常很难覆盖真实场景里的角色差异和风险等级。
坑 3:只防用户输入,不防外部上下文
提示词注入和越权风险常常来自文档、网页或工具返回,而不只是用户直接输入。
坑 4:日志太多但审计无用
如果缺少用户标识、资源级别、工具名和处置结果,事故发生后仍然很难复盘。
坑 5:把敏感数据写进评测样本、截图或作品集
很多团队线上防得不错,但在评测、演示和复盘材料里反而二次泄露。
坑 6:高风险动作没有确认机制
执行型 Agent 一旦涉及写入、发送、审批、删除等动作,必须把人工确认前置进去。
10.5 验证方式
安全与合规治理做完后,不能只看“规则是不是写出来了”,而要看它们是否真的能拦住风险、留下证据并支持复盘。
一、权限路径是否完整受控
- 是否存在未授权访问路径。
- 角色和工具权限是否符合最小权限原则。
- 不同环境下高风险能力是否被正确限制。
二、高风险输入是否可识别
- 越权访问尝试是否会被拦截。
- 高风险注入场景是否会被识别或降级。
- 外部上下文中的恶意内容是否会影响系统执行。
三、审计是否可复盘
- 是否能定位到谁发起了问题请求。
- 是否能看到访问了哪些资源。
- 是否能知道在哪一步触发拦截或放行。
四、前端体验是否支持安全治理
从前端视角再检查:
- 高风险动作是否有明确确认界面。
- 风险提示是否能让用户理解为什么被拦截。
- 是否有必要的人工复核或人工接管入口。
五、证据材料
- 安全治理样本:
docs/examples/assets/samples/example-10-security-controls.json - 截图清单:
docs/examples/assets/screenshots/README.md - 图解配图:
docs/examples/assets/diagrams/chapter-10-security-guardrails.svg - 章节片段索引
10.6 面试表达
我在系统设计阶段就把安全与合规作为约束条件,而不是事后补救。 通过最小权限、数据分级、输入输出防护和审计闭环,把风险控制前置到开发流程中,让系统在能力扩展时仍然可控。
实战案例:敏感数据访问治理
- 背景:系统需要接入内部文档和业务数据,存在越权读取和敏感信息泄露风险。
- 动作:建立最小权限矩阵、数据分级规则、输出脱敏要求和审计日志字段,并为高风险动作增加确认机制。
- 结果:高风险访问被有效拦截,敏感信息处理更可控,审计链路也能完整复盘。
推荐答题框架
如果面试官问“AI Agent 的安全和普通系统安全有什么不同”,可以按下面顺序回答:
- 先讲 AI Agent 除了传统鉴权问题,还会引入提示词注入、工具滥用和上下文越权风险。
- 再讲最小权限、数据分级、输入输出治理和审计。
- 再讲高风险动作的 Human-in-the-Loop(人工确认)机制。
- 最后讲前端如何把风险提示、确认界面和拦截结果表达清楚。
10.7 练习任务
- 选一个你熟悉的 Agent 场景,画出最小数据流,并标出 3 个潜在高风险点。
- 列出系统中的敏感数据类型,并做一个最小分级表。
- 为 3 类角色设计最小权限访问矩阵,明确哪些工具只读、哪些需确认、哪些禁用。
- 设计一组最小审计字段,并说明为什么这些字段足够支持事后复盘。
- 设计一个高风险动作确认界面,说明前端要展示哪些风险信息。
10.8 验收清单
- 任务完成率 >= 85%
- 关键指标达标率 >= 90%
- 异常场景通过率 >= 90%
- 至少完成 1 份最小数据分级表和 1 份权限矩阵。
- 至少保留 1 份安全治理样本、1 组截图占位清单和 1 份章节代码片段索引。
- 至少能用 2 分钟讲清楚“为什么安全与合规不是附加项,而是智能系统设计阶段的前置约束”。