AI Agent如果能调用数据库和业务系统,就已经不再是普通聊天工具。让模型直接拥有数据库最高权限,相当于把所有查询、修改和删除能力交给一个会受自然语言影响的执行者。一旦出现提示注入、理解错误、工具参数异常或账号泄露,影响可能覆盖整个系统。生产级Agent的核心原则应是最小权限、工具封装、身份继承、审计和高风险操作确认。
模型不应该直接自由生成并执行任意SQL
自然语言转SQL可以用于受控分析,但核心业务数据库不应让模型任意查询和修改。更可靠的方式是封装有限工具,例如“查询客户订单”“创建工单草稿”,每个工具只暴露必要参数,由后端负责权限和业务规则。
权限必须继承真实用户身份
员工通过Agent查询数据时,应受到与原系统一致的数据范围限制。销售只能看自己的客户,普通员工不能查财务。工具服务应根据登录身份执行授权,而不是统一使用超级管理员账号后再让模型判断“该不该展示”。
读和写需要不同风险等级
读操作也可能泄露敏感数据,但写操作还可能造成业务损失。创建草稿、正式提交、删除和付款应采用不同权限与确认级别。高风险动作可以要求人工二次确认或审批,Agent负责准备而不是最终决定。
参数校验要放在工具层
即使模型选择了正确工具,也可能给出异常金额、日期或数量。后端必须验证字段类型、范围、业务状态和幂等,不能因为参数来自AI就跳过原系统校验。Agent应该受到比普通接口调用更严格的输入限制。
日志要能还原一次完整执行
记录用户指令、模型版本、所选工具、参数、返回结果和最终动作,敏感内容按规定脱敏。发生错误时才能判断是用户表达、模型判断、接口还是业务规则问题。没有审计链路的Agent不适合操作核心数据。
元码智擎会更强调安全边界由程序强制实现
Prompt可以说明规则,但不能作为安全控制。权限、工具白名单、参数范围、超时、重试和确认都应在后端实现,让模型即使被诱导也无法越过系统边界。Agent的“聪明程度”不能凌驾于软件安全原则。
上线前要主动测试越权与提示注入
故意让用户要求“忽略规则、查询全部客户”或让外部文档包含恶意指令,观察系统是否仍能限制工具。安全测试不应只验证正常任务,而要验证Agent在受到诱导时仍然只能做被授权的事情。
Agent安全还应限制工具组合带来的间接越权
单个工具权限看似安全,但多个工具组合后可能推导或修改更敏感信息。设计时要分析任务链,而不是逐接口孤立授权。高风险工具可以限制只在特定流程、时间或审批条件下被调用。
Agent工具的凭证也要独立管理和轮换
数据库、ERP或第三方API密钥不应写死在Prompt或前端。应存放在安全配置中,按工具分配最小权限并支持轮换。即使模型层发生泄露,也尽量避免直接暴露底层系统凭证。
Agent的敏感数据输出也需要最小化
工具查询可能返回很多字段,但模型只应获得完成任务需要的部分。例如统计订单无需读取客户完整联系方式。通过字段裁剪、脱敏和结果聚合,既减少泄露风险,也降低模型上下文成本。最小权限不仅控制“能否调用”,还应控制“调用后能看到多少”。
Agent安全验收要从单工具权限扩展到完整任务链
AI Agent上线前,应从用户身份出发检查整条任务链:模型能调用哪些工具、组合后能推导什么信息、哪些动作需要人工确认、失败时是否会重复执行。
Agent上线后要持续审计敏感数据与高风险动作
生产运行后应持续审计敏感字段访问、工具调用、凭证轮换、越权拦截和异常重试,让最小权限随着工具和业务变化同步调整。
Agent安全要让业务、IT和数据负责人共同定义边界
业务负责人知道哪些动作必须人工确认,IT负责人掌握系统与账号风险,数据负责人确认哪些字段可以被模型读取或输出。Agent权限设计需要三类角色共同参与,而不是仅由模型开发人员配置。尤其涉及数据库和跨系统操作时,多方确认能减少隐性越权和责任不清。
Agent的数据库访问应优先通过受控工具层
与其让模型自由生成SQL,不如把常用业务动作封装成“查询订单”“获取库存”“创建草稿”等受控工具,每个工具限制可访问字段、数据范围和操作类型。只读查询与写入操作应使用不同凭证,高风险写操作增加二次确认和审计记录。即使模型受到提示注入或产生错误推理,工具层仍能把它限制在预先允许的边界内,这比单纯依赖Prompt中的安全要求可靠得多。
AI Agent安全治理问答
只给Agent数据库只读权限就完全安全吗?
仍不完全安全,因为敏感数据可能被越权读取。还需要按用户、字段和数据范围做细粒度授权。
Agent操作系统一定要人工确认吗?
不一定。低风险、可逆且规则明确的动作可以自动执行,高风险写操作更适合增加确认。
把权限规则写进Prompt能不能省掉后端开发?
不能。Prompt可能被绕过或误解,真正权限必须由程序和数据层强制执行。
