xAgent 审批策略:控制敏感工具动作
适用对象
本文适合需要确认风险动作的普通用户,以及需要配置安全规则的管理员。
这是什么
审批用于在具体风险动作执行前让人确认。审批策略用于提前定义哪些工具操作可以直接执行、哪些必须确认、哪些应该拒绝。
用户可以先正常提交任务。只有当 Agent 执行到命中策略的工具调用时,会话才会进入 waiting_approval。同意后会恢复原来的工具调用,拒绝后不会执行该动作。
普通用户只需要知道:当页面提示需要确认时,先看清楚动作和影响,再决定是否允许继续。

什么时候使用
当前可以按策略识别和控制的主要操作包括:
- 工作区文件读取、写入和删除。
- 网络请求和命令执行。
- 邮件等个人数据的读取、写入、删除和向外发送。
- 创建子会话。
- 激活 Skill 草稿和提交公共 Skill。
一次工具调用可能产生多个操作事实,最终按“拒绝优先于审批,审批优先于放行”合并判定。
普通用户怎么处理审批
当会话里出现等待确认时,按下面顺序处理:
- 看清楚要执行的动作。
- 看清楚涉及的文件、外部系统或接收对象。
- 判断是否符合当前任务目标。
- 如果只是生成草稿,可以要求“先不要发送”。
- 确认无误后允许继续;不确定时拒绝或补充说明。
不要因为页面提示“需要审批”就直接同意。审批的目的就是让用户在关键动作前停下来确认。
如果任务来自 IM 连接器,并且原连接通道仍可发送消息,xAgent 也会尝试把审批通知发回该通道。按通知回复 #审批号 同意 或 #审批号 不同意 即可处理;同一审批只接受第一个有效结果。当前版本不会把 Web 发起任务的审批广播到所有 IM 通道。
管理员怎么配置策略
管理员进入 审批策略 页面后,可以维护系统级规则。页面通常包含策略概览、可视化编辑和高级 JSON。
建议优先使用可视化编辑:
| 字段 | 建议理解 |
|---|---|
| 原子操作 | 被控制的具体动作类型 |
| 判定 | 直接放行、需要审批或拒绝 |
| 资源范围 | 规则影响哪些文件、会话或外部资源 |
| 风险 | 对动作风险的标记 |
| 会话类型 | 规则适用于主会话、子会话或全部会话 |
| 数据域 | 规则适用于哪类数据 |
| 敏感动作 | 是否涉及发送、删除、授权等敏感行为 |
| 主机 / URL 前缀 | 外部请求的目标范围 |
策略按顺序匹配,命中第一条符合条件的规则后生效。把更具体、更高风险的规则放在前面,避免被宽泛规则提前放行。
系统策略与个人策略
管理员维护系统策略,普通用户可以维护当前账号的个人策略。当前测试版先匹配个人策略;个人策略未命中或选择“继承”时,再使用系统策略。个人规则明确命中时会覆盖系统判定。
因此,当前个人策略是覆盖层,不是只能加严的补充层。要求管理员策略成为不可放宽底线的企业环境,不应把当前机制当成最终治理方案,部署前需要评估是否开放个人策略配置。
当前默认策略
当前默认直接允许主会话创建子会话,也允许删除当前会话产物目录下的文件。下面这些动作默认需要单次审批:
- 删除工作区中的其他文件。
- 将个人数据发送到外部系统。
- 写入或删除个人敏感数据。
- 激活 Skill 草稿。
- 提交 Skill 到公共库。
没有命中规则的其他操作当前默认放行。团队部署时,应按实际风险补充网络访问、命令执行、文件写入和外部系统操作规则。
建议策略
| 场景 | 建议 |
|---|---|
| 普通文件读取 | 可直接放行 |
| 工作区内生成文件 | 可直接放行或低风险确认 |
| 删除、敏感写入、外部发送 | 需要审批 |
| 不明外部地址访问 | 需要审批或拒绝 |
| 明确禁止的路径或系统 | 直接拒绝 |
不同团队的安全要求不同,当前实际结果由个人策略和系统策略共同决定。
配置后检查
保存策略前建议检查:
- 是否有过于宽泛的直接放行规则。
- 删除、发送、外部请求是否仍会进入审批。
- 规则顺序是否符合预期。
- 是否误把示例主机、示例路径当成真实配置。
- 是否需要对个人审批策略做补充。
保存后可以用一条低风险测试任务验证策略是否生效。
注意事项
- 审批策略不是用来替代账号权限的。
- 不要把密钥、token、真实密码写进策略说明。
- 系统策略会影响所有用户,修改前要谨慎。
- 当前个人策略可以覆盖系统判定,企业部署前应确认这一行为符合治理要求。
- 高风险动作即使能执行,也建议保留人工确认。
- 如果不确定规则影响范围,先用更严格策略,再逐步放开。