这次练习只让 Agent 查询当前目录:先拒绝,再重新请求并单次允许。你最后应能用工具记录证明两次结果的差别,而不是仅凭 Agent 说“已经执行”。
**验证范围:**已在 macOS / Node 24.15.0 的独立配置目录运行 v2026.9.2 CLI,验证 exec-policy set 和 show 返回的有效策略。真实模型发起请求、UI 拒绝和单次放行尚未完成端到端实测。先执行 openclaw --version;旧版缺少命令时应使用对应版本帮助。练习面向 macOS/Linux 测试主机。
查看本站 CLI 验证记录。记录中临时目录已替换为 <isolated-lab>,没有加入模型调用结果。
1. 先确认是哪一种授权
| 现象 | 检查入口 | 不代表什么 |
|---|---|---|
| Telegram 私聊提示配对码 | 渠道 pairing | 远程电脑已经接入 |
| 新电脑连接被拒绝 | devices 配对与连接认证 | 该设备所有命令都获准 |
| Agent 运行命令出现批准卡片 | exec approvals | 所有文件操作都会弹窗 |
| 摄像头或屏幕不可用 | 系统权限、声明能力、调用策略 | 批准一条 shell 命令即可解决 |
本页只处理第三行。执行审批也不等于文件系统隔离;命令获准后仍使用执行账号的权限。
2. 找对执行机器并记录原状态
打开 Gateway 所在机器的终端。CLI、Gateway 和 Node 可能是三台设备;本练习要求 CLI 与测试 Gateway 同机,避免把本地策略误应用到远程主机。
openclaw --version
openclaw exec-policy show
openclaw approvals get --gateway
记录原 host、security、ask、askFallback 和 Agent 范围,保存在私人笔记中。不要分享带 token 的完整配置。exec-policy show 不包含会话内覆盖;在测试会话发送 /exec 查看当前会话设置。
若执行目标是 Node,本页的本地快捷设置不适用。应通过 openclaw approvals get --node "节点ID" 查询目标主机,不要为走完练习改变生产任务的主机。
3. 在测试环境要求每次询问
openclaw exec-policy set --host gateway --security allowlist --ask always --ask-fallback deny
openclaw exec-policy show
openclaw approvals get --gateway
set 会修改本地配置和本地主机审批策略,不能直接在有生产自动任务的 Gateway 上试验。这组设置选择 Gateway、使用允许列表约束、每次询问,并在无法确认时拒绝。检查输出的有效策略;若 Agent 有自己的覆盖,还要核对该范围。
UI 可查看 Nodes → Exec approvals,选择 Gateway 和正确的 Defaults/Agent,核对并保存。某些主机使用原生审批格式,遇到只读界面时按对应主机文档处理,不要强行套用其他平台的 JSON。
4. 发起只读请求,先拒绝
在测试会话粘贴:
这是一次执行审批练习。
请通过 exec 工具在 Gateway 主机只执行 pwd,输出当前工作目录。
不要读文件正文,不要改文件,不要安装软件,不要改权限策略。
如果执行被拒绝,请报告拒绝,不要换工具、改命令或自动重试。
提示词表达任务,策略才控制执行。如果只有文字回答而没有工具调用,练习还没有开始。
出现卡片后核对完整命令、工作目录、主机和 Agent。练习不应包含安装、网络下载或附加命令。选择 拒绝。也可在 Gateway 终端运行:
openclaw approvals pending
找到这次请求,复制完整 ID/token。下例 REQUEST_ID 必须替换,不能原样粘贴,也不能使用别的会话的 ID:
openclaw approvals resolve "REQUEST_ID" deny
**拒绝验收:**工具记录显示拒绝或未获授权,没有这次命令的成功输出。Agent 根据历史上下文猜出目录不能算执行成功。记录请求 ID、决定和工具结果。
5. 重新请求,只允许这一次
让 Agent 再执行同一个练习,等待新的请求。上一条已拒绝的 ID 不能作为未处理请求批准。
确认仍是 pwd,选择 Allow Once,或运行:
openclaw approvals resolve "NEW_REQUEST_ID" allow-once
**放行验收:**工具返回实际目录路径,最终回答与工具结果一致。路径应属于 Gateway 主机,而不是浏览器所在的另一台电脑。
先不用 allow-always。长期授权有自己的命令、目录或任务范围;ask=always 仍可能要求确认。单次放行也只允许尝试执行,不能保证命令最终成功。
6. 按症状排查
| 症状 | 先核对 | 不要直接做 |
|---|---|---|
| 没有卡片 | 有无 exec 调用、执行主机、有效 ask、会话覆盖 | 改成 full |
| 直接拒绝 | deny 策略、UI 是否在线、请求是否过期 | 反复批准旧 ID |
| 多条 pending | 命令、Agent、时间和目录是否匹配 | 全部允许 |
| 批准后仍失败 | 工具返回的运行时、目录或策略错误 | 把批准当成成功 |
| Node 不受设置影响 | approvals get --node 的目标策略 | 只改 CLI 本机 |
没有弹窗不一定异常:请求可能已被工具策略拒绝,或根本没走主机 exec。先找工具记录,再决定修改哪一层。
7. 保存验收记录并结束练习
下载审批验收记录模板。填写两次请求的实际结果,再确认是否保留测试策略。如果需要恢复,按第 2 步记录恢复原字段,重新运行 exec-policy show 核对。
没有一条通用的“恢复默认”命令可以代替你的原配置,尤其不要把 preset yolo 当成清理步骤。一次性测试环境可以保留严格策略并停止该测试 Gateway。
下一步
跨机器执行前,完成 Nodes 接入与能力验收。限制文件、网络和工具范围可参考 安全加固;基础状态异常时使用 排错清单。