AACWorkflow Docs

审批策略

定义工作区级别的审批策略以控制智能体操作,限制敏感文件的更改并在风险操作前要求审核。

审批策略是工作区级别的规则,控制何时智能体工作需要手动审核才能应用。它们将操作类型(如 pull request 或补丁)映射到审批要求,带有可选的基于路径的过滤来保护敏感文件和配置。

为什么需要审批策略

默认情况下,分配任务的智能体自主工作——它们创建 pull request、推送更改和开放新 issue,无需等待许可。审批策略让你在高风险操作中要求手动审核:

  • 保护 CI/CD 配置 ——要求审批任何智能体对 .github/ workflow 的修改
  • 阻止秘密变更 ——拒绝对 .envsecrets/ 或其他敏感路径的所有更改
  • 生产环境门控 ——要求管理员批准后再改动生产配置
  • 账单监督 ——审核对账单相关文件的任何更改

策略如何工作

每个策略定义:

  • 操作类型 ——它适用于哪些操作(例如 pull_requestpatch
  • 路径通配符 ——可选文件模式;空通配符匹配所有文件
  • 效果 ——要么 require_approval(排队审核),要么 deny(直接拒绝)
  • 审批者角色 ——谁有权限审批(默认:admin
  • 优先级 ——当多个策略匹配时,最高优先级获胜;deny 优于 require_approval

当智能体尝试操作时,策略引擎评估你工作区的所有启用策略。匹配的策略决定操作是被允许、排队审核,还是被拒绝。

匹配逻辑

策略匹配当:

  1. action_types 包含正在尝试的操作,
  2. 至少一个 path_globs 模式匹配了已更改的文件(或路径通配符为空)

如果没有策略匹配,操作默认被允许。如果多个策略匹配,最高优先级获胜。在优先级相同时,deny 优于 require_approval

创建和管理策略

策略在工作区 设置 → 审批策略 中管理(仅限管理员)。你可以:

  • 创建新策略 ——定义操作类型、路径模式、效果和审批者角色
  • 启用或禁用策略 ——切换而不删除
  • 设置优先级 ——控制当多个规则应用时哪个策略胜出
  • 使用模板 ——AACWorkflow 为常见情况提供可选的起始策略

默认模板

当你启用企业功能时,两个策略可作为起点:

  • 保护 CI/CD 配置:要求对 .github/** 的更改审批
  • 保护账单/秘密:阻止对 billing/**secrets/**.env* 文件的所有更改

审批工作流

当策略要求审批时:

  1. 智能体的操作被捕获并安全存储
  2. 任务出现在工作区 收件箱 → 审批 队列中
  3. 授权审核员(拥有审批者角色的成员)看到操作摘要和更改预览
  4. 审核员可以批准(操作继续)或拒绝(智能体被通知,不应用更改)
  5. 审批在 7 天后过期;过期请求被标记为 expired 且必须重新提交

批准操作

要批准待处理操作:

  1. 打开 收件箱 → 审批
  2. 点击待处理操作看完整 diff 和上下文
  3. 点击批准继续,或拒绝拒绝
  4. 如果批准,智能体的队列化有效负载立即应用
  5. 如果拒绝,智能体被通知并可以调整方法

安全检查: 当你批准操作时,AACWorkflow 验证存储的有效负载自排队以来未被篡改。如果审批已过期或有效负载不匹配,审批被拒绝并显示错误。

策略效果

require_approval

当策略的效果是 require_approval 时:

  • 智能体的操作被排队且不应用
  • 拥有审批者角色的工作区成员收到审批请求
  • 操作仅在明确批准后进行
  • 对于保护重要配置或高风险更改很有用

deny

当策略的效果是 deny 时:

  • 智能体的操作直接被拒绝
  • 不创建审批请求
  • 智能体被通知拒绝原因
  • 对于绝对黑名单很有用(例如秘密或凭证)

最佳实践

  • 从保守开始 ——为 CI/CD 和秘密启用模板,然后根据需要优化
  • 谨慎使用路径通配符 ——**/billing/** 太宽泛;偏好 billing/pricing.json 或类似的
  • 设置清晰的优先级 ——避免当多个策略可能应用时的混淆
  • 定期审核拒绝 ——如果智能体经常触发 deny 策略,考虑规则是否需要调整
  • 向团队沟通 ——确保 squad 领导知道哪些路径需要审批

下一步