Exec工具允许在工作空间中运行shell命令,支持前台和后台执行模式。
概述
exec工具是OpenClaw的核心功能之一,允许代理执行shell命令来完成各种任务。它支持灵活的执行模式和安全控制。
主要参数
必需参数
command: 要执行的shell命令
可选参数
workdir: 工作目录env: 环境变量yieldMs: 轮询间隔(默认10000ms)background: 后台执行timeout: 超时时间(默认1800秒)pty: 使用伪终端host: 执行位置(sandbox/gateway/node)security: 安全级别(deny/allowlist/full)ask: 批准模式(off/on-miss/always)node: 节点标识符elevated: 提权执行
使用示例
前台执行
{
"tool": "exec",
"command": "ls -la"
}
后台执行并轮询
# 启动后台任务
{
"tool": "exec",
"command": "npm run build",
"yieldMs": 1000
}
# 轮询进程状态
{
"tool": "process",
"action": "poll",
"sessionId": ""
}
发送按键
{
"tool": "process",
"action": "send-keys",
"sessionId": "",
"keys": ["Enter"]
}
提交输入
{
"tool": "process",
"action": "submit",
"sessionId": ""
}
粘贴文本
{
"tool": "process",
"action": "paste",
"sessionId": "",
"text": "line1\\nline2\\n"
}
配置选项
{
"tools": {
"exec": {
"notifyOnExit": true,
"approvalRunningNoticeMs": 5000,
"host": "sandbox",
"security": "allowlist",
"ask": "on-miss",
"node": null,
"pathPrepend": [],
"safeBins": []
}
}
}
PATH处理
gateway: 合并登录shell的PATHsandbox: 使用sh -lcnode: 仅应用env覆盖
会话覆盖
通过 /exec 指令设置会话级别的覆盖(需要授权):
/exec host=gateway security=allowlist
Exec批准
Exec批准需要伴侣应用或节点主机设置。如果批准待定,返回 "approval-pending"。
白名单模式
白名单仅匹配已解析的二进制路径:
- 不支持基本名称匹配
- 拒绝命令链接(
;,&&,||) - 拒绝重定向操作
apply_patch子工具
apply_patch是一个实验性子工具,需要显式启用:
{
"tools": {
"exec": {
"applyPatch": {
"enabled": true
}
}
}
}
仅支持OpenAI/Codex模型。
安全考虑
安全警告
- 在生产环境中使用白名单模式
- 定期审查safeBins列表
- 避免在公共代理中启用full security
- 为敏感操作启用批准流程
进程管理
process工具操作
poll: 检查进程状态send-keys: 发送按键序列submit: 提交当前输入paste: 粘贴多行文本kill: 终止进程
使用场景
- 构建任务: 运行构建和编译命令
- 测试执行: 运行测试套件
- 部署操作: 执行部署脚本
- 系统管理: 系统维护和配置
- 数据处理: 批处理和数据转换
提示
Exec工具是OpenClaw最强大的功能之一,合理配置安全选项可以在保证安全的同时发挥最大效用。