概述

exec 是 OpenClaw 的 Shell 命令执行工具,允许 Agent 在工作区运行任意 Shell 命令。它是一个可变操作的 Shell 接口,命令可以创建、编辑或删除文件。支持前台和后台执行,通过 process 子工具管理后台会话。

核心功能

  • 多主机执行:支持 sandbox、gateway、node 三种执行目标,默认 auto(有沙箱时用沙箱,否则用 gateway)
  • 后台执行:通过 yieldMs 或 background=true 将命令转为后台任务,配合 process 工具管理
  • PTY 支持:pty=true 在伪终端中运行,适用于 TTY-only CLI 和终端 UI
  • 超时控制:timeout 参数覆盖全局 tools.exec.timeoutSec(默认 1800 秒),timeout: 0 禁用超时
  • Elevated 模式:elevated=true 可让沙箱 Agent 突破沙箱在宿主机执行
  • apply_patch 子工具:结构化多文件编辑,默认对 OpenAI/Codex 模型启用

配置/权限

配置项默认值说明
tools.exec.hostauto执行目标
tools.exec.securitydeny(沙箱) / full(gateway)安全策略
tools.exec.askoff审批提示行为
tools.exec.timeoutSec1800默认超时秒数
tools.exec.strictInlineEvalfalse强制 inline eval 需要审批
tools.exec.safeBins内置列表stdin-only 安全二进制白名单
tools.exec.pathPrepend无追加到 PATH 的目录列表

PATH 处理:

  • gateway:合并登录 Shell 的 PATH,拒绝 env.PATH 覆盖
  • sandbox:运行 sh -lc,通过内部 env var 追加 PATH
  • node:拒绝 env.PATH 覆盖,需在 node 服务环境中配置

会话覆盖(/exec 命令):

/exec host=auto security=allowlist ask=on-miss node=mac-1

相关页面