Approval 与 Human Review Workflow
很多 Agent 系统出问题,不在推理阶段,而在动作执行阶段。
系统一旦开始:
- 发邮件
- 改数据
- 执行 SQL
- 提交工单
- 调用外部支付或审批接口
很快就会碰到一个问题:
哪些动作可以自动执行,哪些动作必须停下来给人看一眼。
这里讨论的就是这一层。
1. Approval 不是“多加一步确认”
Approval workflow 的作用,不只是弹一个确认框。
更准确地说,它要解决这些问题:
- 哪些动作需要人工介入
- 人工介入发生在动作前还是动作后
- 审批人看到什么上下文才够判断
- 审批后的结果怎样重新回到运行链里
- 被拒绝、修改、超时之后系统怎样继续
如果这些边界不清楚,人审通常只剩一个形式。
2. 哪些动作通常应该进入审批流
常见的高风险动作包括:
- 写操作
- 删除操作
- 对外发送消息
- 财务相关操作
- 法务、合规、权限变更
- 会影响客户、订单、合同、库存的动作
一个实用原则是:
能造成真实外部后果的动作,默认先考虑审批。
3. 审批流里最核心的三个判断
3.1 这一步是否可逆
如果动作不可逆,审批门槛通常会更高。
例如:
- 发出的外部邮件
- 已执行的转账
- 已删除的数据
- 已提交到第三方系统的结果
3.2 这一步是否超出当前权限边界
有些动作本身不危险,但一旦跨权限边界,就应该停下来。
例如:
- 访问敏感客户记录
- 批量导出数据
- 代表组织对外发言
- 触发生产环境变更
3.3 这一步是否需要业务判断
有些动作不是技术风险,而是业务责任问题。
例如:
- 是否真的应该给客户退款
- 是否要升级工单优先级
- 是否接受某个采购方案
这种情况下,审批不是为了拦模型,而是为了保留业务决策权。
4. 一个最小审批流长什么样
这条链里最关键的,不是“有没有审批”,而是审批点前后都要有清楚的状态转换。
5. 审批流里,人到底要看什么
审批人不需要看全部上下文,但至少要看到这些内容:
- 动作名称
- 关键参数
- 目标对象
- 为什么要做这件事
- 这一步来自哪段推理或哪条规则
- 可能的影响范围
- 是否可回滚
如果审批界面只显示“是否确认执行”,那通常不足以做出可靠判断。
6. 三种常见审批结果
6.1 approve
动作按原参数执行。
适合:
- 低争议动作
- 参数已经足够清楚
- 风险主要在权限,而不在业务判断