说实话,我一开始对OpenClaw(Clawdbot)这个项目没抱太大期待。市面上叫AI助手的东西太多了,多数装完也就聊聊天、写写诗,撑不过一周。但去年年底我把OpenClaw跑起来之后,才发现它跟那些“聊天机器人”完全是两码事:它能自己规划步骤、调用命令、读写文件、操作网页,甚至能在手机Termux里常驻后台。对每天被邮件、日报、表格、重复脚本折磨的上班族来说,这就是2026年最值得折腾的一次效率投资。
这篇文章不是理论科普,是我自己从零搭起来的实操记录。你会看到Windows WSL2环境怎么配、Node.js和OpenClaw主程序怎么装、Ollama本地模型怎么接、手机Termux怎么部署,还有我踩过的那个“WSL2环境无法安全验证”的坑,以及Skill扩展和ROS2这类进阶玩法。照着做,不需要你会Linux,跟着命令走就行。
1. OpenClaw(Clawdbot)到底能帮你干什么:一个上班族的真实场景
1.1 它和普通聊天机器人有什么不一样
普通聊天机器人是“你问一句,它答一句”,OpenClaw不是这个逻辑。它的定位更接近一个自主智能体(Agent):你给它一个目标,比如“把这些CSV整理成周报”,它会自己拆解成读文件、清洗数据、生成Markdown、保存文件这几个子任务,然后逐个执行。
我第一次跑通的时候,真的有种“雇了个实习生”的感觉。它不像ChatGPT那样只输出文字,而是会调用本地的Shell、Python脚本、Node.js模块,甚至通过配置好的API去操作外部服务。也就是说,它能把“思考”变成“行动”。
普通的AI聊天界面是“对话框+回答”,OpenClaw是“任务→规划→执行→返回结果”的工作流。这个区别决定了它更适合用在办公自动化场景,而不是单纯陪你聊天。
1.2 我从日常工作中提炼的三个高频用法
先说我最常用的三个场景,后面配置完你也能照着用:
- 自动整理文件和报表:每天早上一堆临时文件散落在桌面和下载目录。我给OpenClaw配了一个Skill,它会扫描指定目录、按文件类型归档,再把当天新增的文件列成清单。
- 定时抓取数据并汇总:运营同学每天要从后台导出好几种Excel,填到模板里。OpenClaw可以用Node脚本读取数据,再按模板生成新的报表文件,省掉手工复制粘贴。
- 生成日报/周报:让它读取一天的Git提交记录、任务管理工具导出的JSON,自动整理成“今日完成/明日计划/风险项”三段的日报。这个我用了很久,基本是每天下班前跑一次。
你不需要一次性把所有场景都配好,先挑一个最烦的重复劳动跑通,然后再慢慢加Skill。OpenClaw的学习曲线主要在“配置”而不是“使用”,所以下面这部分才是重点。
2. Windows上搭建的基础:WSL2环境怎么一次配到位
2.1 为什么要死磕WSL2而不是直接用Windows版
很多第一次用Windows搭OpenClaw的人会问:为什么不能像普通软件一样双击安装?我也这么想过,直到我发现它依赖不少Linux原生的工具链,进程管理、文件权限、Shell脚本在Windows原生环境下的行为会很奇怪。
OpenClaw在Windows上运行时,经常需要在一个相对干净的类Unix环境里执行命令。WSL2(Windows Subsystem for Linux 2)是微软官方提供的Linux子系统,它跟WSL1最大的区别是有真正的轻量级虚拟机在里面,文件系统隔离和内核兼容性都比WSL1好。OpenClaw校验环境时,会检查是不是WSL2,因为WSL1的路径映射和权限模型很容易导致误操作。
顺便说一句,网上不少报错信息“OpenClaw无法安全验证WSL2环境”就是从这里来的。不装WSL2或者装成了WSL1,它就会觉得这个环境“不安全”,直接拒绝启动。所以这一步逃不掉,老老实实配好。
2.2 一步一步:从PowerShell到Ubuntu子系统
Windows 10/11在2026年的版本基本都支持WSL2了。整个过程大概需要重启一次,时间主要花在下载、解压系统上。
第一步,用管理员身份打开PowerShell。注意是管理员身份,不然后面的命令会没权限。开始菜单右键就能看到“Windows PowerShell(管理员)”。
第二步,执行安装命令:
wsl --install -d Ubuntu-22.04这个命令会自动启用必要的Windows功能,下载WSL内核,并安装Ubuntu 22.04发行版。如果系统提示需要重启,就重启。
第三步,重启后,Ubuntu终端会自动启动,让你设置用户名和密码。这是Linux用户,不是Windows账号,单独记一下就好。
第四步,验证WSL2状态。回到PowerShell,运行:
wsl --status正常情况下你会看到类似“默认版本:2”的输出。再运行:
wsl -l -v看到NAME那一列有Ubuntu-22.04,VERSION显示2,就说明环境对了。如果显示1,执行:
wsl --set-version Ubuntu-22.04 2第五步,把系统包更新到最新。进入WSL终端(命令行输入wsl),执行:
sudo apt update && sudo apt upgrade -y到这里WSL2环境就算准备好了。我踩过的一个小坑是:安装完Ubuntu后没有执行升级,后面装Node.js时老报依赖错。所以“先升级”这个习惯别省。
3. 装Node.js、装OpenClaw:五步完成主体部署
3.1 Node.js版本选择与安装误区
OpenClaw本体是Node.js写的,所以Node环境是必须的。我见过不少人在这一步翻车,最常见的错误是:直接去官网下载Windows安装包装到Windows主机上,然后在PowerShell里跑OpenClaw,结果路径一团乱。
正确做法是:在WSL的Ubuntu里再装一份Node.js,一切操作都在Linux环境里完成。这样OpenClaw的进程管理、路径解析都走Linux原生逻辑,跟WSL2最匹配。
Node.js版本建议装20.x LTS,不要太追新,也不要装太旧的16.x。版本太老跑OpenClaw会缺API。WSL里安装用NodeSource源,方法如下:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs装完确认一下:
node -v npm -v我本地装完是v20.x 和 npm 10.x,这个组合目前跑OpenClaw很稳。
3.2 用npm部署OpenClaw主程序(附启动命令)
装完Node.js,接下来就是装OpenClaw。我用的是npm全局安装的方式,因为这样在任意目录都能直接调openclaw命令。不同版本包的命名可能略有差异,以官方README为准,但命令风格大致统一:
npm install -g openclaw装完之后,先初始化一个项目目录。我给这个目录起名my-assistant:
openclaw init my-assistant cd my-assistant初始化过程会生成一个配置文件和一些默认目录。如果你是第一次跑,我建议先不要改任何模型参数,直接用默认配置启动一次,能跑通再调。启动命令:
openclaw start看到终端里出现监听端口、加载模型的日志,就算是成功了。第一次启动会下载一些依赖,稍微等等。
这里要特别说明:如果你用的是Windows Terminal而不是WSL终端,一定先输入wsl进入Ubuntu环境再操作。直接在PowerShell里跑openclaw,十有八九会踩到环境变量和路径的坑。
4. 算力规划:本地Ollama与API两种接入方式怎么选
4.1 Ollama本地部署:下载模型并接入
有朋友问过我一个很直接的问题:“OpenClaw只能用接入API的方式使用算力吗?”答案是:不是。OpenClaw支持Ollama,也就是你可以完全用本地模型跑,不需要买任何云服务。
Ollama是一个本地模型运行工具,把模型下载到本地,然后提供OpenAI兼容的API接口。OpenClaw只要把模型provider配置成ollama,填上本地地址就能用。
安装Ollama很简单,在WSL的Ubuntu终端里执行:
curl -fsSL https://ollama.com/install.sh | sh然后启动服务:
ollama serve服务默认监听11434端口。下载模型,例如7B量化版:
ollama pull qwen2.5:7b下载完成后,回到OpenClaw的配置文件里,把provider改成ollama。我常用的配置节选如下:
{ "provider": "ollama", "model": "qwen2.5:7b", "ollama": { "baseUrl": "http://localhost:11434/v1" } }改完重启OpenClaw,它会通过Ollama跑推理。整个链路完全在本机,数据不出门,也没有按token计费的问题。
4.2 API接入方案与本地方案的横向对比
到底选本地Ollama还是云API,主要看你的硬件和场景。我整理了一个对比表:
| 对比项 | 本地Ollama | 云API |
|---|---|---|
| 成本 | 免费,只费电 | 按token收费,长期用不便宜 |
| 隐私 | 数据完全本地 | 请求会发送到云端 |
| 模型效果 | 7B/14B模型,日常办公够用 | 超大模型,复杂推理更强 |
| 硬件要求 | 内存8GB起步,16GB更好 | 只需要网络和Key |
| 离线可用 | 可以,完全离线 | 不行,断网就废 |
我的建议是:办公机内存够大,优先本地Ollama。我自己在16GB内存的Windows笔记本上跑7B量化模型,写日报、整理文件、做简单数据清洗都够用。但如果你的任务是长文档分析、复杂代码生成,那么本地7B模型的水平确实比顶级API差一截,这种情况可以在配置里再加一个api provider,按任务切换。
5. 必踩的坑:WSL2环境验证失败的正确排查顺序
5.1 复现报错:openclaw提示无法安全验证WSL2环境
我第一次在Windows上跑OpenClaw的时候,启动直接弹了个报错:“OpenClaw无法安全验证WSL2环境。请在PowerShell中运行wsl -- status,解决报告的问题。”
这个报错看起来很吓人,其实原因很单纯:OpenClaw启动时会做环境自检,发现当前不在一个安全的WSL2会话里。常见原因有三个:一是你在PowerShell里直接运行,而不是在WSL Ubuntu终端里运行;二是Windows上装了WSL1,OpenClaw认为不安全;三是WSL系统本身没初始化完成。
5.2 用wsl --status定位问题的完整排查链路
遇到这个报错不要慌,按下面的顺序一步步查,基本都能解决。
第一步,关掉当前所有WSL窗口,在PowerShell里运行:
wsl --status观察输出:
- 如果显示“默认版本:2”,说明WSL2是默认版本,继续下一步。
- 如果显示“默认版本:1”,说明被设成了WSL1,需要执行
wsl --set-default-version 2。 - 如果输出里没有“默认版本”字样,说明可能压根没装WSL,回到第2章重新安装。
第二步,查看当前有哪些发行版以及它们各自版本:
wsl -l -v如果你看到VERSION列是1,执行:
wsl --set-version Ubuntu-22.04 2如果卡在转换过程中,多半是内核组件太旧,执行:
wsl --update第三步,更新完内核后,重启WSL:
wsl --shutdown然后再进入Ubuntu终端,重新启动OpenClaw。我自己的机器就是卡在这里,内核更新后一切正常。
第四步,如果还是不行,检查Windows功能是否完整。在PowerShell(管理员)里运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart运行完重启Windows,再跑一次openclaw start。
最后说个容易被忽略的点:不要在文件资源管理器里双击OpenClaw的快捷方式启动,也不要从Windows Terminal的“默认配置文件”启动。一定要先打开Ubuntu的WSL窗口,再在窗口里执行命令。很多所谓的“无法安全验证”,只是因为环境没选对。
6. 手机党的部署路径:Termux安装OpenClaw实战
6.1 Termux环境准备:F-Droid版本与基础依赖
除了在Windows上跑,OpenClaw也可以装到Android手机上,实现一个随身携带的AI助手。核心工具是Termux,它能把Android变成一个Linux环境,不需要root。
第一步,下载Termux。强烈建议从F-Droid官网下载F-Droid应用商店,再从里面装Termux。不要去Google Play装,因为Play版已经停止维护,功能受限很严重。
第二步,打开Termux,先更新软件源:
pkg update && pkg upgrade -y第三步,安装Node.js和Git:
pkg install nodejs-lts git -y第四步,全局安装OpenClaw:
npm install -g openclaw手机端和电脑端命令一致,装完之后初始化项目:
openclaw init phone-assistant cd phone-assistant6.2 手机设备上的算力权衡与远程Ollama方案
在手机上本地跑大模型不是不行,但体验很一般:一是手机内存通常不够,7B模型跑起来又慢又热;二是续航扛不住。所以我更推荐两种方案:
方案A:接入局域网里的Ollama服务器。比如你办公室或家里有一台跑着Ollama的PC,手机通过WiFi连接到那台PC的IP。配置文件里这样写:
{ "provider": "ollama", "model": "qwen2.5:7b", "ollama": { "baseUrl": "http://192.168.1.10:11434/v1" } }手机就能把算力“外包”给电脑,自己只做任务调度。这样Ollama服务端的baseUrl需要改成0.0.0.0:11434,否则只能本机访问。
方案B:直接用云API。手机只是作为一个终端,请求发到远程API服务。这种方式在户外有网就能用,但要注意API Key的保管,别写死在配置文件里,可以用环境变量。
手机上要保证OpenClaw常驻后台,执行:
termux-wake-lock这个命令会在后台维持Termux进程,防止锁屏后被系统杀掉。我实测下来,一整晚待机再打开,OpenClaw还活着,任务没有中断。
7. 提升效率的关键:配置Windows Companion与Skill扩展
7.1 Windows Companion是什么:何时需要它
如果你用的是Windows,大概率会看到OpenClaw项目里提到Windows Companion。简单说,它是OpenClaw在Windows上的桌面伴侣程序,负责在系统托盘里显示状态、接收快捷键唤起、把任务结果以通知形式弹出来,还可以配置开机自启。
Companion本身不替代OpenClaw主程序,它只是一个“遥控器”。主程序的Worker还是在WSL2里跑,Companion负责把你在Windows桌面上的操作转给WSL里的OpenClaw。
什么样的上班族需要它?如果你希望“按一下快捷键就能叫出AI助手”,或者希望AI完成任务后在右下角弹个通知,那就值得装。如果你只需要命令行操作,跳过它也行。
7.2 手把手配置Companion连接WSL服务
配置Companion的关键是让Windows桌面端能连上WSL里的OpenClaw服务。
第一步,先确认OpenClaw已经在WSL里启动,并且监听端口。一般默认是localhost:8080或localhost:3000,具体看启动日志里的提示。
第二步,在Windows侧安装Windows Companion。安装后打开设置,把服务地址填成:
http://localhost:8080因为WSL2有端口转发机制,Windows的localhost通常可以直接访问WSL里的服务,不需要额外配置。如果连不上,检查WSL是否在运行:
wsl --status如果显示“默认版本:2”但Companion仍连不上,在WSL里确认服务监听地址是不是0.0.0.0,而不是只有127.0.0.1。修改启动配置里的host字段为0.0.0.0就可以。
第三步,在Companion设置里勾选开机自启。之后开机后它会自动尝试连接WSL服务,并在托盘里显示状态。
7.3 Skill扩展:写一个自动周报的示例
说到OpenClaw,最值得折腾的就是Skill。Skill可以理解成“给AI准备好的工具包”——你告诉它什么时候用、怎么用,它就会在任务里自动调用。
一个Skill通常是一个目录,里面包含一个说明文件和一个可执行脚本。以自动周报为例,目录结构是这样的:
skills/ weekly-report/ SKILL.md run.pySKILL.md用来告诉OpenClaw:这个Skill是干什么的、在什么情况下触发、参数怎么传。我自己写的简单版本是这样的:
# weekly-report 读取本周的工作日志文件,生成周报Markdown。 ## 触发条件 当用户要求生成周报、周总结时使用。 ## 参数 - input_file: 日志文件路径 - output_file: 输出文件路径run.py是实际干活的部分,可以读取日志里的日期和事项,按周汇总:
import sys from collections import defaultdict def main(): input_file = sys.argv[1] output_file = sys.argv[2] weeks = defaultdict(list) with open(input_file, encoding="utf-8") as f: for line in f: date, content = line.strip().split(",", 1) week = date[:10] weeks[week].append(content) with open(output_file, "w", encoding="utf-8") as f: for week, items in weeks.items(): f.write(f"## {week}\n") for item in items: f.write(f"- {item}\n") if __name__ == "__main__": main()把Skill目录放到OpenClaw的skills目录下,重启后它就会自动识别。以后再让它“生成周报”,它就会自己调用这个脚本,不再需要你手动跑。
8. 玩点不一样的:ROS2场景与进阶自定义思路
8.1 社区玩法:OpenClaw与ROS2 Humble/Gazebo的结合思路
聊点花活。如果你做机器人开发或者自动驾驶仿真,会发现OpenClaw的Agent能力跟ROS2能碰撞出很有意思的东西。社区里已经有rosclaw这类整合项目,目标是让OpenClaw作为智能体,通过ROS2跟Gazebo仿真环境里的机器人交互。
原理不复杂:OpenClaw通过Skill执行Shell命令,而ROS2本身就有完整的命令行工具,比如ros2 topic pub、ros2 topic echo、ros2 service call。只要给OpenClaw一个Skill,让它能够调用这些命令,它就能“看到”Gazebo仿真里机器人的状态,然后做出决策。
举个例子,你在Gazebo里跑了一台差速驱动机器人,想让OpenClaw根据里程计数据判断机器人是否打滑。Skill里可以配置:
ros2 topic echo /odom --once然后让OpenClaw解析这个输出,跟预设阈值比较,超过就输出报警。这本质上就是“Agent控制接口”,比人盯着终端有效率得多。
ROS2 Humble + Gazebo的环境如果已经搭好,这个扩展属于“白嫖”方案,不需要改OpenClaw核心,只要把ROS2命令封装成Skill就能跑。当然,这一步需要你懂一点ROS2,不建议零基础一上来就玩这个。
8.2 自定义OpenClaw的模型参数与启动配置
最后给愿意深挖的人一点进阶配置思路。OpenClaw的很多行为都可以通过配置文件调,我常用的是几个参数:
- temperature:控制回答随机性,做自动化任务我习惯调低到0.2,结果更稳定。
- maxSteps:限制Agent最多执行多少步,防止它在一个任务里绕来绕去。
- timeout:单步操作超时时间,网络请求多的时候调大一点。
- agentMemory:是否让OpenClaw记住过去对话,对长期任务有用,但会占内存。
配置示例:
{ "temperature": 0.2, "maxSteps": 20, "timeout": 120, "agentMemory": true }改完记得重启OpenClaw。如果你希望它每天早上自动跑一次日报,可以在WSL里配合cron实现。编辑cron任务:
crontab -e添加一行,每天下午6点执行:
0 18 * * * cd /path/to/my-assistant && openclaw run "生成今天的日报并保存"这样OpenClaw就从一个“手动工具”变成了“自动员工”。我实际用下来,最大的变化是那些低价值重复劳动开始自己消失,而不是每天下班后还要花半小时处理。
如果你也想在2026年把OpenClaw用起来,我唯一的建议是别一上来就配一堆Skill。先搭好WSL2和Node环境,跑通一次openclaw start,然后挑一个你每周都在做的重复任务,写一个最小Skill,让它替你跑一次。等你熟悉了Agent的思维方式和配置文件逻辑,再往ROS2、系统服务、远程部署这些方向扩展,就不会觉得吃力了。