Install
openclaw skills install jqopenclaw-node-invoker统一通过 Gateway 的 node.invoke 调用 JQOpenClawNode 能力(file.read、file.write、process.exec、process.manage、system.run、process.which、system.info、system.screenshot、system.notify、system.clipboard、system.input、node.selfUpdate)。当用户需要远程文件读写、文件移动/删除、目录创建/删除、进程管理(列表/搜索/终止)、远程进程执行、命令可执行性探测、系统信息采集、截图采集、系统弹窗、系统剪贴板读写、输入控制(鼠标/键盘)、节点自更新、节点命令可用性排查或修复 node.invoke 参数错误时使用。
openclaw skills install jqopenclaw-node-invokernodeId(用户给定优先)。node.describe 检查节点在线状态,并按“节点识别规则”确认是否为 JQOpenClawNode。node.invoke 请求。idempotencyKey(UUID)。node.describe 返回的 modelIdentifier、commands、displayName、nodeId。modelIdentifier 非空,且满足以下任一条件:
JQOpenClawNode。JQOpenClawNode 开头(如 JQOpenClawNode(Qt/C++))。modelIdentifier 为空时使用):
commands 同时包含:file.read、file.write、process.exec、process.manage、system.run、process.which、system.info、system.screenshot、system.notify、system.clipboard、system.input、node.selfUpdate。displayName 或 nodeId 包含 JQOpenClaw。modelIdentifier 明确存在但不匹配 JQOpenClawNode*,即使命令集合相似也不按本技能处理。nodeId 或修正节点 modelIdentifier 后再执行。file.readfile.writeprocess.execprocess.managesystem.runprocess.whichsystem.infosystem.screenshotsystem.notifysystem.clipboardsystem.inputnode.selfUpdatenode.invoke。params 必须是对象,字段类型严格匹配。node.invoke.request.payload.paramsJSON,且 paramsJSON 必须解析为对象。paramsJSON 缺失或 null 时按空对象处理;若存在但不是字符串、为空字符串、或解析后不是对象,按 INVALID_PARAMS 处理。file.write 必须显式传 allowWrite=true 才允许执行;未显式授权时应返回阻断提示。timeoutMs 需按任务复杂度设置:
file.read / file.write:5000-30000process.exec:5000-120000(detached=false 时生效)process.manage:5000-30000(kill 场景应确保 timeoutMs >= waitMs)system.run:5000-120000process.which:5000-15000system.info:30000system.screenshot:60000system.notify:5000-15000(仅参数校验与弹窗投递,弹窗异步展示)system.clipboard:5000-15000(读写系统剪贴板文本)system.input:5000-15000(仅参数校验与入队,动作异步执行)node.selfUpdate:30000-300000(下载+校验+脚本启动;成功后节点会退出重启)node.selfUpdate 时,md5 为必填(32 位十六进制);缺失或格式错误按 INVALID_PARAMS 处理。node.invoke.timeoutMs 可省略;若传入,必须为非负整数(毫秒),否则按 INVALID_PARAMS 处理。其中 0 视为立即超时。node.invoke.timeoutMs 会参与请求预算裁剪;当前节点会将 system.run.params.timeoutMs、process.exec.params.timeoutMs(detached=false)与 file.read(operation=rg) 的内部超时裁剪到该预算内(取更小值)。node.invoke.timeoutMs,网关/调用端仍有等待超时(当前 OpenClaw 常见默认约 30000ms,CLI openclaw nodes invoke 默认 15000ms)。node.invoke.timeoutMs(若传入)、能力内部超时。process.manage 当前仅支持 Windows;非 Windows 环境调用会返回 PROCESS_MANAGE_FAILED。process.manage:
operation=list/search/kill,默认 list。search 必须提供 query(或 keyword)与 pid 之一。kill 必须提供 pid,可选 waitMs 范围 [0, 30000] 与 force(默认 true);force=false 为非强杀退出请求(仅对具有顶层窗口的进程生效);waitMs 当前不会被 node.invoke.timeoutMs 自动裁剪。kill 默认拒绝终止关键进程(critical process);仅当目标 PID 为当前节点进程时允许。process.exec 使用 program + arguments,支持 detached;用于兼容历史调用方。system.run 对齐 OpenClaw:仅使用 command(argv 数组)、rawCommand、cwd、env、timeoutMs、needsScreenRecording。process.which 支持 program(单个)或 programs(数组)探测;未命中返回 found=false,不作为命令失败。file.read 支持 operation=read/lines/list/rg/stat/md5。大文件建议使用 read + offsetBytes + maxBytes 分块读取(maxBytes 上限 2097152);按行区间读取使用 lines + startLine/endLine;目录遍历可用 list + recursive + glob;元信息查询使用 stat;文件指纹可用 md5。file.write 默认禁用;需显式 allowWrite=true。开启后默认 operation=write;移动用 operation=move(配 destinationPath/toPath);删除用 operation=delete(走回收站删除);目录创建用 operation=mkdir;目录删除用 operation=rmdir。command not allowlisted:
gateway.nodes.allowCommands(如 file.read、file.write、process.exec、process.manage、system.run、process.which、system.notify、system.clipboard、system.input、node.selfUpdate)。command not declared by node / node did not declare commands:
node.describe.commands。INVALID_PARAMS:参数缺失、类型不匹配或超出范围(含 file.read / file.write / process.exec / process.manage / system.run / process.which / system.notify / system.clipboard / system.input / node.selfUpdate 的参数校验失败,例如 node.selfUpdate 缺失必填 md5)。指出具体字段问题并给出可直接重试的参数。TIMEOUT:可能为网关等待超时,或显式传入 timeoutMs=0 触发立即超时。建议增大 timeoutMs 或缩小任务范围。FILE_READ_FAILED / FILE_WRITE_FAILED:用于非参数类失败。输出失败原因并给路径、权限、目录存在性、回收站可用性等排查建议。PROCESS_MANAGE_FAILED:用于非参数类失败(目标进程不存在、权限不足、非 Windows 平台、命中关键进程保护、终止或等待过程失败)。输出节点返回错误并给 PID、权限、平台和进程存活状态排查建议。PROCESS_EXEC_FAILED:用于 process.exec 的非参数类失败(程序不存在、权限不足、启动失败等无法产出结构化执行结果)。输出节点返回错误并给 program、workingDirectory、权限排查建议。SYSTEM_RUN_FAILED:用于 system.run 的非参数类失败(命令非法、程序不存在、权限不足、启动失败等无法产出结构化执行结果)。输出节点返回错误并给 command、cwd、权限、目标进程状态排查建议。PROCESS_WHICH_FAILED:用于非参数类失败(探测流程内部异常)。输出节点返回错误并建议重试或检查节点日志。SYSTEM_INFO_FAILED:系统信息采集失败。建议检查节点系统命令可用性与权限。SCREENSHOT_CAPTURE_FAILED / SCREENSHOT_UPLOAD_FAILED:截图采集或上传失败。建议检查显示环境、file-server-uri、file-server-token 与网络连通性。SYSTEM_INPUT_FAILED:system.input 投递或平台能力失败。建议检查平台是否为 Windows、线程池状态与节点日志。SYSTEM_NOTIFY_FAILED:system.notify 投递失败。建议检查应用实例状态与 UI 线程分发日志。SYSTEM_CLIPBOARD_FAILED:system.clipboard 执行失败。建议检查节点应用实例、图形环境与剪贴板访问能力。NODE_SELF_UPDATE_FAILED:node.selfUpdate 执行失败(下载失败、HTTP 状态异常、落盘失败、脚本启动失败等)。建议检查下载地址可达性、磁盘空间与杀毒拦截。NODE_SELF_UPDATE_MD5_MISMATCH:node.selfUpdate 下载成功但 MD5 校验不匹配。建议核对必填 md5 与发布包内容。COMMAND_NOT_SUPPORTED:改用已声明命令或升级节点版本。bytesWritten、exitCode、timedOut、url)。process.manage,优先展示 operation、pid、returnedCount/totalMatched、waitResult、resultClass 等字段。system.run / process.exec,若 timedOut=true 或 resultClass=timeout,按“命令超时”给出失败结论与重试建议(即使 node.invoke 本身返回成功结构)。error.code、error.message。file.write、process.exec、process.manage、system.run 与 process.which 默认按最小必要原则执行。system.notifymessage:必填字符串,非空,长度范围 [1, 4000]title:可选字符串,默认 JQOpenClaw,长度上限 120operation=notify、title、message、shown=true、async=true、ok=trueINVALID_PARAMSSYSTEM_NOTIFY_FAILEDsystem.clipboardoperation:可选字符串,read|write,默认 readtext:当 operation=write 时必填字符串operation=read):operation=read、text、length、hasText、ok=trueoperation=write):operation=write、written=true、length、hasText、ok=trueINVALID_PARAMSSYSTEM_CLIPBOARD_FAILEDsystem.inputnode.invoke 立即返回。keyboard.down / keyboard.up 尽量在同一请求内闭合配对,或优先使用 keyboard.tap。params.actions 必须为数组,长度 [1, 1000]typemouse.move、mouse.click、mouse.scroll、mouse.drag、keyboard.down、keyboard.up、keyboard.tap、keyboard.text、delaymouse.move.mode:absolute|relativemouse.click.button:left|rightmouse.scroll:delta 或 deltaY 二选一必填,可选 deltaXmouse.drag:mode=absolute|relative,可选 button=left|rightkeyboard.text.text:非空字符串delay.ms:[0, 60000]INVALID_PARAMSSYSTEM_INPUT_FAILED