审批策略
定义工作区级别的审批策略以控制智能体操作,限制敏感文件的更改并在风险操作前要求审核。
审批策略是工作区级别的规则,控制何时智能体工作需要手动审核才能应用。它们将操作类型(如 pull request 或补丁)映射到审批要求,带有可选的基于路径的过滤来保护敏感文件和配置。
为什么需要审批策略
默认情况下,分配任务的智能体自主工作——它们创建 pull request、推送更改和开放新 issue,无需等待许可。审批策略让你在高风险操作中要求手动审核:
- 保护 CI/CD 配置 ——要求审批任何智能体对
.github/workflow 的修改 - 阻止秘密变更 ——拒绝对
.env、secrets/或其他敏感路径的所有更改 - 生产环境门控 ——要求管理员批准后再改动生产配置
- 账单监督 ——审核对账单相关文件的任何更改
策略如何工作
每个策略定义:
- 操作类型 ——它适用于哪些操作(例如
pull_request、patch) - 路径通配符 ——可选文件模式;空通配符匹配所有文件
- 效果 ——要么
require_approval(排队审核),要么deny(直接拒绝) - 审批者角色 ——谁有权限审批(默认:
admin) - 优先级 ——当多个策略匹配时,最高优先级获胜;
deny优于require_approval
当智能体尝试操作时,策略引擎评估你工作区的所有启用策略。匹配的策略决定操作是被允许、排队审核,还是被拒绝。
匹配逻辑
策略匹配当:
- 其
action_types包含正在尝试的操作,且 - 至少一个
path_globs模式匹配了已更改的文件(或路径通配符为空)
如果没有策略匹配,操作默认被允许。如果多个策略匹配,最高优先级获胜。在优先级相同时,deny 优于 require_approval。
创建和管理策略
策略在工作区 设置 → 审批策略 中管理(仅限管理员)。你可以:
- 创建新策略 ——定义操作类型、路径模式、效果和审批者角色
- 启用或禁用策略 ——切换而不删除
- 设置优先级 ——控制当多个规则应用时哪个策略胜出
- 使用模板 ——AACWorkflow 为常见情况提供可选的起始策略
默认模板
当你启用企业功能时,两个策略可作为起点:
- 保护 CI/CD 配置:要求对
.github/**的更改审批 - 保护账单/秘密:阻止对
billing/**、secrets/**和.env*文件的所有更改
审批工作流
当策略要求审批时:
- 智能体的操作被捕获并安全存储
- 任务出现在工作区 收件箱 → 审批 队列中
- 授权审核员(拥有审批者角色的成员)看到操作摘要和更改预览
- 审核员可以批准(操作继续)或拒绝(智能体被通知,不应用更改)
- 审批在 7 天后过期;过期请求被标记为
expired且必须重新提交
批准操作
要批准待处理操作:
- 打开 收件箱 → 审批
- 点击待处理操作看完整 diff 和上下文
- 点击批准继续,或拒绝拒绝
- 如果批准,智能体的队列化有效负载立即应用
- 如果拒绝,智能体被通知并可以调整方法
安全检查: 当你批准操作时,AACWorkflow 验证存储的有效负载自排队以来未被篡改。如果审批已过期或有效负载不匹配,审批被拒绝并显示错误。
策略效果
require_approval
当策略的效果是 require_approval 时:
- 智能体的操作被排队且不应用
- 拥有审批者角色的工作区成员收到审批请求
- 操作仅在明确批准后进行
- 对于保护重要配置或高风险更改很有用
deny
当策略的效果是 deny 时:
- 智能体的操作直接被拒绝
- 不创建审批请求
- 智能体被通知拒绝原因
- 对于绝对黑名单很有用(例如秘密或凭证)
最佳实践
- 从保守开始 ——为 CI/CD 和秘密启用模板,然后根据需要优化
- 谨慎使用路径通配符 ——
**/billing/**太宽泛;偏好billing/pricing.json或类似的 - 设置清晰的优先级 ——避免当多个策略可能应用时的混淆
- 定期审核拒绝 ——如果智能体经常触发 deny 策略,考虑规则是否需要调整
- 向团队沟通 ——确保 squad 领导知道哪些路径需要审批