在 macOS 上运行 OpenClaw 网关的团队,2026 年往往已经做好模型路由与 429 限流——但一个分类错误的工具仍可能删库、向客户 Slack 发帖,或以生产密钥执行 shell。 工具执行审批 与 人机协同门控 会在不可逆副作用发生前暂停破坏性调用,直到人工明确放行,并配合超时拒绝与可审计日志。本文说明如何给网关工具分级、在 ~/.openclaw/openclaw.json 中写审批策略,以及在提升 LaunchAgent 前于预发端口演练“挂起—批准—拒绝”。延伸阅读 doctor 诊断、JSON 与环境配置、staging/生产工作区、上游断路器,以及 模型故障转移(用于供应商降级,不能替代审批)。
你将得到威胁模型、策略矩阵模板、数字护栏(待审批最长 120 秒、超时拒绝、独立预发频道),以及可在租用 Apple Silicon Mac mini 上执行的上线清单——MacHTML 公开价约 16.9 美元/天。
为何需要执行审批
大模型善于说服,却不承担后果。网关一旦暴露 write、shell、browser 工具,一次幻觉路径就可能清空工作区、从 ~/.openclaw/.env 泄露 API Key,或向客户可见的 Slack 频道发帖。审批门在不可逆副作用之前插入人工决策;超时必须明确拒绝,避免机器人无声挂起。
审批不是反自动化,而是分级风控:只读可自动放行;写入、shell、浏览器等破坏性层级需在 Slack、Telegram 或 macOS 控制界面点选批准。把层级写进策略矩阵,让凌晨三点的值班无需翻源码。
Agent 工具威胁模型
从 LaunchAgent 用户在 macOS 上能做什么出发:读取其主目录下任意路径、写入 git 仓库、带环境变量调用 shell、用 Cookie 驱动浏览器。攻击面包括粘贴 HTML 的提示注入、被攻陷的频道 Webhook,以及把生产 .env 贴进预发对话。
为每类工具标注爆炸半径:read(信息泄露)、write(完整性破坏)、shell(主机沦陷)、browser(会话劫持)。能列出主目录的读取,若无路径白名单,应提升到与 write 相同的审批级。
按频道与工具的策略矩阵
| 工具类 | 默认模式 | 说明 |
|---|---|---|
| read / grep | 自动放行 | 无白名单时改为人审 |
| write / patch | 人工批准 | 在 Slack 线程展示 diff 预览 |
| shell | 始终批准 | 生产禁止自动放行 |
| browser | 批准 + 域名白名单 | 拦截 file:// 与内网 IP |
| 私信 / 私密频道 | 严于 #general | 默认更高敏感度 |
矩阵应贴在运行手册旁。产品要求“写入也自动批”时,必须指定负责人与下线日期,否则每次发布都会磨平门控。
openclaw.json 审批骨架
审批策略与模型路由一样放在 ~/.openclaw/openclaw.json,密钥在 ~/.openclaw/.env 并 chmod 600。结构上分工具类、频道覆盖与超时行为。
{
"tools": {
"approval": {
"default": "auto",
"classes": {
"read": "auto",
"write": "human",
"shell": "human",
"browser": "human"
},
"pendingTimeoutMs": 120000,
"onTimeout": "deny"
},
"channels": {
"slack:#ops-alerts": { "write": "auto" },
"slack:#customer-support": { "shell": "deny" }
}
}
}
字段名随版本变化——粘贴前请对照发行说明。改完后跑 openclaw doctor,并在预发对每类工具各触发一次挂起。
无生产风险的预发演练
把审批演练绑在预发网关端口与工作区配置上,绝不加载生产密钥。用固定提示词请求 shell 与 write,确认网关发出审批卡片且未批准前不执行。再测拒绝与超时——值班应看到“120 秒后拒绝”,而不是一直“思考中…”。
与 staging/生产 LaunchAgent 配套;勿在会签生产 plist 的笔记本上对客户库做破坏性审批。
doctor 检查与审计日志
每次改审批策略,把 openclaw doctor --json 附在变更单。确认审批中间件健康、频道 Webhook 可达、无崩溃遗留的 pending 队列。批准/拒绝事件带 correlation id,便于安全团队日后还原整轮对话。
若 doctor 报工具注册名不匹配,先修 JSON 再提升 LaunchAgent——对不存在的工具点批准只会训练值班“盲批”。
生产上线清单
- 导出
openclaw.json指纹(不含密钥)到 git 忽略目录。 - 为每个注册工具分级并更新策略矩阵 wiki。
- 在预发对 write、shell、browser 做挂起演练并截图存档。
- 生产启用人工审批,120 秒超时且拒绝。
- 监控 pending 深度,并发挂起 > 5 时告警。
- 文档化回滚:还原 JSON +
launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway。
常见问题
只读工具可以跳过审批吗?
有路径白名单时可以;宽泛列目录应提升审批级。
审批会让 Slack 变慢吗?
按轮合并;120 秒超时并返回明确拒绝文案。
如何不碰生产测试?
用预发配置与合成工具调用,勿在笔记本加载生产密钥。
通过 MacHTML 租用 Apple Silicon Mac mini,可在与高管相同的 WebKit、Keychain、Node 构建上练审批——不是 Linux 容器假装 macOS。节点提供 SSH 查看日志,GUI 批准按钮需要真实屏幕时用 VNC。空闲功耗常见 6–12 瓦,一周人机协同演练的成本往往低于一次 shell 误删发布分支。
公开价约 16.9 美元/天,比为审计背三年硬件折旧更划算;演练结束关机,策略矩阵仍留在文档里。
在真机 macOS 上演练 OpenClaw 工具审批
租用云 Mac mini,在生产 LaunchAgent 提升前验证人机协同门控、超时拒绝与 doctor 探针。