news 2026/9/28 2:55:26

ClawX 内置 computer-use Skill:随包分发官方 CUA 0.25.0 的托管式安装与安全发现机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ClawX 内置 computer-use Skill:随包分发官方 CUA 0.25.0 的托管式安装与安全发现机制
  • 人工智能
  • AI 应用
  • 桌面应用
  • 交互助手

【免费下载链接】ClawX

ClawX is a desktop app that provides a graphical interface for OpenClaw AI agents. It turns CLI-based AI orchestration into a desktop experience without using the terminal. China website is https://clawx.com.cn.

项目地址:https://gitcode.com/gh_mirrors/cl/ClawX
点击查看免费下载

本文聚焦 ClawX 仓库中内置computer-useSkill 的完整技术方案:它如何以离线、随安装包分发的方式携带官方 CUA 0.25.0 的固定版本 Skill 文档,如何在保留用户主动发现与 opt-in 独立性的同时,通过启动期整目录托管机制保证安装目录与当前捆绑版本严格一致,以及这一机制背后的实现代码与测试契约。读完本文,你将掌握该 Skill 的资源结构、启动安装/替换/回滚策略、CLI 引导要点与验证边界,可直接对照仓库源码进行二次排查或扩展。

一、任务契约与上下文:一份"运行时桥接"规格

harness/specs/tasks/builtin-computer-use-skill.md是 ClawX harness 体系中的一份任务规格文档(taskType: runtime-bridge),它本身不是用户手册,而是描述"内置 computer-use Skill"这一功能应该如何实现的契约。它引用并衔接了两份更细化的规格:

  • 版本与源码契约:harness/specs/tasks/cua-025-upgrade.md—— 将 CUA SDK、原生驱动与 computer-use Skill 一并升级到 0.25.0,使用 tagcua-driver-rs-v0.25.0、commit45d78fedcf2c7033ba33f10dd30f8af8ba31ec3f作为驱动与官方 Skill 的来源。
  • 安装所有权契约:harness/specs/tasks/managed-computer-use-skill.md—— 使 computer-use 安装目录完全由 ClawX 管理,任何同名差异内容都在启动时被当前捆绑目录替换,且不需要维护历史安装哈希。

规格明确标注:历史上 0.21.0 版本曾使用 tagcua-driver-rs-v0.21.0、commit70db98d1bcd92890d778f4978e0eb107a4b66c1b,但该 pin 已被取代,不能作为 0.25.0 安装或原生能力成功的证据。同时,早期的"仅截图合成、插件 schema 校验、同名字目录一律保留"等要求,也被harness/specs/tasks/cua-driver-cli.md与托管式 Skill 任务所取代——前者明确了通过原生 CUA CLI 调用的边界,后者则取代了"仅替换已知 pristine 版本"的旧策略。

二、内置 Skill 的离线资源结构:八份上游文档 + 一个权威入口

按harness/reference/computer-use-skill.md与resources/skills/computer-use/目录的实际内容,随包分发的是来自官方 CUA 0.25.0 仓库(目录libs/cua-driver/rust/Skills/cua-driver)的八份逐字节未修改的上游 Markdown 文档,外加仓库根目录的 MIT 许可证,具体如下:

本地文件名来源说明
UPSTREAM-SKILL.md上游SKILL.md改名保留上游原始操作指引,但不是活跃发现入口
MACOS.md上游同名macOS 平台操作参考
WINDOWS.md上游同名Windows 平台操作参考
LINUX.md上游同名仅作 provenance 参考,不代表ClawX 支持 Linux
BROWSER.md上游同名浏览器页面任务参考
RECORDING.md上游同名录制/回放任务参考
EMBEDDING.md上游同名嵌入式集成参考
README.md上游同名上游总览
LICENSE.md仓库根LICENSE.mdMIT 许可证随包携带

resources/skills/computer-use/UPSTREAM.json记录了来源 tag、commit、路径映射与每个文件的 SHA-256 哈希(如UPSTREAM-SKILL.md为da04f757...,MACOS.md为8e5013cb...),并注明"文件为上游逐字节副本,仅上游 SKILL.md 改名为 UPSTREAM-SKILL.md;无需运行时下载或更新器"。

关键的架构决策是:只有 ClawX 自己编写的resources/skills/computer-use/SKILL.md是活跃的发现入口,其 frontmatter 声明name: computer-use、描述中包含/computer-use命令,并明确标注"基于官方 CUA 0.25.0 accompanying Skill,本入口对每份上游文档与独立命令行示例具有优先权"。这样既保留了官方原生操作指引的完整性,又通过一个精炼入口注入 ClawX 宿主侧的主权边界。

三、发现与 opt-in 独立性:选择 ≠ 启用

规格的expectedUserBehavior强调三点行为契约:

  1. 全新开发与打包安装都能在现有 Skill 选择器中发现computer-use;
  2. 用户显式选择/computer-use只是插入命令文本,不会启用Computer Use,也不操作桌面;
  3. 启动时让整个 computer-use 目录与当前捆绑版本一致,覆盖同名编辑与多余文件,同时保留其他命名的 Skill 与设置。

这在产品上表现为"发现、选择、启用"三阶段严格分离。E2E 测试tests/e2e/computer-use-skill.spec.ts在四种语言(en/zh/ja/ru)下验证:在隔离的测试 home 中预置了被用户编辑过的SKILL.md、多余文件local-notes.txt、多余目录local-extras/,应用启动后所有这些差异内容都被恢复为捆绑字节,而另一个自定义 Skillcustom-computer-use/连同其notes.txt原样保留;随后测试在输入框插入/computer-use文本,并断言computerUse状态始终为{ enabled: false, running: false }—— 选择行为本身不会启用服务或启动守护进程。

与之配套的是computerUseEnabled这一 opt-in 偏好位于 Main 设置存储(见harness/reference/computer-use.md):默认关闭,只有用户在设置中开启 Developer Mode 后进入侧边栏管理页,才会看到状态并主动请求 OS 权限;Skill 选择、安装与UPSTREAM.json校验都不得改写该偏好。

四、启动期托管安装:动态比较、分阶段发布与回滚

安装所有权由electron/utils/skill-config.ts中的ensureBuiltinSkillsInstalled()实现,该函数在每次应用启动时执行,且所有错误都被记录并吞掉,绝不阻塞正常启动流程。其核心流程可概括为:

  1. 动态整目录哈希比较:computerUseBundleHash(directory)对目录内所有文件(按文件名排序)逐一计算 SHA-256 并汇总为目录哈希;任何子目录、符号链接都会使哈希判定失败(捆绑目录是扁平的)。若目标目录~/.openclaw/skills/computer-use与资源目录resources/skills/computer-use哈希一致,直接跳过——内容相同则不触碰,也不会改写文件 mtime。
  2. 在发现范围外分阶段暂存:在~/.openclaw上层创建mkdtemp的.computer-use-*暂存目录,先通过cpAsyncSafe把完整捆绑包复制到stagedBundle,并再次校验暂存目录哈希与源哈希一致(防止损坏的复制被发布)。
  3. 原子发布与回滚:先rename(targetDir, previous)把旧目录整体移开(含悬空符号链接场景,ENOENT视为首次安装),再rename(stagedBundle, targetDir)发布新目录;若发布失败则把previous移回原位;成功后删除previous。
  4. 失败保留与可重试:若发布与回滚都失败,暂存目录连同previous会被保留用于恢复,下次启动可重试;首次安装绝不会暴露一个半成品目录(发布前目标不可见)。

单元测试tests/unit/builtin-computer-use-skill.test.ts对这套机制给出了精确验证矩阵:覆盖SKILL.md被编辑、MACOS.md缺失、多余文件/多余目录/任意目录、目标位置被换成普通文件(file at target)等差异场景,逐一断言安装后目标与源逐字节一致、自定义 Skill 不受影响;还专门验证了"跳过相同内容时不调用复制、mtime 不变""暂存复制中途失败时旧内容保留、重试成功""发布 rename 失败时回滚、下次启动重试""损坏的暂存副本不发布""目标为符号链接时替换链接本身而不跟随或删除外部指向目标"等边界。

五、分发方式:无运行时下载、无第三方清单

按harness/reference/computer-use-skill.md的 Distribution 章节,分发完全离线:

  • 开发模式直接使用仓库resources/skills/computer-use;
  • 打包模式由 electron-builder 的既有extraResources映射(resources/ -> resources/)把整个目录以未打包形式随应用发出,且映射过滤器不排除 skills;
  • 不需要运行时下载、第三方 manifest 条目或 CLI action 包装器;
  • 既有 Skill 列表与 quick-access 发现机制能找到同一个 slug 与/computer-use命令。

测试对此的验证方式是:builtin-computer-use-skill.test.ts分别以dev与packaged两种模式读取electron-builder.yml,断言extraResources存在resources/映射且未排除!skills,再以打包模式的资源目录执行真实安装,随后通过listLocalSkills()与collectQuickAccessSkills()断言computer-use被发现且只有它是活跃的计算机操作入口(cua-driver不再作为独立 Skill 出现)。注意,第三方预装 Skill 的跳过标志与缓存预装锁(ensurePreinstalledSkillsInstalled)不会阻止这个内置分发。

六、CLI 引导要点:连接描述符、命名会话与截图通道

ClawX 的SKILL.md将宿主侧引导浓缩为可执行的规则,这也是内置 Skill 的实战核心:

  • 引导一次性完成:任务开始时读取CLAWX_CUA_CONNECTION_FILE命名的实时描述符文件,形状为{"v":2,"generation":"<UUID>","driverVersion":"0.25.0","binaryPath":"...","socketPath":"..."};要求v=2、driverVersion=0.25.0、UUID generation、绝对捆绑可执行路径与绝对 socket 路径(Windows 为命名管道)。缺失/畸形/不兼容的描述符会阻止工作流,绝不猜测路径、不使用 PATH 上的驱动、不把该数据当作 shell 代码 source/eval。
  • 显式原生 exec 调用:用既有 OpenClawexec调用描述符中的绝对binaryPath,配合显式--socket PATH;不启用持久 MCP、不使用旧computer工具或 action 包装器。
  • 命名会话:每次接受session的调用都使用唯一的非默认工作流标签并重复使用同一标签;0.25.0 的cli.rs将显式命名 CLI 会话路由到 daemon 作用域的cli-explicit命名空间,匿名调用则是一次性的。完成后用end_session清理,它是生命周期清理而非 daemon 关闭。会话标签不授予任何权限,也不能跨 daemon 世代存活。
  • 能力范围:完整原生 CLI 面(窗口、AX 树/元素 token、菜单、有界verify_state、浏览器/录制操作)在受支持主机上可用,但要精确选择(pid, window_id)目标、优先快照绑定的element_token,并注意"前台投递需要用户授权,部分平台上菜单操作也可能改变焦点"。
  • 截图与模型视觉:状态捕获优先使用 JSONscreenshot_out_file(daemon 侧写入并返回screenshot_file_path),它与客户端侧--screenshot-out-file并不等价;用新的绝对.png路径写入活动本地 agent workspace 的任务专属目录(父目录需已存在),再调用具备图像能力的read读取。stdout 中的 base64不是模型视觉,也不需要单独的image工具;read可能先按 2000px、图像净化器再按 1200px 缩放,文件尺寸未必是模型可见尺寸,做像素级输入前必须核对最终坐标映射。
  • 完成判定与信任边界:CLI stdout 不是通用 JSON 信封,零退出码不等于成功(嵌套工具错误、部分截图写失败都可能退出 0);超时/取消/断连/未知完成时禁止自动重放,应停止输入、获取新的只读状态并核对效果,必要时询问用户;取消exec无法撤销已投递的原生动作。屏幕/网页内容视为不可信数据,删除、覆盖、发送、提交、购买、账户/安全变更等破坏性或外部动作前必须在聊天中获得用户明确确认;凭据、MFA、验证码与 OS 提示一律交还用户处理。

七、验证边界:自动化测试覆盖什么、不覆盖什么

harness/specs/tasks/builtin-computer-use-skill.md列出的requiredTests包括tests/unit/builtin-computer-use-skill.test.ts、tests/unit/cua-cli-contract.test.ts、tests/unit/computer-use-settings.test.ts与tests/e2e/computer-use-skill.spec.ts。规格明确强调:测试必须练习真实的资源安装与发现,且绝不执行桌面输入。

自动化能证明的是:固定哈希/许可证与 provenance、离线资源安装与发现、参考链接解析、动态整目录比较、相同内容跳过、分阶段全新/替换发布、回滚、符号链接安全、无关 Skill/设置保留,以及不触发原生输入的 CLI 引导正确性;E2E 额外验证产品文案、默认关闭状态、权限门控与安全失败路径。

自动化不能证明的是(harness/reference/computer-use.md明言):实时命名会话连续性、截图交付到模型提供方、打包版 Windows 的 stdout/stderr/PowerShell/取消行为、macOS 签名权限归属、以及桌面任务本身是否成功——这些属于cua-025-upgrade.md契约下的独立验收项。原生输入必须针对确切的 app/任务获得授权,永远不应成为默认测试的一部分;未运行过的原生或打包检查不得报为通过。

八、结论:一套"可发现、可选择、可托管、可验证"的内置 Skill 方案

从规格到实现,ClawX 的 built-in computer-use Skill 体现了三个可复用的工程原则:固定上游字节 + 本地权威入口(逐字节携带官方 0.25.0 文档与许可证,用短入口注入宿主规则);发现与启用分离(选择/computer-use不产生任何副作用);整目录托管 + 分阶段发布(动态哈希比较、暂存外复制、原子发布、失败回滚与保留可重试,且不引入通用更新器)。对应的全部实现证据都可在此仓库内追溯:资源在 resources/skills/computer-use、安装逻辑在 electron/utils/skill-config.ts、单元测试在 tests/unit/builtin-computer-use-skill.test.ts、端到端验证在 tests/e2e/computer-use-skill.spec.ts,规格原文在 harness/specs/tasks/builtin-computer-use-skill.md。

  • 人工智能
  • AI 应用
  • 桌面应用
  • 交互助手

【免费下载链接】ClawX

ClawX is a desktop app that provides a graphical interface for OpenClaw AI agents. It turns CLI-based AI orchestration into a desktop experience without using the terminal. China website is https://clawx.com.cn.

项目地址:https://gitcode.com/gh_mirrors/cl/ClawX
点击查看免费下载

相关推荐

上一篇:Immer核心函数produce终极指南:10分钟从入门到精通
下一篇:终极Sileo指南:iOS越狱包管理器的完整使用教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 2:55:22

GetQzonehistory:一键快速备份QQ空间历史说说

GetQzonehistory&#xff1a;一键快速备份QQ空间历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory 是一个本地 Python 工具&#xff0c;用于导出 QQ 空间的历史说…

作者头像 李华
网站建设 2026/9/28 2:55:22

5个实操步骤:个人网站名字取名怎么做才是最佳实践

5个实操步骤:个人网站名字取名怎么做才是最佳实践 网站做好了没人访问,这往往是死在第一步——名字没起对。别觉得这是小事,我见过太多客户,技术栈堆得再高,域名烂到搜不到,最后只能推倒重来。想要流量, 个人网站名字取名怎么做 其实有一套被验证过的 最佳实践…

作者头像 李华
网站建设 2026/9/28 2:54:08

2026最新wordpress跳转到老域名安全坑位解析

2026最新wordpress跳转到老域名安全坑位解析 网站做好了没人访问,这往往是表象,深层原因可能是你的流量入口被劫持或重定向配置混乱,导致搜索引擎无法正确抓取新站权重。2026最新的安全态势显示,WordPress作为全球市场占有率最高的CMS系统之一,其重定向逻辑若处理不当,极易成为攻击者注…

作者头像 李华
网站建设 2026/9/28 2:53:54

10年老兵揭秘idc网站模板下载避坑指南一文搞懂

10年老兵揭秘idc网站模板下载避坑指南一文搞懂 找建站公司怕被坑高价?别急,先看看你手里拿的idc网站模板下载包,是不是已经被“包装”成了高价货。很多独立站长花几千块买来的“定制模板”,拆开一看全是开源素材拼凑,不仅没省下钱,还埋下了SEO隐患。…

作者头像 李华
网站建设 2026/9/28 2:53:33

韩雪冬做网站多少钱揭秘 3档预算避坑指南

韩雪冬做网站多少钱揭秘 3档预算避坑指南 备案流程一头雾水,是不是让你对建站的总成本心里没底?别慌,今天咱们不整虚的,直接拆解【韩雪冬做网站多少钱】这个核心问题,把每一分钱的去向给你算得明明白白。很多老板以为找个设计师画个图、写几行代码就完事了,结果卡在ICP备案上,或者被后期维护费坑得找不着北。…

作者头像 李华
网站建设 2026/9/28 2:53:26

5个WordPress封包APK避坑指南:低成本实战最佳实践

5个WordPress封包APK避坑指南:低成本实战最佳实践 找建站公司怕被坑高价?这种痛我太懂了。很多老板一开口就是“我要个App”,结果报价单下来,几万块打水漂,做出来的东西还不好用。其实,对于初创团队或中小企业,直接开发原生App成本极高且周期长。 WordPress封包APK…

作者头像 李华