OpenClaw系列第12课:exec 工具详解 – 让 AI 真正执行命令
这是「OpenClaw 教程课程」第 12 课。 上一课我们讲了 Skills:它解决的是“这类任务应该怎么做”。这一课开始讲真正能落地执行的工具:exec。

图:exec 让 Agent 不只是回答命令应该怎么写,而是可以在合适权限下真正执行命令、读取结果、继续判断下一步。
很多人第一次用 AI 助手时,最自然的用法是:
“帮我看看这个命令怎么写。”
这当然有用。
但 OpenClaw 更进一步。
它不只是让 AI 告诉你命令,而是可以在你允许的范围内,直接通过 exec 工具执行命令,然后根据真实输出继续判断。
这就是 exec 最核心的价值:
让 Agent 从“会建议”变成“会动手”。
不过,exec 也正因为强,所以一定要理解它的边界和安全机制。
这一课我们就把它讲清楚。
一、exec 是什么?
exec 是 OpenClaw 里用于执行 shell 命令的工具。
你可以把它理解成:
Agent 手里的一扇终端窗口。
通过它,Agent 可以做很多真实操作,比如:
-
查看当前目录 -
检查文件是否存在 -
运行构建命令 -
执行测试 -
查看服务状态 -
用 grep/rg搜索代码 -
调用脚本 -
在允许的情况下管理本机或节点上的任务
例如你可以直接说:
帮我检查这个项目有没有 package.json,然后看看有哪些 npm scripts。
如果当前 Agent 有 exec 权限,它就可以真的运行类似:
lscat package.json
然后把结果读回来,而不是靠猜。
二、exec 和普通回答最大的区别
普通回答是“语言层面的推理”。
exec 是“环境里的动作”。
区别非常大。
普通回答更像这样
你问:
Linux 怎么查看磁盘空间?
AI 回答:
df -h
这只是告诉你命令。
exec 更像这样
你问:
帮我看看这台机器磁盘空间够不够。
Agent 可以实际执行:
df -h
然后根据真实输出告诉你:
-
哪个分区快满了 -
哪个目录可能需要清理 -
是否影响 OpenClaw 运行
所以 exec 的重点不是“会写命令”,而是:
可以用真实环境反馈来闭环任务。
这也是 Agent 能从聊天机器人变成操作助手的关键一步。
三、exec 最适合做哪些事?
exec 很适合用在这些场景:
1)检查环境状态
例如:
帮我看一下 OpenClaw 当前状态。
可能会用到:
openclaw statusopenclaw gateway status
这类任务特别适合 exec,因为状态是实时变化的,不能只靠记忆回答。
2)运行测试或构建
例如:
我刚改了代码,帮我跑一下测试。
可能会用到:
npm testpnpm testnpm run build
这类任务如果不实际执行,就只能“看起来像检查过”。
但用了 exec,Agent 可以拿到真实失败信息,再继续修。
3)搜索和整理项目文件
例如:
帮我找一下项目里哪里用到了 gateway status。
可能会用到:
rg "gateway status"
这比让模型凭上下文猜要可靠得多。
4)执行小脚本
例如:
帮我批量统计 articles 目录里每篇文章的标题。
可能会用到:
grep -R "^title:" articles
或者写一段临时脚本来处理。
5)启动长时间任务
例如:
帮我跑一次完整构建,如果时间长就后台执行。
这时候 exec 可以配合后台进程机制,后面再用 process 看进度。

图:exec 适合环境检查、测试构建、搜索文件、执行脚本、运行长任务等需要真实反馈的场景。
四、exec 的基本执行方式:前台运行
最简单的执行方式,就是前台运行。
也就是:
-
Agent 发起命令 -
OpenClaw 执行命令 -
命令结束后,把输出返回给 Agent -
Agent 根据输出继续回答
比如:
pwdls -la
这种短命令就很适合前台执行。
它的特点是:
-
简单 -
直接 -
适合很快结束的命令 -
输出会立刻进入当前对话上下文
但如果命令运行时间比较长,例如:
npm run build
或者:
pnpm test
那就不一定适合一直前台等着。
这时候就要理解后台执行。
五、长任务:exec 可以转入后台
OpenClaw 的 exec 支持后台执行。
文档里有两个常见参数:
-
yieldMs:命令运行超过多少毫秒后自动转后台 -
background:是否一开始就直接后台运行
你不需要在日常对话里手写这些参数,但你要知道背后的机制。
比如你让 Agent:
帮我跑构建,时间长的话后台跑。
它可以启动命令,短时间内如果没结束,就把任务放到后台。
后台执行时,OpenClaw 会返回一个后台 session id,后续可以用 process 工具继续查看。
这点很重要:
exec 负责启动命令,process 负责管理后台命令。
六、process 是 exec 的搭档
如果说 exec 是“启动命令”,那 process 就是“管理已经启动的命令”。
process 常见动作包括:
-
list:列出后台任务 -
poll:查看任务新输出和退出状态 -
log:读取任务日志 -
write:给进程发送 stdin -
send-keys:给 PTY 会话发送按键 -
kill:终止后台任务
一个典型流程是:
帮我跑 npm run build,如果没结束就后台执行。
然后后续你可以问:
刚才那个构建跑完了吗?
Agent 就可以用 process 去查。
这比让 Agent 每隔几秒死循环检查要好得多。
OpenClaw 文档里也明确强调:
对于已经开始的长任务,启动一次即可;需要状态、日志或人工干预时再用 process。不要用 sleep 循环或反复轮询来模拟定时任务。
如果你要“以后某个时间再做”,应该用后面课程会讲的 cron,而不是让 exec 跑一个 sleep 3600。

图:exec 用来启动命令;命令转入后台后,process 用来查看日志、发送输入或终止任务。
七、什么时候需要 pty?
exec 默认适合跑普通命令。
但有些命令需要一个真实终端环境,也就是 TTY。
例如:
-
交互式 CLI -
终端 UI -
某些 coding agent -
需要方向键、回车、Ctrl-C 的程序
这种情况下,exec 可以使用 pty: true。
你可以先简单理解成:
普通命令用默认 exec;像终端软件一样交互的命令,需要 PTY。
后续如果你看到 Agent 需要 send-keys、paste、submit 这些动作,通常就和 PTY 场景有关。
八、exec 在哪里执行?host 很关键
exec 不是抽象地“在云上执行”。
它一定会落到某个执行位置。
OpenClaw 文档里提到,host 常见取值包括:
-
auto -
sandbox -
gateway -
node
你可以先这样理解:
1)auto
默认策略。
如果当前会话启用了 sandbox,就在 sandbox 里跑;如果没有 sandbox,就在 gateway 上跑。
2)sandbox
在沙箱环境里跑。
更安全,但能访问的文件、命令、系统资源受限制。
3)gateway
在 Gateway 所在机器上跑。
这就接近真实主机环境了,所以更要注意审批和权限。
4)node
在已配对的节点上跑。
比如某台 macOS 节点、手机 companion 节点或其他 headless node host。
这里新手最容易误解的一点是:
host=auto不是“哪里都可以随便跑”,它只是一个默认路由策略。
如果启用了 sandbox,默认会优先待在 sandbox 里。
九、sandbox、tool policy、elevated:三个安全概念别混淆
学 exec 一定会碰到这三个词:
-
sandbox -
tool policy -
elevated
它们很容易混,但其实控制的是不同层面。
1)sandbox:决定在哪里跑
Sandbox 关心的是执行环境。
比如:
-
在容器里跑 -
在真实 gateway 主机上跑 -
是否能访问宿主机文件
它回答的问题是:
命令跑在哪里?
2)tool policy:决定能不能用这个工具
Tool policy 关心的是工具是否可用。
如果 exec 被工具策略禁用了,那就算你说 /exec 也没有用。
它回答的问题是:
Agent 有没有资格调用 exec?
3)elevated:sandbox 下的主机逃逸开关
Elevated 只影响 exec。
当 Agent 在 sandbox 里时,/elevated on 可以让 exec 跑到 sandbox 外面的配置目标上。
/elevated full 则是更强模式,会跳过 exec approvals。
所以 elevated 回答的是:
在 sandbox 场景下,要不要允许 exec 跑到外面?
记住这句话就不容易乱:
sandbox 管位置,tool policy 管工具,elevated 管 exec 是否能从沙箱出去。

图:exec 的安全控制不是一个开关,而是由 sandbox、tool policy、approvals、elevated 等多层共同决定。
十、exec approvals:为什么有时命令需要你批准?
因为 exec 能真的执行命令,所以 OpenClaw 提供了审批机制。
尤其是当 sandboxed agent 想在真实 host 上执行命令时,审批就很重要。
OpenClaw 的 exec approvals 可以控制:
-
哪些命令允许执行 -
哪些命令需要提示确认 -
哪些命令完全拒绝 -
是否允许一次 -
是否持久信任类似命令
文档里把安全模式分成几类:
security: deny
拒绝 host exec。
适合非常保守的环境。
security: allowlist
只允许白名单里的命令。
适合希望 Agent 能做一些固定动作,但不能随便执行命令的环境。
security: full
允许执行。
这就是很开放的模式,适合你完全信任当前环境和 Agent 行为时使用。
还有一个审批行为参数:
ask: off
不提示。
ask: on-miss
白名单没命中时才提示。
ask: always
每次都提示。
这套机制的意义很简单:
exec 的能力要强,但不能强到没有刹车。
十一、YOLO 模式是什么?
你可能会在文档里看到 YOLO mode。
它大概意思是:
不走审批,直接允许 host exec。
通常对应的是:
-
security=full -
ask=off
文档也提醒了一个重点:
YOLO 来自 host 执行策略,不是来自
host=auto。
也就是说:
-
host=auto只是决定默认跑在哪里 -
YOLO 是决定执行时要不要审批
新手不要把这两个混在一起。
如果你只是自己本地玩、环境可控,YOLO 会很方便。
但如果是服务器、多人环境、生产机器,我更建议先用保守策略:
-
sandbox 优先 -
必要命令 allowlist -
高风险命令 ask always
十二、一个实用建议:让 Agent 先查,再动手
使用 exec 时,我建议你养成一个习惯:
先让 Agent 查看状态,再让它修改。
例如不要一上来就说:
把没用的文件都删掉。
更好的说法是:
先帮我列出你认为可以清理的文件和原因,不要删除。等我确认后再执行。
这会安全很多。
再比如:
先检查当前 Git 状态和变更内容,不要提交,也不要改文件。
然后再根据结果决定下一步。
exec 本身不是危险的。
真正危险的是:
-
目标不清楚 -
范围不清楚 -
权限过大 -
没有确认就修改
所以使用 exec 的最佳心法是:
读操作大胆让它做,写操作让它先说明。
十三、适合新手的 exec 提问模板
你可以直接复制这些句式。
1)检查状态
帮我检查当前 OpenClaw 状态,只做只读命令,不要修改配置。
2)排查问题
帮我排查为什么服务没起来。先收集信息和日志,不要重启服务。
3)运行测试
帮我运行项目测试。如果失败,先总结失败原因,不要自动大改代码。
4)后台长任务
帮我运行构建。超过 10 秒还没结束就放到后台,后面告诉我怎么查看进度。
5)谨慎修改
先列出你准备执行的命令和风险,我确认后再执行会修改系统的命令。
这些说法的好处是,你把“权限边界”说清楚了。
Agent 就更容易按安全方式执行。
十四、常见坑
坑 1:把 exec 当成普通问答
如果你只是问:
怎么查看端口占用?
那 AI 可能只会回答命令。
如果你想让它真正检查,要说:
帮我实际检查当前机器的端口占用情况。
坑 2:长任务一直前台等
构建、测试、下载、扫描这类任务可能很久。
更好的方式是:
时间长就后台跑。
后面再让 Agent 用 process 查看。
坑 3:在 sandbox 里找不到宿主机文件
如果当前会话在 sandbox 中,能看到的文件不一定等于宿主机完整文件系统。
这不是 bug,而是安全边界。
遇到类似问题,可以先让 Agent 检查:
openclaw sandbox explain
它会显示当前 sandbox、工具策略和 elevated 相关状态。
坑 4:以为 /exec 可以突破工具禁用
不可以。
如果工具策略里禁用了 exec,/exec 不能强行恢复。
/exec 只是调整当前 session 的 exec 默认选项,例如 host、security、ask、node。
它不是万能授权。
坑 5:把 elevated 当成所有工具的提权
也不对。
Elevated 只影响 exec。
它不会让 browser、message、write 等其他工具自动拥有更高权限。
十五、这一课最值得记住的一句话
如果今天只记一句话,我建议你记这句:
exec 让 Agent 能在真实环境里执行命令;process 让 Agent 能管理长时间运行的命令。
再补一句安全原则:
读操作可以放开一点,写操作一定先明确范围和风险。
十六、总结
今天这节课,我们把 OpenClaw 的 exec 工具拆开讲了一遍:
-
exec 是让 Agent 执行 shell 命令的工具。 -
它最大的价值是基于真实环境反馈完成任务闭环。 -
短命令适合前台执行,长任务适合后台执行。 -
后台任务要配合 process 管理日志、状态、输入和终止。 -
host 决定命令跑在哪里:auto、sandbox、gateway、node。 -
sandbox、tool policy、elevated 是三层不同的安全概念。 -
exec approvals 用来给 host 执行加刹车。 -
使用 exec 时,先查再改,是最稳的习惯。
学会 exec 之后,你会发现 OpenClaw 的体验会明显变得不一样。
它不再只是“给建议的 AI”,而是可以变成一个能检查、能执行、能验证、能继续推进的操作伙伴。
下一课预告
下一课我们继续讲第三模块里的另一个强工具:
第 13 课:browser 工具——让 AI 操作网页
也就是:
-
AI 怎么打开网页 -
怎么点击、输入、截图 -
browser 和普通网页搜索有什么区别 -
哪些任务适合交给 browser,哪些不适合
🦞 本文由八条撰写,持续更新中。
夜雨聆风