配置工具审批流程
工具审批分为两个阶段。模型准备调用智能体所关联沙箱提供的工具时,沙箱模板或实例中的 工具审批配置 决定是否在执行前产生确认请求。确认请求产生后,渠道可以使用智能体模板中的 工具权限 和渠道用户规则自动处理;Invoke API 调用方则接收中断并提交批准或拒绝。本文将智能体模板中的规则称为模板级审批处理规则。
警告
关闭沙箱 工具审批配置 中的审批开关后,沙箱工具调用直接执行,不检查模板或渠道用户的审批处理规则。必须阻止的操作还应通过最小权限凭证、工具服务授权、MCP Server 权限或沙箱网络策略限制。
设置沙箱工具的审批要求
当模型准备调用智能体所关联沙箱提供的工具,例如 exec 或 python-run 时,沙箱模板或实例中的 工具审批配置 决定是否产生确认请求。智能体模板中的 工具权限 不控制这一步,只处理已经产生的确认请求。
| 工具来源 | 什么决定是否产生确认请求 | 确认请求产生后如何处理 |
|---|---|---|
| 沙箱工具 | 沙箱模板或实例中的 工具审批配置。开启后,该沙箱提供的所有工具会在执行前产生确认请求;关闭后直接执行 | 渠道按模板和用户规则处理;Invoke API 调用方提交 APPROVE 或 REJECT |
| 用户工具包 | 工具由 Invoke API 或 WebSocket 调用方执行,并通过 RESPOND 或 ERROR 返回结果。这是工具结果交互,不是批准或拒绝 | 不参与工具执行和结果回传 |
| MCP、知识库、Skill 和平台工具包 | 这些能力的配置页面不提供沙箱式的 工具审批配置 | 不能通过模板规则把原本直接执行的调用改为需审批调用 |
智能体使用沙箱模板时,从该模板创建的沙箱沿用模板中的审批开关;直接选择沙箱实例时,使用该实例自己的开关。需要让模板规则或渠道用户补充规则处理沙箱调用时,应先开启对应沙箱的审批开关。
对于没有审批开关的工具,使用最小权限凭证、工具服务授权、调用方允许列表或网络策略限制可执行范围。不要添加一条模板拒绝规则后,就假定原本直接执行的工具已经受它保护。
根据接入方式处理确认请求
沙箱工具产生确认请求后,后续处理取决于智能体的接入方式。Invoke API 直接把确认型中断返回给调用方。飞书、QQ 和 WebSocket 属于渠道接入;渠道账号已经为用户建立用户绑定时,平台先应用模板级规则,再应用渠道用户补充规则。
Invoke API 不进入渠道自动处理链,因此不会检查模板级或渠道用户级审批处理规则。当响应中的 pending_interrupt.type 为 confirm 时,调用方使用同一 session_id 和中断 ID 提交 APPROVE 或 REJECT。
渠道自动处理需要已经建立用户绑定。用户绑定确定渠道用户正在使用的智能体实例,平台据此应用来源智能体模板中的规则和该用户的补充规则。没有用户绑定时,确认请求不会进入模板和用户规则链,应由渠道交互界面或 WebSocket 客户端处理。
模板规则先检查,命中后不会继续检查渠道用户规则;需要按渠道用户区分处理方式时,不要在模板中添加会提前命中的宽泛允许规则。让目标调用在模板规则中保持未命中,再在渠道账号的 用户绑定 中配置补充规则。WebSocket 客户端还应能够接收未被自动处理的确认型中断,并提交 APPROVE 或 REJECT。
配置渠道中的自动处理规则
从人工审批开始,再为已经验证的低风险调用增加允许规则:
要求人工确认所有沙箱工具
开启沙箱 工具审批配置,暂不添加允许规则。
自动批准固定的低风险调用
添加范围精确的模板允许规则。这些规则适用于通过渠道发起,并且已经进入审批流程的匹配调用。
为不同渠道用户设置不同处理方式
让目标调用在模板规则中保持未命中,再配置用户绑定补充规则。
自动拒绝高风险调用
添加范围精确的拒绝规则,并验证调用没有产生外部副作用。
禁止执行特定操作
同时使用最小权限凭证、工具服务授权或沙箱网络策略,建立不可绕过的限制。
让沙箱工具直接执行
关闭沙箱审批,并确认可以接受模板规则和用户规则不参与处理。
允许规则不是工具授权。外部服务、MCP Server、沙箱或业务系统仍会按照各自的身份和权限检查请求。
配置模板级审批处理规则
- 打开 智能体模板,创建或编辑目标模板。
- 找到 工具权限。
- 对不得执行的调用选择 添加拒绝规则。
- 对可以自动通过审批的低风险调用选择 添加允许规则。
- 按工具来源找到实际工具名称和输入结构;需要按参数值缩小范围时,同时填写参数名和 RE2 表达式。
- 保存智能体模板。
- 创建新的测试智能体实例,或按更新流程将变更应用到现有测试实例,再验证规则。

同一组模板规则先检查拒绝规则,再检查允许规则;模板规则未匹配时,渠道调用继续检查对应用户绑定的补充规则。没有用户补充规则或补充规则仍未匹配时,调用进入人工审批。
配置渠道用户补充规则
渠道用户补充规则只处理模板规则未匹配的审批请求。需要为特定渠道用户设置不同结果时:
- 确认目标工具调用会进入审批流程。
- 让该调用在模板拒绝和允许规则中保持未命中。
- 打开 渠道账号,进入目标账号的 用户绑定。
- 编辑目标用户,在控制台显示的“工具权限规则”中添加拒绝或允许规则。
- 使用该渠道用户发起真实测试,确认自动拒绝、自动批准或人工审批结果。
如果模板规则已经命中,用户补充规则不会覆盖模板结果。对所有用户都必须禁止的操作,应放在模板拒绝规则中,并在工具提供方保留相应权限限制。
找到工具名称和参数名
规则中的三个字段来自不同位置:
- 工具名称来自工具的可调用名称,不是插件、模板、实例或工具包的显示名称。
- 参数名来自工具输入 schema 的顶层
properties。名称必须与工具定义完全一致。 - 匹配正则 (RE2 语法)由你根据允许或限制的参数值编写,不是工具定义提供的固定值。
按工具来源查找这些值:
| 工具来源 | 查找工具名称 | 查找参数名 |
|---|---|---|
| MCP | 打开 MCP 实例详情,在 工具列表 中复制目标工具的名称 | 展开目标工具的输入 schema,复制顶层 properties 中的字段名 |
| 沙箱 | 打开沙箱实例详情并加载工具列表,复制列表中的名称 | 沙箱工具列表只显示名称和描述。先保留人工审批,通过一次低风险测试在 Trace 中核对参数,或查阅该工具的公开说明 |
| 其他确认型工具 | 在该能力的工具说明或测试调用的 Trace 中核对可调用名称 | 使用工具输入 schema 的顶层字段;无法确认时不要猜测参数名 |
平台工具包的选择项表示工具包,不一定等于其中工具的可调用名称。平台工具包配置不提供沙箱式审批开关,模板规则不会把它的调用改为需审批调用;应通过工具说明、调用结果和工具本身的权限限制确认可执行范围。
用户工具包也使用 name 和 inputSchema.properties 定义工具调用,但此类工具需要 Invoke API 或 WebSocket 调用方执行并返回 RESPOND 或 ERROR。调用方应使用这些字段校验自己的工具允许列表;模板允许规则不能代替工具执行或调用方鉴权。
以下工具定义表示可调用名称为 exec,顶层参数名为 command:
{
"name": "exec",
"inputSchema": {
"type": "object",
"properties": {
"command": { "type": "string" }
}
}
}如果只允许以 ls 开头的命令,可以填写 exec、command 和 ^ls( |$)。请复制实际名称,不要把描述文本、资源名称或嵌套字段路径填入规则。
填写匹配条件
工具名称确定规则适用的调用,参数名和匹配正则进一步限定规则适用的参数值。
| 字段 | 填写方法 | 留空或特殊值的含义 |
|---|---|---|
| 工具名称 | 使用区分大小写的可调用名称,例如 exec | * 匹配所有工具 |
| 参数名 | 使用输入 schema 顶层 properties 中的实际字段名,例如 command | 留空表示不按参数过滤 |
| 匹配正则 (RE2 语法) | 编写与参数值匹配的 RE2 表达式 | 留空表示工具名称匹配后无条件生效 |
要按参数值过滤,必须同时填写参数名和匹配正则。任一项留空时,规则会在工具名称匹配后生效,不再根据参数值缩小范围。
参数规则适合匹配顶层字符串或数字等稳定值。如果需要限制的值位于嵌套对象或数组中,不要使用点号路径猜测字段;应保留人工审批,或者调整你能够控制的工具契约,把需要判断的值设计为顶层参数。
以下示例说明如何缩小规则范围。请替换为目标工具实际公开的工具名、参数名和参数格式:
自动拒绝删除命令
- 规则:拒绝
- 工具名称:
exec - 参数名:
command - 匹配正则:
^rm( |$)
自动批准只读命令
- 规则:允许
- 工具名称:
exec - 参数名:
command - 匹配正则:
^(ls|pwd)( |$)
自动批准指定目录
- 规则:允许
- 工具名称:
file_editor - 参数名:
path - 匹配正则:
^/workspace/approved/
避免使用 * 配合空参数名和空表达式创建宽泛允许规则。这会让该规则覆盖所有同类确认型工具调用。
通过 API 或 WebSocket 响应中断
Invoke API 调用不进入渠道自动处理链,因此不会检查模板级或渠道用户级审批处理规则。调用方收到类型为 confirm 的 pending_interrupt 后,必须使用同一个 session_id、中断 ID 和 APPROVE 或 REJECT 继续调用任务。
WebSocket 是渠道接入。模板和渠道用户规则可以先处理已经产生的确认请求;规则未匹配时,WebSocket 客户端接收 interrupt,并使用同一消息上下文提交 APPROVE 或 REJECT。
用户工具包的工具由调用方业务系统执行。此类中断需要调用方使用 RESPOND 返回工具结果,或者使用 ERROR 返回失败;允许规则不能替代工具执行和结果回传。参见管理 API 会话、调用任务和中断和定义用户工具包。
通过飞书或 QQ 使用智能体时,未被自动处理的确认请求由渠道交互界面提供审批操作。渠道用户绑定中的“工具权限规则”是模板未命中后的补充审批处理规则,不会覆盖已经命中的模板结果。
验证审批流程
不要用一种接入方式的测试结果代替另一种接入方式。按计划使用的入口分别验证:
- 对沙箱工具,先确认对应沙箱模板或实例的 工具审批配置 已开启,并确认测试调用产生确认请求。没有该审批开关的工具不能通过模板规则开启审批。
- 通过目标渠道发送明确匹配模板允许规则的低风险请求,确认自动批准并且只执行预期工具和参数。
- 发送明确匹配模板拒绝规则的请求,确认工具没有执行,也没有产生外部副作用。
- 让调用在模板规则中保持未命中,再使用配置了补充规则的渠道用户验证用户级结果。
- 发送模板和用户规则都不匹配的请求,确认调用进入人工审批。
- 使用 Invoke API 或 WebSocket 时,分别验证调用方可以正确提交
APPROVE和REJECT。 - 测试表达式边界,并在 Trace 或对应运行记录中核对工具名称、参数、中断和最终结果。
模板更新后,应重新验证已有智能体实例。生产验收方法参见验证智能体实例。