OpenClaw 审批升级与人工干预流程
凌晨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清理任务-删除过期备份"
}
最佳实践
- 默认最小权限——宁可多问一次,也不要炸一次
- 审批信息要完整——不要让用户猜"这个命令干了啥"
- 设置合理的超时——既不阻塞流程,也不无限等待
- 自动审批要保守——95%置信度以上的低风险操作才自动通过
- 定期审查策略——随着Agent能力增长,调整审批边界