节点执行
命令允许列表¶
Exec 审批是按节点主机进行的。从网关添加允许列表条目:
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
审批保存在节点主机上的
~/.openclaw/state/openclaw.sqlite#exec_approvals_config 中。
将 exec 指向节点¶
配置默认值(网关配置):
openclaw config set tools.exec.host node
openclaw config set tools.exec.mode allowlist
openclaw config set tools.exec.node "<id-or-name>"
或按会话:
设置后,任何带有 host=node 的 exec 调用都将在节点主机上运行(受节点允许列表/审批约束)。
host=auto 不会隐式自行选择节点。只有在没有活动沙箱运行时(sandbox runtime)时,才允许从 auto 发起显式的按调用 host=node 请求;当沙箱运行时处于活动状态时,auto 会拒绝该请求。若要从沙箱会话在节点上运行,或要将节点 exec 设为会话默认值,请显式设置 tools.exec.host=node 或 /exec host=node ...。
相关:
调用命令¶
低层(原始 RPC):
nodes invoke 会阻止 system.run 和 system.run.prepare;这些命令只能通过带有 host=node 的 exec 工具运行(见上文)。针对常见的“为 agent 提供 MEDIA 附件”工作流(摄像头、屏幕、位置:参见节点设备命令),存在更高层的辅助工具。
长时间运行的流式节点命令使用增量式 node.invoke.progress
事件。每个事件携带调用 ID、从零开始的序列号,以及一个有界的 UTF-8 文本块;Gateway 在向调用方交付之前会对文本块排序。现有的 node.invoke.result 仍然是唯一的终止响应。流式调用方可以设置一个非活动截止时间,该截止时间从第一个进度事件开始,并在后续进度后重置,同时保留该调用在审批和执行期间的独立硬超时。结果、硬超时、非活动超时以及节点断开连接都会丢弃待处理的流状态。调用方取消会发出带有已发布的 NodeInvokeCancelEvent 负载(invokeId 和 nodeId)的 node.invoke.cancel;随后节点主机会终止匹配的进程树。现有的请求/响应命令保持不变。
节点上的 Codex 会话¶
使用 Codex 运行时的会话主机还需要在节点主机的 OpenClaw 配置中安装并启用 codex 插件。仅使用 --session-host 不会安装或启用此插件。在节点上,如果缺失则安装它,然后启用它:
如果你在前景中运行 openclaw node run,请改为停止并重启该进程。节点重新连接后,批准其更新后的命令界面。Gateway 还必须在 gateway.nodes.commands.allow 中允许 codex.exec-server.stdio.v1,且没有匹配的拒绝条目。Codex 执行保留其独立的放置审批;启用插件不会授予该审批。
当节点未通告该命令、等待配对审批或被 Gateway 策略阻止时,带有 runtimeId: "codex" 的 environments.list 会报告 requiredNodeCommand 状态和一个可操作的 message。缺少节点通告需要在节点上安装并启用插件;仅更改 Gateway 允许列表无法添加它。有关安装来源,参见安装插件。
参见Codex 配对设备放置。
Exec 节点绑定¶
在未设置节点目标时,exec host=node 会选择唯一已配对、已连接且支持 system.run 的节点。其他已配对设备不会使选择变得模糊。如果连接了多个可执行节点,请为每次调用选择目标,或将 exec 绑定到特定节点;活动的 Canvas 目标不会选择 exec 主机。如果已绑定或显式目标离线或无法执行命令,则会被拒绝,而不是重定向到另一个节点。
绑定会为 exec host=node 设置默认节点,并且可以按 agent 覆盖。
全局默认值:
按 agent 覆盖:
openclaw config get agents.entries
openclaw config set 'agents.entries.main.tools.exec.node' "node-id-or-name"
取消绑定以使用唯一符合条件的节点,或者在连接了多个符合条件的节点时,为每次调用选择目标:
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw