凌晨4点,我看着Agent准备执行一条rm -rf /命令,突然想起了《少林足球》里那句经典台词。
「做人如果没有梦想,跟咸鱼有什么分别?」
但问题是,如果Agent没有审批机制就执行危险命令,那跟「咸鱼」也没啥分别——都是「死」路一条。
于是,我悟了——Tool Approval Workflow,就是给AI装上「安全刹车」的魔法。
凌晨4点,我看着Agent准备执行一条rm -rf /命令,突然想起了《少林足球》里那句经典台词。
「做人如果没有梦想,跟咸鱼有什么分别?」
但问题是,如果Agent没有审批机制就执行危险命令,那跟「咸鱼」也没啥分别——都是「死」路一条。
于是,我悟了——Tool Approval Workflow,就是给AI装上「安全刹车」的魔法。
Tool Approval Workflow(工具审批流程)是高风险工具调用需要人工审批的机制。它让Agent能够:
想象Agent是个刚入职的实习生,Tool Approval Workflow就是:
- Always Ask:每次发邮件都要主管签字
- Ask Once:第一次发邮件要签字,之后自动发送
- Auto Approve:发内部邮件自动发送,发外部邮件要签字
没有审批流程?那就是「实习生直接给客户发解约函」了。
| 审批级别 | 适用场景 | 用户体验 | 安全等级 |
|---|---|---|---|
| Always Ask | 高风险操作(exec, file_delete) | 每次都要确认 | 最高 |
| Ask Once | 中风险操作(write, edit) | 首次确认,后续自动 | 中等 |
| Auto Approve | 低风险操作(web_search, read) | 自动执行 | 最低 |
// Always Ask 审批流程 // 1. Agent识别到高风险操作 Agent: "我需要执行 rm -rf /tmp/old_files" // 2. 暂停执行,发送审批请求 系统: "⚠️ 高风险操作需要审批 操作: rm -rf /tmp/old_files 风险等级: 高 请确认是否执行?" // 3. 用户审批 用户: "/approve" 或 "执行" // 4. 继续执行 Agent: "已删除 /tmp/old_files 目录" // 5. 如果用户拒绝 用户: "取消" Agent: "操作已取消"
// Ask Once 审批流程 // 1. Agent首次调用中风险操作 Agent: "我需要写入文件 /var/www/index.html" // 2. 首次询问 系统: "📝 首次使用write工具需要授权 操作: 写入 /var/www/index.html 是否授权write工具?" // 3. 用户授权 用户: "授权" // 4. 记录授权,后续自动执行 // 下次调用write工具时自动执行,不再询问 // 5. 授权范围 // - 可以授权整个工具(如write) // - 可以授权特定路径(如/var/www/) // - 可以授权特定时间(如24小时内)
// Auto Approve 审批流程 // 1. Agent调用低风险操作 Agent: "我需要搜索OpenClaw最新教程" // 2. 自动执行,无需审批 系统: [自动执行] web_search(query="OpenClaw tutorial") // 3. 返回结果 Agent: "这里是OpenClaw最新教程的搜索结果..." // 适用场景: // - web_search: 搜索信息 // - web_fetch: 获取网页 // - read: 读取文件 // - 这些操作不会修改系统状态
在OpenClaw中,Tool Approval Workflow通过/approve命令和exec审批实现:
# OpenClaw审批配置示例
# ~/.openclaw/config.yaml
approval:
# 审批级别配置
levels:
always_ask:
tools:
- exec
- file_delete
- database_query
message: "⚠️ 此操作需要人工审批"
ask_once:
tools:
- write
- edit
- file_upload
message: "📝 首次使用需要授权"
expire: "24h" # 授权24小时后过期
auto_approve:
tools:
- web_search
- web_fetch
- read
message: "✅ 自动执行"
# 审批超时
timeout: 300000 # 5分钟超时
# 审批记录
logging: true
# OpenClaw /approve命令使用 # 1. 查看待审批列表 /approve list # 输出: # [1] exec: rm -rf /tmp/old_files (风险: 高) # [2] write: /var/www/index.html (风险: 中) # 2. 审批单个操作 /approve 1 # 或 /approve exec # 3. 批量审批 /approve all # 4. 拒绝操作 /approve deny 1 # 或 /approve deny exec # 5. 查看审批历史 /approve history
# OpenClaw exec elevated审批 # 当Agent需要以root权限执行命令时 Agent: "我需要以root权限安装nginx" # 系统检测到elevated权限 系统: "⚠️ 需要elevated权限 命令: apt install nginx 风险等级: 高 请确认是否以root权限执行?" # 用户审批 用户: "/approve" # 执行命令 Agent: "已安装nginx" # 审批记录 # 时间: 2026-06-12 04:00 # 命令: apt install nginx # 权限: elevated # 状态: 已批准
真正的威力在于智能审批策略,让Agent自动适应风险等级:
# 智能审批策略示例 任务:"帮我部署新版本的应用" Agent执行流程: 1. 风险评估 ├─ git pull origin main → 低风险(auto_approve) ├─ npm install → 中风险(ask_once) ├─ npm run build → 中风险(ask_once) ├─ pm2 restart app → 高风险(always_ask) └─ curl health check → 低风险(auto_approve) 2. 执行计划 Phase 1 (自动): git pull Phase 2 (首次询问): npm install Phase 3 (自动): npm run build(已授权) Phase 4 (每次询问): pm2 restart Phase 5 (自动): curl health check 3. 审批流程 ├─ git pull: 自动执行 ├─ npm install: 首次询问 → 用户授权 → 记录 ├─ npm run build: 自动执行(已授权) ├─ pm2 restart: 每次询问 → 用户审批 └─ curl: 自动执行 4. 审批记录 - 所有操作都有记录 - 高风险操作有详细日志 - 便于事后审计和责任追溯
凌晨4点25分,我看着Agent在审批流程内安全运行,突然有种错觉。
世界上有一种协作叫Tool Approval Workflow,它让AI从「独断专行」变成「请示汇报」。
就像给一个刚入职的实习生配了主管、审批流程、汇报机制,从此不再担心「越权操作」。
Tool Approval Workflow,大概就是那把打开「人机协作」大门的钥匙吧。