Exec 主机重构计划

目标

  • 添加 exec.host + exec.security 将执行路由到 sandboxgatewaynode
  • 默认安全:不显式启用不做跨主机执行。
  • 将执行拆分为无头运行器服务,可选 UI(macOS 应用)通过本地 IPC。
  • 提供按 agent 的策略、白名单、ask 模式和节点绑定。
  • 支持与白名单配合或独立使用的 ask 模式
  • 跨平台:Unix socket + token 认证。

关键概念

  • Hostsandbox(Docker 执行)、gateway(在 gateway 主机上执行)、node(通过 Bridge 在节点运行器上执行)。
  • 安全模式deny(总是拒绝)、allowlist(只允许匹配)、full(允许所有,等同 elevated)。
  • Ask 模式off(从不询问)、on-miss(白名单未匹配时询问)、always(每次都问)。Ask 与白名单独立

默认安全

  • 默认 exec.host = sandbox
  • gateway 和 node 默认 exec.security = deny
  • 默认 exec.ask = on-miss

配置界面

工具参数和全局/按 agent 的配置 key 控制 host、security、ask 和 node 绑定。/elevated on = 设置 host=gateway, security=full

审批存储

路径:~/.openclaw/exec-approvals.json(JSON,无遗留迁移)。存储本地策略 + 白名单、ask 回退和 IPC 凭证。

运行器服务(无头)

作为 launchd/systemd 服务运行,在本地强制 security + ask 策略,执行系统命令并返回输出。UI 通过本地 Unix socket 连接做审批提示。

实现阶段

  1. 配置 + exec 路由
  2. 审批存储 + gateway 强制
  3. 节点运行器强制
  4. 事件
  5. UI 打磨

相关文档:Exec 工具Exec 审批节点Elevated 模式