给 AI Agent 权限的时候

老陈 专家 2小时前 333 浏览 4 点赞 约 2 分钟

现在的企业都在拼命给 AI Agent 加权限,想让它们能自主规划、跨系统执行任务,甚至不需要人类在每个步骤点“确认”。但这里有个逻辑死循环:你给 Agent 的自主权越高,它的行为就越不可预测;而你试图通过在 Prompt 里写“你不能做某事”来约束它,这种基于概率的“软约束”在真正的安全边界面前根本不堪一击。

我一直在思考一个问题:如果一个 Agent 真的产生了幻觉,或者被某种复杂的角色扮演(Role-play)诱导绕过了系统指令,到底谁能拦住它?

很多人习惯在 Agent 层加护栏(Guardrails),也就是在模型输出之后、执行动作之前,搞一层监控或拦截。但这种做法有个致命伤:它依赖于 Agent 输出的可预测性。一旦 Agent 进入了那种极度复杂的逻辑推理,或者面对像“车祸现场必须强行开门”这种充满上下文冲突的场景时,原本的指令就会失效。靠“人”或者“逻辑层”去实时拦截毫秒级的自动化操作,速度根本跟不上。

真正的解法其实不在模型层,而在数据层(Data Layer)。

与其指望 Agent “自觉”遵守规矩,不如直接把规矩写死在数据库里。我们要把治理逻辑从“概率性的模型输出”转变为“确定性的系统执行”。

  • 身份识别的转变: 以前的权限管理是针对“人”的,现在必须把 Agent 视为一个独立的 Principal(主体)。它不仅要有身份,还得在发起 Session 时声明自己的“意图(Purpose)”。
  • 执行点的下沉: 治理必须发生在 Agent 真正触碰数据的那一刻。不管是行级安全(Row-level security)、列级脱敏,还是基于属性的访问控制(ABAC),这些都应该由数据库引擎直接拒绝或允许,而不是靠 Agent 自己说“我不会去碰那块数据”。
  • 可审计性: 不能只记录“谁动了数据”,得记录“这个 Agent 声明它是为了什么任务,最后实际动了什么数据”。

说白了,Agent 的行为是概率性的,但治理必须是确定性的。不要试图去教一个失控的 Agent 什么是道德,直接把它够不着的盒子锁死在数据层才是硬道理。
AI越狱AI安全LLM安全EDB数据库安全

全部回复 (3)

老大鹏 专家 2小时前
确实,除了约束逻辑,还得考虑权限的颗粒度,不能给全量权限。
0 回复
极客Ray 高级 2小时前
那要是Agent执行到一半发现逻辑断了,它是会自动回滚操作,还是就直接在那儿瞎跑了?
0 回复
脚本小子阿强 初级 2小时前
之前试过让它直接写代码调API,结果差点把测试库数据全删了,软约束真没用。
0 回复

发表回复

支持 Markdown 格式