2026年OpenClaw Exec 工具用法、stdin 模式和 TTY 支持

OpenClaw Exec 工具用法、stdin 模式和 TTY 支持在工作区中运行 shell 命令 通过 process 支持前台和后台执行 如果 process 被禁用 exec 将同步运行并忽略 yieldMs background 后台会话按智能体隔离 process 只能看到同一智能体的会话 command 必填 workdir 默认为当前工作目录 env 键值对覆盖 yieldMs 默认 10000

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在工作区中运行 shell 命令。通过 process 支持前台和后台执行。 如果 process 被禁用,exec 将同步运行并忽略 yieldMs/background。 后台会话按智能体隔离;process 只能看到同一智能体的会话。

  • command(必填)
  • workdir(默认为当前工作目录)
  • env(键值对覆盖)
  • yieldMs(默认 10000):延迟后自动转入后台
  • background(布尔值):立即转入后台
  • timeout(秒,默认 1800):超时后终止
  • pty(布尔值):在可用时使用伪终端运行(仅限 TTY 的 CLI、编程智能体、终端 UI)
  • hostsandbox | gateway | node):执行位置
  • securitydeny | allowlist | full):gateway/node 的执行策略
  • askoff | on-miss | always):gateway/node 的审批提示
  • node(字符串):host=node 时的节点 id/名称
  • elevated(布尔值):请求提升模式(gateway 主机);仅当 elevated 解析为 full 时才强制 security=full

注意事项:

  • host 默认为 sandbox
  • 当沙箱隔离关闭时,elevated 会被忽略(exec 已在主机上运行)。
  • gateway/node 审批由 ~/.openclaw/exec-approvals.json 控制。
  • node 需要已配对的节点(配套应用或无头节点主机)。
  • 如果有多个可用节点,设置 exec.nodetools.exec.node 来选择一个。
  • 在非 Windows 主机上,exec 会使用已设置的 SHELL;如果 SHELLfish,它会优先从 PATH 中选择 bash(或 sh)以避免 fish 不兼容的脚本,如果两者都不存在则回退到 SHELL
  • 主机执行(gateway/node)会拒绝 env.PATH 和加载器覆盖(LD_*/DYLD_*),以防止二进制劫持或代码注入。
  • 重要提示:沙箱隔离默认关闭。如果沙箱隔离关闭,host=sandbox 将直接在 Gateway 网关主机上运行(无容器)且不需要审批。如需审批,请使用 host=gateway 运行并配置 exec 审批(或启用沙箱隔离)。

  • tools.exec.notifyOnExit(默认:true):为 true 时,后台 exec 会话在退出时会入队系统事件并请求心跳。
  • tools.exec.approvalRunningNoticeMs(默认:10000):当需要审批的 exec 运行时间超过此值时发出单次"运行中"通知(0 表示禁用)。
  • tools.exec.host(默认:sandbox
  • tools.exec.security(默认:sandbox 为 deny,gateway + node 未设置时为 allowlist
  • tools.exec.ask(默认:on-miss
  • tools.exec.node(默认:未设置)
  • tools.exec.pathPrepend:exec 运行时添加到 PATH 前面的目录列表。
  • tools.exec.safeBins:仅限 stdin 的安全二进制文件,无需显式白名单条目即可运行。

示例:

{ tools: { exec: { pathPrepend: ["~/bin", "/opt/oss/bin"], }, }, }

  • host=gateway:将你的登录 shell PATH 合并到 exec 环境中。主机执行时会拒绝 env.PATH 覆盖。守护进程本身仍使用最小 PATH 运行:
    • macOS:/opt/homebrew/bin/usr/local/bin/usr/bin/bin
    • Linux:/usr/local/bin/usr/bin/bin
  • host=sandbox:在容器内运行 sh -lc(登录 shell),因此 /etc/profile 可能会重置 PATH。OpenClaw 在 profile 加载后通过内部环境变量将 env.PATH 添加到前面(无 shell 插值);tools.exec.pathPrepend 在此也适用。
  • host=node:只有你传递的未被阻止的 env 覆盖会发送到节点。主机执行时会拒绝 env.PATH 覆盖。无头节点主机仅在 PATH 添加到节点主机 PATH 前面时才接受(不允许替换)。macOS 节点完全丢弃 PATH 覆盖。

按智能体绑定节点(在配置中使用智能体列表索引):

GPT plus 代充 只需 145openclaw config get agents.list openclaw config set agents.list[0].tools.exec.node "node-id-or-name"

控制 UI:Nodes 标签页包含一个小的"Exec 节点绑定"面板用于相同的设置。

使用 /exechostsecurityasknode 设置每会话默认值。 不带参数发送 /exec 可显示当前值。

示例:

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

/exec 仅对已授权发送者(渠道白名单/配对加 commands.useAccessGroups)生效。 它仅更新会话状态,不写入配置。要彻底禁用 exec,请通过工具策略拒绝它(tools.deny: ["exec"] 或按智能体配置)。除非你显式设置 security=fullask=off,否则主机审批仍然适用。

沙箱隔离的智能体可以要求在 exec 于 Gateway 网关或节点主机上运行前进行逐请求审批。 参阅 Exec 审批 了解策略、白名单和 UI 流程。

当需要审批时,exec 工具会立即返回 status: "approval-pending" 和审批 id。一旦被批准(或拒绝/超时),Gateway 网关会发出系统事件(Exec finished / Exec denied)。如果命令在 tools.exec.approvalRunningNoticeMs 之后仍在运行,会发出单次 Exec running 通知。

白名单执行仅匹配解析后的二进制路径(不匹配基本名称)。当 security=allowlist 时,仅当每个管道段都在白名单中或是安全二进制文件时,shell 命令才会自动允许。在白名单模式下,链式命令(;&&||)和重定向会被拒绝。

前台:

GPT plus 代充 只需 145{ "tool": "exec", "command": "ls -la" }

后台 + 轮询:

{"tool":"exec","command":"npm run build","yieldMs":1000} {"tool":"process","action":"poll","sessionId":" 
  
    
    
      "} 
    

发送按键(tmux 风格):

GPT plus 代充 只需 145{"tool":"process","action":"send-keys","sessionId":" 
  
    
    
      ","keys":["Enter"]} {"tool":"process","action":"send-keys","sessionId":" 
     
       ","keys":["C-c"]} {"tool":"process","action":"send-keys","sessionId":" 
      
        ","keys":["Up","Up","Enter"]} 
       
      
    

提交(仅发送 CR):

{ "tool": "process", "action": "submit", "sessionId": " 
  
    
    
      " } 
    

粘贴(默认带括号):

GPT plus 代充 只需 145{ "tool": "process", "action": "paste", "sessionId": " 
  
    
    
      ", "text": "line1 line2 " } 
    

apply_patchexec 的子工具,用于结构化多文件编辑。 需显式启用:

{ tools: {

GPT plus 代充 只需 145exec: { applyPatch: { enabled: true, allowModels: ["gpt-5.2"] }, }, 

}, }

注意事项:

  • 仅适用于 OpenAI/OpenAI Codex 模型。
  • 工具策略仍然适用;allow: [“exec”] 隐式允许 apply_patch
  • 配置位于 tools.exec.applyPatch 下。

小讯
上一篇 2026-03-20 08:38
下一篇 2026-03-20 08:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/244553.html