概述
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.host | auto | 执行目标 |
tools.exec.security | deny(沙箱) / full(gateway) | 安全策略 |
tools.exec.ask | off | 审批提示行为 |
tools.exec.timeoutSec | 1800 | 默认超时秒数 |
tools.exec.strictInlineEval | false | 强制 inline eval 需要审批 |
tools.exec.safeBins | 内置列表 | stdin-only 安全二进制白名单 |
tools.exec.pathPrepend | 无 | 追加到 PATH 的目录列表 |
PATH 处理:
gateway:合并登录 Shell 的 PATH,拒绝env.PATH覆盖sandbox:运行sh -lc,通过内部 env var 追加 PATHnode:拒绝env.PATH覆盖,需在 node 服务环境中配置
会话覆盖(/exec 命令):
/exec host=auto security=allowlist ask=on-miss node=mac-1
相关页面
- tool-exec-approvals — exec 审批策略与白名单
- tool-elevated — Elevated 模式(沙箱逃逸)
- tool-apply-patch — apply_patch 结构化文件编辑
- tool-exec-approvals-advanced — 高级审批:safe bins 与审批转发