一项超过900次运行的AI Agent测试给出很直接的结论:在提示词里写“不要访问其他客户数据”大多数时候有效,但仍然留下了通过明确工单编号越权读取的缺口;把权限检查放进MCP工具调用链后,越权访问才降到零。这个结果提醒团队,语言规则只能影响模型行为,真正的访问控制必须由模型无法自行绕过的系统层执行。
为什么提示词不是权限系统
提示词属于上下文的一部分,可能被后续用户输入、长对话遗忘、模型推理偏差或外部内容干扰。即使模型理解了规则,也可能为了完成任务而调用看似合理的工具。权限系统则应根据用户身份、资源归属和操作类型做确定性判断,无论模型怎样解释,都不能读取不属于当前主体的数据。
按编号访问为什么容易漏掉
很多系统只在列表查询时增加租户或客户过滤,却允许详情接口按ID直接读取。Agent先从合法列表得到一个模式,再被用户诱导输入其他编号,就可能绕过范围限制。这不是模型独有的问题,而是典型的对象级授权缺陷。所有详情、下载、搜索和批量接口都必须再次验证资源归属,不能相信前端或Agent已经筛选过。
MCP工具钩子应该检查什么
工具调用前要确认会话身份、允许的动作、资源范围和参数合法性;调用后还要检查返回内容,避免工具意外带出其他客户字段。高风险操作可以在执行前暂停并请求人工审批。日志中应记录谁通过哪个Agent调用了哪个工具、访问了什么资源以及结果状态,但不要把敏感正文完整写入普通日志。
企业如何设计最小权限
为每个Agent创建独立服务身份,不要复用管理员密钥。按任务只开放必要工具,并限制数据范围、调用次数和有效时间。读权限和写权限分开,测试环境与生产环境分开。对于导出、删除、发送和支付等操作,增加二次确认与额度限制。即使Agent被提示注入,也只能在很小的授权边界内活动。
怎样建立越权测试集
测试不能只覆盖正常问题,还要加入直接索要其他客户资料、猜测编号、让模型忽略规则、通过搜索间接获取、利用批量接口和跨会话记忆等情况。每次模型或工具升级后自动重跑,并检查拒绝是否发生在工具层。测试结果要包含请求、权限判断和最终返回,方便复盘真正的阻断位置。
从提示安全走向系统安全
提示词仍然有价值,它可以告诉模型正确工作方式并减少无效调用,但它只能是第一道软约束。可靠架构需要提示规则、身份认证、对象授权、工具钩子、输出过滤、审计和人工审批共同工作。判断一个Agent是否安全,不要问“它是否答应不越权”,而要验证“即使它尝试越权,系统是否仍然拒绝”。
信息来源与阅读建议
本文根据Alibaba Cloud AgentRun MCP Tool Hooks Test公开资料整理,并结合国内团队常见的使用环境进行原创分析。产品功能、价格、开放地区和接口限制可能继续变化,正式采购或上线前应以官方页面为准。原始资料:Alibaba Cloud AgentRun MCP Tool Hooks Test。