分享AI实践与思考
入门
上手
教程
基础
概念解释
Microsoft Foundry
开发工具
操作指南
参考
治理与网络
工具与知识
概念解释
操作指南
Agent Service
总览
概念解释
Azure OpenAI
API 与开发
总览
Azure AI Search
权限与安全
参考
检索概念
概念解释
快速上手
教程
Foundry Tools
其他与已退役
总览
概念解释
RAG 与知识工程
智能体与工具
MCP 与 Skills
操作指南
基础
评测、观测与安全
安全
评测
概念解释
参考
企业架构与成本
解决方案场景
样例与学习资源
附录
工具滥用防护
本页说明如何为能调用工具的 agent 配置护栏与任务一致性检查,防止工具被误用、越权调用或被注入指令驱动,并给出验证方法与排错表。
适用场景
agent 能发邮件、改数据、删除记录、共享文件等,一旦工具调用偏离用户意图,后果直接落在外部系统上。常见情形包括:
- 用户只要求查看,agent 却准备执行修改或删除(如清除日历事件)。
- 用户只要求起草,agent 却准备直接发送或对外共享。
- 工具返回的网页或文档中夹带指令,诱导 agent 继续调用其他工具(间接注入)。
- 工具权限超出业务所需,即 OWASP LLM06(过度代理,Excessive Agency)所描述的情形。
前提
项目 | 要求 | 说明 |
Azure 订阅与 Foundry 项目 | 已具备 | 页面列出的前提条件 |
模型部署 | 至少一个 | 页面列出的前提条件 |
角色 | 可创建 Foundry 资源的角色,如 Foundry Account Owner 或 Foundry Owner | 页面说明角色已从 Azure AI 系列更名,旧名称仍可能出现 |
Agent | 使用 Foundry Agent Service 开发的 agent | 页面说明护栏系统目前只适用于该类 agent |
预览功能 | 工具调用与工具响应干预点、Task Adherence 为预览 | 需在项目中启用,待核实(2026-11-05 获取) |
步骤
- 盘点工具:列出 agent 可调用的每个工具,标注它是只读,还是会写入、删除、对外发送或产生费用。这一步是编写者的建议,来源未规定格式。
- 收紧权限:工具与 agent 所用身份只授予完成任务所需的最小权限。身份管理可参考 Microsoft Entra ID 或托管标识(Managed Identity)。
- 新建护栏:在 Foundry 项目左侧导航进入 Guardrails,选择 Create guardrail。
- 添加控制项并选择干预点:对 agent,可选择用户输入、工具调用(Tool call,预览)、工具响应(Tool response,预览)、输出。
- 选择风险与动作:对工具相关风险,动作选择 Annotate and block。对 agent 而言,只有该动作可用,仅标注(Annotate)不适用。
- 配置任务一致性:添加 Task Adherence(预览)控制,或在自有流程中调用 Task Adherence API,对计划中的工具调用做判断。命中时可阻止该调用,或升级给人工审核。
- 分配到 agent:把护栏指定给 agent。agent 的护栏完全覆盖模型部署的护栏,因此需要检查覆盖关系。
- 验证:按下方“验证”一节测试。
参数表
设置 | 位置 | 可选值 | 说明 |
干预点(Intervention point) | 控制项 | 用户输入;工具调用(预览);工具响应(预览);输出 | 工具相关干预点仅适用于 agent |
动作(Action) | 控制项 | Annotate;Annotate and block | agent 仅支持 Annotate and block |
风险(Risk) | 控制项 | 仇恨、性、自伤、暴力、用户提示攻击、间接攻击、受保护材料、个人身份信息(预览)、Task Adherence(预览) | 适用性按 agent 与模型分别列出 |
阻止级别(Blocking level) | 内容类风险 | Off、Low、Medium、High | Low 只阻止高严重级别,High 最严格 |
Spotlighting(预览) | 文档攻击控制 | 默认关闭 | 适用性与 token 影响见“Prompt Injection 与防护”页 |
验证
- 构造一个诱导性请求:用户只要求查看数据,但测试 agent 的计划工具是修改或删除类。预期 Task Adherence 或工具调用控制给出检测结果。页面给出的示例即为此类情形(查看日历事件却计划清除)。
- 检查检测结果中的
detected与filtered字段。两者分别表示是否检测到风险、是否已过滤。
- 再构造一个正常请求(如查看日历),确认不会被误拦截。页面给出的正常示例结果为未检测到风险。
- 对工具响应做同样测试:在工具返回内容中放入一条无关指令,确认工具响应干预点能识别。
排错表
现象 | 可能原因 | 处理 |
护栏对 agent 不生效 | agent 仍在使用模型部署的护栏 | 显式为 agent 指定护栏 |
护栏对 agent 不生效 | 护栏包含 agent 不支持的预览风险(如 Spotlighting、Groundedness) | 移除这些控制项,它们只对模型生效 |
工具调用或工具返回未被扫描 | 未配置工具调用或工具响应干预点;预览功能未启用 | 补充控制项,确认项目中的预览功能已开启 |
正常调用被误拦 | 阻止级别过高,或分类器误判 | 调整阻止级别,并用正常样本回归测试;持续误报可联系支持(待核实) |
文档内注入未被识别 | 文档攻击检测默认关闭 | 显式开启文档攻击控制 |
Task Adherence 在非英文下效果不稳定 | 页面说明主要在英文文本上测试 | 用目标语言分别测试 |
限制与待核实
- Task Adherence 为预览。页面说明,在所有内容安全区域都可启用,但客户数据可能被路由到美国和欧盟区域处理。这对数据驻留要求有影响,需与合规团队确认(待核实)。
- 页面说明文本长度有上限,具体数值见内容安全输入要求,本页未核实。
- 护栏概览页的动作表显示 agent 不支持仅标注(Annotate),而 Prompt Shields 页面的排错建议提到从 block 改为 annotate 观察误报。两处对 agent 场景的描述不一致,待核实。
- 预览功能的状态、适用风险与区域均以 2026-11-05 获取的页面为准,待核实。
来源与核对
- 来源 URL:
- https://learn.microsoft.com/en-us/azure/foundry/guardrails/guardrails-overview
- https://learn.microsoft.com/en-us/azure/ai-services/content-safety/concepts/task-adherence
- https://learn.microsoft.com/en-us/azure/ai-services/content-safety/concepts/jailbreak-detection
- https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview
- 核对范围:正文已读(护栏概览页、Task Adherence 概念页、Prompt Shields 概念页与内容安全概览页已读取正文)。步骤中的盘点与最小权限为编写者建议,未在来源中逐条核实。
- 获取日期:2026-11-05。预览状态与数据路由说明以该日期的页面为准,待核实。
上一篇
OWASP LLM Top 10 对照
下一篇
负责任 AI 与内容安全治理
Loading...