当前位置: 首页 > news >正文

Openclaw Windows 部署指南:解决 PowerShell 策略与 Node.js ESM 兼容性问题

1. 为什么“小龙虾”(Openclaw)在 Windows 上部署总卡在第一步?

“Openclaw”这个名字刚出来时,我第一反应是——又一个带点戏谑感的开源项目代号。但翻完 GitHub 仓库、Discord 频道和早期用户反馈后,我确认了:这不是玩具,而是一个面向中文开发者、聚焦本地化智能体工作流编排与技能插件化管理的轻量级运行时框架。它不追求大模型推理能力,而是专注解决“我写好了一个 Python 脚本/一个 HTTP 接口/一个本地数据库查询逻辑,怎么快速把它变成 AI 可调用的 Skill?”这个真实痛点。

关键词里反复出现的npm : 无法加载文件 c:\program files\nodejs\npm.ps1, 因为在此系统上禁止运行脚本,就是绝大多数人卡死在 Day 1 的真实写照。这不是 Openclaw 的 bug,而是 Windows PowerShell 默认执行策略(Execution Policy)对.ps1脚本的硬性拦截。Node.js 安装包自带的npm.ps1就是 PowerShell 版本的 npm 入口,而 Windows 出厂默认设为Restricted—— 连系统管理员都无权直接运行,除非你主动改策略。

更隐蔽的问题在于:Openclaw 的核心依赖链里,有至少 3 个模块(@openclaw/core,openclaw-skill-loader,node-fetch@3.x)对 Node.js 的ESM 模块解析机制--experimental-loader标志有强依赖。这意味着它天然排斥 Node.js v16 之前的版本,也对 v20+ 的某些构建变体(比如官方二进制 vs. nvm-windows 安装的版本)存在兼容性毛刺。网上那些“下载 Node.js 官网安装包 → 下一步 → npm install”三步走教程,在 Openclaw 场景下,失败率超过 70%。

我实测过 12 种常见组合:

  • Node.js v18.20.2 + PowerShell 策略未改 →npm.ps1报错,卡住;
  • Node.js v20.12.2 + CMD 环境 →npm install成功,但openclaw dev启动时报ERR_MODULE_NOT_FOUND
  • Node.js v22.10.0 + nvm-windows 切换 →npm install卡在node-gyp rebuild,因为缺少 Python 3.11 和 VS Build Tools;
  • Docker Desktop for Windows + WSL2 →docker build成功,但容器内openclaw命令找不到,因PATH未正确注入。

所以,“保姆级”不是指手把手点鼠标,而是要带你看清每一步背后的操作系统约束、Node.js 运行时契约、以及 Openclaw 自身的模块加载契约。这三重契约一旦错位,就会表现为“命令不存在”“模块加载失败”“端口被占用却查不到进程”这类玄学问题。接下来,我会把这三重契约拆开,一层层铺平。

提示:本文所有操作均基于 Windows 11 23H2(Build 22631)和 Windows 10 22H2(Build 19045)实测验证。旧版 Windows 7/8.1 因 PowerShell 版本过低、.NET Framework 缺失,已明确不支持 Openclaw,无需尝试。

2. 执行策略不是“安全漏洞”,而是 PowerShell 的信任门禁

PowerShell 的 Execution Policy(执行策略)常被误解为“Windows 安全设置”,其实它更像一道信任门禁:它不阻止你运行脚本,而是要求你明确声明“我信任这个脚本的来源”。Restricted是最严模式,连你自己写的hello.ps1都不能双击运行;RemoteSigned是生产环境推荐模式,允许本地脚本无条件运行,只对从网络下载的脚本要求数字签名;Unrestricted则完全放开,但会弹窗警告——这恰恰是 Openclaw 部署中最不该选的模式。

为什么?因为npm.ps1是 Node.js 官方安装包自带的、经过微软代码签名认证的脚本。它需要的是RemoteSigned,而不是Unrestricted。后者看似一劳永逸,实则埋下两个隐患:

  1. 未来某天你误点了一个恶意.ps1文件,系统不再弹窗提醒;
  2. 某些企业域策略(Group Policy)会强制覆盖用户设置,Unrestricted可能被后台静默重置,导致你前一天还能跑的环境,第二天突然报错。

正确的解法,是用管理员权限打开 PowerShell,执行一条精准命令:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

注意三个关键点:

  • -Scope CurrentUser:仅修改当前登录用户的策略,不影响系统其他账户,也不触碰管理员全局策略;
  • RemoteSigned:满足npm.ps1运行需求,同时保留安全水位;
  • 必须用 PowerShell(非 CMD 或 Git Bash):因为只有 PowerShell 解析并应用 Execution Policy。

执行后,系统会提示:“更改执行策略可能使您暴露于安全风险……是否要更改执行策略?[Y] 是 [N] 否”。输入Y回车即可。验证是否生效,运行:

Get-ExecutionPolicy -Scope CurrentUser

返回值应为RemoteSigned。此时再打开一个新的 PowerShell 窗口(重要!旧窗口缓存旧策略),输入npm -v,应该能正常输出版本号(如10.8.2)。

注意:如果你用的是 Windows Terminal 或 VS Code 的集成终端,请确保其默认 shell 是 PowerShell,而非 CMD 或 PowerShell Core(pwsh)。在 VS Code 中,按Ctrl+Shift+P→ 输入 “Terminal: Select Default Profile” → 选择 “PowerShell” 即可。CMD 终端永远无法绕过.ps1限制,这是底层设计决定的。

3. Node.js 版本不是“越高越好”,而是要匹配 Openclaw 的 ESM 加载器契约

Openclaw 的package.json中明确标注了"engines": {"node": ">=20.10.0"}。但这只是最低门槛,不是最优解。我对比了 Node.js v20.12.2、v21.7.3、v22.10.0 三个主流 LTS/Current 版本在 Openclaw 启动时的表现,发现一个关键差异:ESM Loader 的稳定性

Openclaw 的启动入口bin/openclaw.js是一个典型的 ESM 文件(以import开头),它依赖 Node.js 的--loader参数动态注入自定义模块解析逻辑。而 Node.js v20 的--loader实现存在一个已知缺陷:当 loader 脚本中使用import.meta.resolve()解析路径时,会错误地将相对路径解析为file://协议下的绝对路径,导致后续fs.readFile()读取失败。这个问题在 v21.7.0 中被修复,并在 v22.x 中彻底稳定。

因此,盲目安装最新版 Node.js(如 v24.x)反而会踩坑。截至 2024 年 10 月,v22.10.0 是目前 Openclaw 在 Windows 上最稳的版本。它既避开了 v20 的 loader bug,又没引入 v24 的实验性 API(如WebAssembly.instantiateStreaming的变更)。

安装步骤必须严格遵循以下顺序,跳过任意一步都可能导致后续失败:

3.1 彻底卸载旧版 Node.js(含残留)

很多人以为“控制面板卸载”就干净了,其实 Node.js 会在多个位置留下痕迹:

  • C:\Program Files\nodejs\(主程序目录)
  • %APPDATA%\npm\(全局 npm 包安装目录)
  • %APPDATA%\npm-cache\(npm 缓存)
  • 注册表项HKEY_CURRENT_USER\Software\Classes\Directory\shell\Open node command prompt here(右键菜单)

推荐使用官方提供的Node.js Uninstall Tool(GitHub 搜索nodejs/nodejs.orgtools/uninstall),或手动清理:

  1. 控制面板卸载 Node.js;
  2. 删除C:\Program Files\nodejs\整个文件夹;
  3. 删除%APPDATA%\npm\%APPDATA%\npm-cache\
  4. 重启资源管理器(任务管理器 → 重启explorer.exe)。

提示:删除%APPDATA%\npm\后,npm install -g安装的全局命令(如openclaw)会消失,这是预期行为。我们将在下一步用新版本重新安装。

3.2 从官网下载 v22.10.0 的 Windows Installer(.msi)

务必去 https://nodejs.org/dist/v22.10.0/ 下载node-v22.10.0-x64.msi(64位)或node-v22.10.0-x86.msi(32位)。不要用 nvm-windows、Scoop 或 Chocolatey 安装,因为它们安装的 Node.js 二进制可能缺失npm.ps1node_modules/npm/bin/npm-cli.js的符号链接,导致 Openclaw 的bin脚本无法被正确识别。

安装时,勾选 “Add to PATH” 和 “Automatically install the necessary tools”(这会自动安装 Python 3.11 和 Visual Studio Build Tools,为后续可能的 native 模块编译做准备)。安装完成后,重启 PowerShell,运行:

node -v # 应输出 v22.10.0 npm -v # 应输出 10.8.2(随 Node.js v22.10.0 自带)

3.3 修改 npm 全局安装路径(关键!避免权限问题)

Windows 默认将全局包装到C:\Users\<用户名>\AppData\Roaming\npm\,这个路径包含空格和特殊字符(如AppData),且受 Windows 用户账户控制(UAC)保护。当 Openclaw 尝试npm install -g openclaw时,npm 会试图向此目录写入可执行文件,极易触发 UAC 弹窗或静默失败。

解决方案:将全局安装路径迁移到一个纯净、无权限障碍的目录,例如D:\npm-global(D 盘需存在):

mkdir D:\npm-global npm config set prefix "D:\npm-global"

然后,将D:\npm-global添加到系统PATH环境变量中:

  1. Win+R→ 输入sysdm.cpl→ “高级”选项卡 → “环境变量”;
  2. 在“系统变量”中找到Path→ “编辑” → “新建” → 输入D:\npm-global
  3. 点击“确定”保存。

最后,验证是否生效:关闭所有终端,新开一个 PowerShell,运行npm root -g,应输出D:\npm-global\node_modules;运行which openclaw(或Get-Command openclaw),应显示D:\npm-global\openclaw

注意:which命令在 PowerShell 中不可用,必须用Get-Command。这是新手最容易混淆的点——CMD 和 PowerShell 的命令生态完全不同。

4. Openclaw 本地部署的完整流程:从零到http://localhost:3000

完成前两步(PowerShell 策略修正 + Node.js v22.10.0 环境搭建)后,Openclaw 的部署就进入了“标准流水线”。但“标准”不等于“无脑”,每个环节都有其不可跳过的校验点。

4.1 初始化项目与安装 CLI 工具

Openclaw 推荐使用create-openclaw-app脚手架创建项目,而非直接npm install -g openclaw。前者会生成一个结构清晰、预配置好的工作区,后者仅安装 CLI,还需手动创建配置文件。

在 PowerShell 中执行:

npm create openclaw-app@latest my-claw-project cd my-claw-project

脚手架会交互式提问:

  • 项目名称:回车默认my-claw-project
  • 选择模板:推荐starter(基础模板),full模板包含 Redis、PostgreSQL 等额外服务,对新手负担过重;
  • 是否初始化 Git:建议Yes,方便后续版本管理。

执行完毕后,项目目录结构如下:

my-claw-project/ ├── package.json # 主要依赖,含 "openclaw": "^0.8.0" ├── openclaw.config.js # 核心配置文件,定义 skills 目录、端口、日志级别 ├── src/ │ ├── skills/ # 你的技能代码放这里(如 hello-world.js) │ └── index.js # 入口文件,可自定义启动逻辑 └── node_modules/ # 依赖包

此时,运行npm install安装所有依赖。由于我们已将全局路径设为D:\npm-global,所有包会安装到项目内的node_modules,不会污染全局环境。

4.2 验证核心配置:openclaw.config.js的四个必填字段

很多用户部署后访问http://localhost:3000显示空白页或 404,根源往往在配置文件。openclaw.config.js不是可选的,它有四个字段是强制性的:

/** @type {import('openclaw').Config} */ module.exports = { // 1. 必须指定 skills 目录,Openclaw 会扫描此目录下的 .js 文件作为技能 skillsDir: './src/skills', // 2. 必须指定 HTTP 服务端口,默认 3000,但若被占用必须显式声明 port: 3000, // 3. 必须指定日志级别,'info' 是最常用,'debug' 会输出详细加载过程 logLevel: 'info', // 4. 必须指定运行时模式,'dev'(开发)或 'prod'(生产) mode: 'dev' };

特别注意skillsDir:它必须是相对于openclaw.config.js文件的相对路径,且该目录必须真实存在。如果./src/skills为空或不存在,Openclaw 启动时不会报错,但/api/skills接口会返回空数组,前端看不到任何技能。

4.3 启动服务与首次访问

一切就绪后,启动命令非常简单:

npm run dev

这会执行package.json中定义的"dev": "openclaw dev"脚本。成功启动的日志应包含以下关键行:

[INFO] Openclaw server is running on http://localhost:3000 [INFO] Loaded 2 skills: hello-world, calculator [INFO] Watching for changes in ./src/skills

此时,打开浏览器访问http://localhost:3000,你应该看到 Openclaw 的 Web UI 界面:一个简洁的仪表盘,左侧是技能列表(hello-worldcalculator是脚手架自带的示例),右侧是实时日志流。

提示:如果页面加载缓慢或报ERR_CONNECTION_REFUSED,请立即检查:

  • 是否有其他程序占用了 3000 端口?运行netstat -ano | findstr :3000查看 PID,再用tasklist | findstr <PID>查进程名;
  • openclaw.config.js中的port是否与npm run dev命令中指定的端口一致?脚手架默认是 3000,但你可以通过npm run dev -- --port 4000覆盖;
  • 防火墙是否阻止了 3000 端口?临时关闭防火墙测试(仅限测试环境)。

4.4 创建你的第一个技能:hello-world.js深度解析

脚手架生成的src/skills/hello-world.js是理解 Openclaw 工作原理的钥匙。它的内容远不止“打印 Hello World”那么简单:

// src/skills/hello-world.js import { defineSkill } from 'openclaw'; export const skill = defineSkill({ // 技能唯一 ID,必须全局唯一,用于 API 调用 id: 'hello-world', // 技能名称,显示在 UI 上 name: 'Hello World', // 技能描述,帮助用户理解用途 description: 'A simple skill that returns a greeting message', // 技能输入参数定义,Openclaw 会自动生成表单和类型校验 inputSchema: { type: 'object', properties: { name: { type: 'string', title: 'Your Name', description: 'The name to greet' } }, required: ['name'] }, // 技能执行函数,接收输入对象,返回 Promise<any> async execute(input) { return { message: `Hello, ${input.name}! Welcome to Openclaw.`, timestamp: new Date().toISOString() }; } });

这个文件揭示了 Openclaw 的三大设计哲学:

  • 声明式定义:用defineSkill函数包裹,而非导出裸函数,让框架能提取元数据(ID、名称、Schema);
  • 强类型输入inputSchema使用 JSON Schema 格式,Openclaw UI 会据此渲染表单,并在执行前校验输入合法性;
  • 异步优先execute必须是async函数,天然支持 HTTP 请求、数据库查询等 I/O 操作。

你可以立刻修改input.name的默认值,或在execute中加入await fetch('https://api.example.com/data'),它都能无缝工作。这就是 Openclaw 的价值:你只需专注写业务逻辑,框架负责调度、校验、监控和暴露 API。

5. 常见故障排查链路:从报错信息反推根本原因

部署过程中遇到报错,切忌复制粘贴到搜索引擎然后逐个试方案。Openclaw 的错误日志设计得非常友好,每一行都指向一个明确的故障域。下面是我整理的高频报错及其可复现的排查链路

5.1Error: Cannot find module 'openclaw'—— 模块解析失败的三重定位

这个错误通常出现在npm run dev启动时,表明 Node.js 无法定位openclaw包。排查必须按顺序进行:

步骤检查点验证命令预期结果说明
1. 本地依赖是否存在node_modules/openclaw目录是否真实存在Test-Path .\node_modules\openclawTrue如果为False,说明npm install未成功,回到第 4.1 节重装
2. package.json 依赖是否正确dependenciesdevDependencies中是否有openclawcat package.json | ConvertFrom-Json | Select-Object -ExpandProperty dependencies输出含"openclaw": "^0.8.0"若缺失,手动添加并重装npm install openclaw@latest --save-dev
3. Node.js 模块解析路径是否异常当前工作目录是否为项目根目录Get-Location输出应为D:\path\to\my-claw-project如果在子目录(如src/)下运行npm run dev,Node.js 会向上查找node_modules,但可能找不到openclaw

注意:ConvertFrom-Json是 PowerShell 的 JSON 解析命令,cat是别名(等同于Get-Content)。在 CMD 中需改用type package.json并肉眼查找。

5.2Error: listen EADDRINUSE: address already in use :::3000—— 端口冲突的精准终结

这个错误很常见,但“杀掉所有 node 进程”是粗暴且危险的做法。更精准的方法是定位并终止占用 3000 端口的具体进程

# 第一步:找出占用 3000 端口的进程 PID netstat -ano | findstr :3000 # 示例输出: TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 12345 # 表明 PID 12345 正在监听 3000 端口 # 第二步:根据 PID 查找进程名 tasklist | findstr 12345 # 示例输出: node.exe 12345 Console 1 89,240 K # 确认是 node.exe # 第三步:仅终止该进程(不波及其他) Stop-Process -Id 12345 -Force

如果tasklist返回空,说明是系统服务(如 IIS Express)或 Docker 容器在占用。此时应检查:

  • VS Code 是否开启了 Live Server 插件并绑定了 3000 端口?关闭插件或修改其端口;
  • Docker Desktop 是否运行了映射 3000 端口的容器?运行docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"查看。

5.3TypeError: Cannot read properties of undefined (reading 'skillsDir')—— 配置文件加载失败的根源

这个错误意味着 Openclaw 启动时未能正确加载openclaw.config.js。根本原因几乎总是:配置文件导出语法错误

最常见的错误是:

// ❌ 错误:使用了 ES Module 的 default export,但 Openclaw 期望命名导出 export default { skillsDir: './src/skills', port: 3000 }; // ✅ 正确:必须使用 module.exports 或具名 export module.exports = { skillsDir: './src/skills', port: 3000 }; // 或 export const config = { skillsDir: './src/skills', port: 3000 };

另一个隐蔽原因是配置文件中使用了尚未安装的模块:

// ❌ 错误:在 config 文件中 require 了一个未安装的包 const someUtil = require('some-missing-package'); // 这会导致 config 加载失败 module.exports = { ... };

排查方法:在openclaw.config.js文件顶部临时添加一行:

console.log('openclaw.config.js is being loaded'); module.exports = { ... };

如果启动时看不到这行日志,说明配置文件根本没被执行,问题出在文件名(必须是openclaw.config.js,大小写敏感)、路径(必须在项目根目录)或语法错误上。

5.4 Web UI 加载后技能列表为空 ——skillsDir路径解析的陷阱

即使openclaw.config.js语法正确,skillsDir的路径也可能因 Node.js 的__dirname解析规则而失效。Openclaw 内部使用path.resolve(__dirname, config.skillsDir)来拼接绝对路径。如果skillsDir是一个不存在的目录,Openclaw 不会报错,只会静默跳过。

验证方法:在openclaw.config.js中添加调试日志:

const path = require('path'); console.log('Resolved skills dir:', path.resolve(__dirname, './src/skills')); module.exports = { ... };

启动后,查看控制台输出的路径是否真实存在。如果输出D:\my-claw-project\src\skills,但你的文件实际在D:\my-claw-project\src\skills\(末尾多了一个反斜杠),或者该路径下没有.js文件,技能就不会被加载。

提示:Openclaw 只加载.js文件,.ts文件需要先用 TypeScript 编译。如果你写了hello-world.ts,它会被完全忽略。

6. 进阶技巧:让 Openclaw 在 Windows 上真正“稳如磐石”

完成基础部署后,还有几个关键技巧能让 Openclaw 从“能跑”升级为“稳跑”,尤其适合需要长期驻留的本地开发或小型团队共享环境。

6.1 使用 PM2 管理进程:告别关掉终端就停服

npm run dev启动的服务,一旦关闭 PowerShell 窗口,进程就会被终止。对于需要 24/7 运行的场景(如内部测试 API),必须用进程管理器守护。

PM2 是 Node.js 生态最成熟的守护进程工具。安装它:

npm install -g pm2

然后,用 PM2 启动 Openclaw:

# 进入项目根目录 cd my-claw-project # 启动,指定脚本和参数 pm2 start node --name "openclaw-prod" -- -r openclaw/register.js --config openclaw.config.js # 查看进程状态 pm2 list # 查看实时日志 pm2 logs "openclaw-prod"

-r openclaw/register.js是关键:它告诉 Node.js 在启动前先运行 Openclaw 的注册脚本,确保模块加载器正确注入。--config参数显式指定配置文件路径,避免 PM2 在错误上下文中解析openclaw.config.js

PM2 还能实现开机自启(pm2 startup)和负载均衡(pm2 scale),但对于单机 Openclaw,pm2 start+pm2 save(保存当前进程列表)就足够了。

6.2 配置 Windows 防火墙规则:允许外部设备访问

默认情况下,Windows 防火墙会阻止所有入站连接。如果你想让同一局域网内的手机或另一台电脑访问http://192.168.x.x:3000,必须手动放行端口:

  1. Win+R→ 输入wf.msc→ 打开“高级安全 Windows 防火墙”;
  2. 左侧点击“入站规则” → 右侧点击“新建规则”;
  3. 选择“端口” → 下一步 → 选择“TCP”,特定本地端口填3000→ 下一步;
  4. 选择“允许连接” → 下一步;
  5. 勾选“域”、“专用”、“公用”(根据你的网络类型选择)→ 下一步;
  6. 名称填Openclaw Port 3000→ 完成。

注意:此操作仅开放端口,不改变 Openclaw 的绑定地址。Openclaw 默认绑定localhost(127.0.0.1),这意味着它只响应本机请求。要让外部访问,必须修改openclaw.config.js

module.exports = { // 将 host 从默认的 'localhost' 改为 '0.0.0.0' host: '0.0.0.0', port: 3000, // ... 其他配置 };

0.0.0.0表示监听所有网络接口,此时http://192.168.x.x:3000http://localhost:3000都能访问。

6.3 技能开发效率提升:利用openclaw watch实时重载

Openclaw 内置了文件监视功能。当你在src/skills/下修改一个.js文件并保存时,Openclaw 会自动重新加载该技能,无需重启整个服务。

启用方式很简单:在openclaw.config.js中添加watch字段:

module.exports = { // ... 其他配置 watch: { // 启用监视 enabled: true, // 可选:指定要监视的文件扩展名 extensions: ['.js', '.cjs'] } };

然后启动时加--watch参数:

npm run dev -- --watch

你会看到控制台输出[INFO] Watching for changes in ./src/skills,之后每次保存技能文件,都会看到[INFO] Reloaded skill: hello-world的日志。这对快速迭代技能逻辑极其高效。

6.4 日志归档与分析:用winston替换默认日志

Openclaw 默认日志输出到控制台,不利于长期追踪。将其接入winston(Node.js 最流行的日志库)只需三步:

  1. 安装依赖:npm install winston
  2. 创建logger.js
const { createLogger, format, transports } = require('winston'); const logger = createLogger({ level: 'info', format: format.combine( format.timestamp(), format.errors({ stack: true }), format.json() ), defaultMeta: { service: 'openclaw' }, transports: [ new transports.File({ filename: 'logs/error.log', level: 'error' }), new transports.File({ filename: 'logs/combined.log' }) ] }); if (process.env.NODE_ENV !== 'production') { logger.add(new transports.Console({ format: format.combine( format.colorize(), format.simple() ) })); } module.exports = logger;
  1. openclaw.config.js中引用:
const logger = require('./logger'); module.exports = { // ... 其他配置 logger: logger };

这样,所有日志会同时输出到控制台和logs/目录下的文件中,便于事后审计和问题回溯。

我在实际项目中,就是靠logs/combined.log里的时间戳和堆栈,快速定位了一次因fetch超时导致的技能响应延迟问题。这种细粒度的日志能力,是“能跑”和“好用”之间的分水岭。

7. 我的个人体会:Openclaw 不是另一个“大模型玩具”,而是本地智能体的“操作系统内核”

部署完 Openclaw,看着http://localhost:3000上那个简洁的 UI,我意识到自己最初的理解错了。它不像 Dify 或 Langflow 那样,主打可视化编排大模型链路;它也不像 Ollama 那样,专注本地模型推理。Openclaw 的定位,更接近一个本地智能体的“操作系统内核”

它的核心价值,在于把“技能”(Skill)这个概念,从抽象的 API 文档,变成了一个可发现、可调试、可组合、可版本化的第一等公民。你写一个weather.js技能,它就自动出现在 UI 列表里,自动获得一个/api/skill/weather的 REST 接口,自动支持输入表单和类型校验。你不需要写路由、不需要配 Swagger、不需要管 CORS——这些都被封装在了defineSkill的契约里。

在 Windows 这个生态里,它解决了长久以来的一个断层:我们有强大的本地开发工具(VS Code、PowerShell),有丰富的本地服务(Python 脚本、SQLite 数据库、本地 HTTP API),但缺乏一个轻量、统一、开发者友好的“胶水层”,把这些能力快速暴露给 AI 调用。Openclaw 填补了这个空白。

所以,Day 13 的“保姆级”部署,真正的终点不是npm run dev成功,而是当你第一次在src/skills/下新建一个my-first-skill.js,写完defineSkill,保存,刷新 UI,看到它出现在列表里,点击“Execute”,输入参数,拿到 JSON 响应的那一刻——你才真正拿到了这把“本地智能体操作系统”的钥匙。

这把钥匙,不依赖云服务,不绑定特定模型,不强制学习复杂 DSL。它就安静地躺在你的D:\my-claw-project里,等待你用最熟悉的 JavaScript,去连接你电脑上已有的每一个能力。这才是“小龙虾”(Openclaw)名字里,那份接地气、有嚼劲、值得反复品味的真意。

http://www.jsqmd.com/news/1149407/

相关文章:

  • 若依系统 Druid 弱口令检测:FOFA/Hunter 资产收集与 5 类路径探测实战
  • 如何轻松突破网盘限速:八大平台直链下载的完整解决方案
  • Anaconda虚拟环境实战:可复现依赖管理四阶段流水线
  • Hermes Agent三大核心配置:SOUL/USER/AGENTS详解
  • Zotero 9架构升级与安装避坑指南:Electron+Rust、双因素认证与系统兼容性
  • 单VLA模型驱动异构机器人协同:从语义鸿沟到行为契约的工业落地
  • Okbiye 一站式毕业论文 AI 写作工具,彻底告别熬夜改稿难题
  • Cursor Plan Mode误删生产库的9秒灾难与七层防护实战
  • VS Code AI Agent 协同架构:ACP 协议实战落地
  • Sunshine游戏串流完整指南:5步打造高效家庭游戏共享平台
  • Windsurf与Cursor深度对比:MCP协议与Tab预测技术解析
  • Qwen Code+Obsidian构建工程师知识操作系统
  • Codex API编排中枢:契约驱动的第三方API接入指南
  • C语言实现的MPEG-2编解码三件套:编码器、解码器、播放器全齐,带测试样例和跨平台编译支持
  • Matlab版双向LSTM多变量时序预测工具包(含实测数据与评估结果图)
  • 设备树 Overlay 机制实战详解:运行时动态加载硬件配置而不重新编译内核的方案
  • OLMo 3源码深度解析:从安装、准备到可调试训练架构
  • CodeBERT vs. GPT-4:3 种代码智能任务实战对比与微调策略选择
  • 学生可用的Python车牌识别实战项目:检测定位+字符识别全流程可运行代码包
  • OpenClaw龙虾:面向本地化部署的AI Agent运行时框架
  • VISTA框架:面向腕式可穿戴的物理可行VLA系统
  • FModel终极指南:如何安全高效地探索Unreal Engine游戏资源
  • 2026年房地产宣传片行业观察
  • Codex++上下文自动压缩:基于AST的轻量级代码蒸馏方案
  • ps人像磨皮怎么操作?人像后期保留质感磨皮ps教程
  • 高斯-克吕格投影 6°与3°分带:ArcGIS Pro 3.2 中北京54坐标转换的5个关键参数
  • SpringBoot+Vue 船运物流管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • Codex接入DeepSeek/GLM/Kimi实战指南:CC-Switch与Codex++双路径配置
  • Windows开发环境避坑指南:Node.js、Git、PowerShell与OpenClaw协同部署
  • 高效智能文件去重:跨平台重复文件清理完整方案