跳到主要内容
博客
返回博客

AI agent 审批流程:保持控制,又不陷入僵局

AI agent 审批流程是从拟议行动到执行之间的控制路径。有用的审批不是一个笼统的「继续」按钮。它要告诉审阅者:将会发生什么、针对哪个目标、涉及什么数据或成本、如何检查是否成功,以及行动必须在哪里停止。

把审批绑定到六个确切字段

  • 行动:具体操作——发布、发送、修改代码、部署、花钱,或运行付费研究。
  • 目标:账户、收件人、代码仓库、环境、受众或服务商资源。
  • 内容:正在审阅的确切文案、文件、补丁、查询、预算或配置。
  • 范围:允许的数量、权限、时长和副作用。
  • 成功检查:用来区分「已完成」与「只是尝试过」的证据。
  • 停止条件:结束执行的时间、成本、错误、歧义或信号。

使用一个可见的状态机

  1. 已提议:agent 准备一个有边界的行动,并解释为什么它现在重要。
  2. 审阅中:用户可以检查目标、内容、范围、验收标准和可能的副作用。
  3. 已修订或已拒绝:修改会关闭旧提案,并在合适时生成一个新版本。
  4. 已审批:同意被记录在所审阅的确切版本上。
  5. 执行中:专职 agent 只尝试已审批的范围,并报告暂停或失败。
  6. 已验证:服务商证据、测试输出、公开 URL 或其他明确的检查证明了结果。
  7. 已学习:在下一个提案之前,结果和信号回到项目上下文中。

示例:在审批前修订一张研究卡片

这个示例遵循 Soloop 当前的审批约定,但它是刻意构造的说明性示例,而不是声称的真实客户运行记录。它展示了一个含糊的提案如何变成一个确切、可审计的任务。

已提议 · v1

研究竞争对手,并建议我们应该开发什么。目标、来源边界、成本、验收标准和停止条件都缺失,所以这个版本不应被审批。

修订请求

把任务限定为一个指定的竞争对手和已批准的公开域名。要求注明日期的来源链接、反证、明确的未知项,以及一份交给决策的交接说明。禁止登录、购买、创建试用和联系对方。

已审批 · v2

审阅官方首页、文档、定价页和条款。成本:付费服务 $0。在需要身份验证时,或某个关键事实无法核实时停止。

执行记录

记录已审批的版本、执行者、时间戳、打开过的来源、无法访问的证据,以及是否触发了任何停止条件。没有这份记录,一次完成的搜索仍然只是一次尝试,而不是经过验证的完成。

已验证的结果

返回注明日期的证据台账,把观察与推断分开,并指出这项工作改变了创始人的哪一个具体决策。不要把二手研究转化为需求结论。

已学习

在提出下一个任务之前,把结果和最关键的未知项保存到项目中。之后的发布、邮件、代码、部署或花费行动,需要各自适用的审批边界。

按后果设置关卡,而不是按 agent 的积极程度

低风险、可逆的分析通常可以在轻量控制下进行。对外消息、公开帖子、代码修改、部署、账户连接、付费服务、数据库变更和花钱,都值得明确审阅。风险还取决于目标:编辑一份草稿,和以创始人的身份发布它,不是一回事。

把任务交给某个专职 agent,并不应自动批准该 agent 的对外行动。之后的卡片可以包含交接时还没有的真实收件人、文案、代码仓库、diff 或成本。

防止审批疲劳

  • 在最晚的安全时刻只问一次,此时审阅者能看到真实内容。
  • 只把风险、目标和停止条件都相同的行动归为一组。
  • 修订时展示变化的字段,而不是让用户把所有内容重读一遍。
  • 当所有权、身份验证或范围缺失时,使用「默认拒绝」的设置。
  • 把只读研究与付费服务和对外写入区分开。
  • 让用户可以暂停或拒绝,而不丢失提案的证据链。

保留一份能回答「发生了什么」的审计记录

Soloop 在研究、公开帖子、内测邮件、代码修改和部署上使用审批路径。它当前的公开边界很重要:X/Twitter 已通过 OAuth 上线;冷邮件处于 beta 阶段,需要 Gmail;Reddit 发布需手动完成;广告仅支持制定计划;代码在沙箱中运行。审批界面应描述实际的执行路径,而不是暗示某个计划中的渠道已经上线。

  • 谁提出了行动,谁审批了它?
  • 审阅的是哪个不可变版本和哪个目标?
  • 审批和执行分别发生在什么时候?
  • 使用了哪个服务商、账户、代码仓库或环境?
  • 什么证据证明了成功、失败或部分完成?
  • 产生了什么成本、产出、信号和后续决策?

一张实用的审阅卡片

  1. 目标:这个行动支持的决策或结果。
  2. 为什么是现在:让它成为下一步的证据。
  3. 确切的行动和目标:会改变什么、在哪里改变、使用哪个账户。
  4. 预览:最终文案、文件、diff、查询或预算。
  5. 验收与停止检查:如何判断完成和失败。
  6. 控制:审批、修订、拒绝或暂停。