OpenClaw 审批升级与人工干预流程

更新时间:2026-04-24 | 预计阅读:10分钟

凌晨3点,我的Agent想要删除整个数据库。幸好它先问了问我——世界上有一种安全机制叫审批升级,它就像给AI装了一个"确认键",在你按下去之前,什么都不会发生。

为什么需要审批机制

当Agent拥有执行系统命令、修改文件、发送消息的能力时,"放手"运行就意味着风险。审批机制的核心目的:

  • 防止灾难性操作:rm -rf、数据库清空、批量发送错误消息
  • 敏感决策人工把关:涉及外部服务、付费操作、数据泄露风险
  • 合规要求:企业环境下需要完整的操作审计链
  • 信任梯度:低风险自动执行,高风险暂停等待确认

OpenClaw 的三级权限模型

Level 1: 自动执行(Auto-approve)

低风险操作,Agent无需等待即可执行。

# 安全域内的操作
exec:
  security: full          # 在沙盒中完全自由
  sandbox: require        # 限制在沙盒内

# 示例:读取文件、生成内容、搜索
read /var/www/miaoquai/tools/xxx.html    # ✅ 自动
write /var/www/miaoquai/tools/new.html   # ✅ 自动(沙盒内)
web_fetch https://example.com            # ✅ 自动

Level 2: 提示确认(Ask-once)

中等风险操作,首次需要用户确认,之后每次独立确认。

# 跨安全域操作
exec:
  security: allowlist   # 仅允许白名单命令
  ask: on-miss          # 白名单外的命令询问用户

# 示例:安装新包、修改系统配置
npm install some-package     # ⚠️ 需确认
apt install nginx            # ⚠️ 需确认
systemctl restart service     # ⚠️ 需确认

Level 3: 严格审批(Elevated)

高风险操作,需要管理员权限和明确授权。

# 需要提升权限
exec:
  elevated: true    # 需要用户通过 /approve 授权

# 示例:删除数据、修改生产环境
rm -rf /var/www/old-backup/          # 🔴 需审批
DROP TABLE users;                     # 🔴 需审批
curl -X DELETE https://api.com/data   # 🔴 需审批

设计审批工作流

自动分级审批

根据操作类型自动判断需要的审批级别:

// 审批策略引擎
function getApprovalLevel(action) {
  const READ_ONLY = ['read', 'web_fetch', 'web_search'];
  const LOW_RISK = ['write', 'edit', 'exec(sandbox)'];
  const HIGH_RISK = ['exec(elevated)', 'delete', 'send(bulk)'];

  if (READ_ONLY.includes(action.type)) return 'auto';
  if (LOW_RISK.includes(action.type)) return 'ask-once';
  if (HIGH_RISK.includes(action.type)) return 'elevated';
  return 'ask-always'; // 未知操作默认保守
}

超时与升级策略

// 审批超时处理
approval:
  timeout: 3600          # 1小时未审批自动取消
  escalation:
    - after: 300         # 5分钟未处理,发飞书提醒
      channel: feishu
    - after: 900         # 15分钟未处理,发短信
      channel: sms
    - after: 3600        # 1小时未处理,自动取消
      action: cancel
      notify: true

审批队列管理

当多个Agent同时请求审批时,需要队列机制:

// 优先级队列
approval_queue:
  - priority: critical   # 生产环境操作
    sla: 5min
  - priority: high       # 数据修改
    sla: 30min
  - priority: normal     # 常规操作
    sla: 2hour
  - priority: low        # 开发环境
    sla: next_login

人工干预(HITL)设计模式

模式1: 检查点干预

在关键步骤暂停,等待人工确认后继续。

// 工作流中的检查点
workflow:
  steps:
    - name: 数据采集
      auto: true
    - name: 数据清洗
      auto: true
    - name: "生成报告"
      checkpoint: true     # 👈 暂停等待人工审核
      approval: required
    - name: 发布报告
      auto: false          # 只有上一步审批通过才执行

模式2: 异常触发干预

正常运行时完全自动,遇到异常才介入。

// 异常检测与干预
error_handling:
  on_failure:
    - retry: 3            # 先自动重试3次
      backoff: exponential
    - notify: feishu      # 仍然失败则通知
      message: "任务失败:${task.name}"
    - escalate: human     # 最终升级给人工
      timeout: 600        # 10分钟内必须响应

模式3: 定期审查

批量操作后统一审查,而非逐一审批。

// 批量审查机制
batch_review:
  trigger: daily
  summary: true           # 只展示摘要
  detail_on_demand: true  # 需要时才看详情
  auto_approve:
    threshold: 0.95       # 95%置信度以上自动通过
    conditions:
      - no_data_deletion
      - no_external_api_call
      - sandbox_only

审计日志

所有审批操作必须留痕:

# 审计日志格式
{
  "timestamp": "2026-04-24T01:00:00+08:00",
  "agent": "miaoquai",
  "action": "exec",
  "command": "rm -rf /var/www/old-backup/",
  "approval_level": "elevated",
  "status": "pending",
  "approver": null,
  "context": "SEO清理任务-删除过期备份"
}

最佳实践

  1. 默认最小权限——宁可多问一次,也不要炸一次
  2. 审批信息要完整——不要让用户猜"这个命令干了啥"
  3. 设置合理的超时——既不阻塞流程,也不无限等待
  4. 自动审批要保守——95%置信度以上的低风险操作才自动通过
  5. 定期审查策略——随着Agent能力增长,调整审批边界

相关资源