2026年开工没几天,我所在的几个技术群就开始被同一个名字刷屏:OpenClaw。去年大家还在争论哪个大模型回答更聪明,今年风向已经完全变了——所有人都在问同一个问题:怎么让AI不光会聊天,还能自己动手把活儿干了?OpenClaw就是冲着这个问题来的。简单说,它是一个开源的个人AI Agent执行框架,把大模型的推理能力、本地的文件与命令执行能力、以及各种各样的外接工具(官方叫Skill)串成一条流水线。它不需要你拥有昂贵的专用硬件,普通电脑加一个Ollama本地模型就能跑起来,也可以接入各家云端API;它能装在Windows、Ubuntu和安卓手机上,甚至能跟ROS2机器人联动。这篇内容我会从实际部署和使用的角度,把OpenClaw的设计思路、安装步骤、Skill机制和踩坑记录一次性讲清楚。不管你是AI应用开发者、效率工具爱好者,还是玩机器人的朋友,应该都能找到能直接抄作业的部分。
1. OpenClaw 到底是个什么东西:一个能动手的 AI Agent,而不是又一个聊天框
1.1 从“问答”到“执行”:OpenClaw 的核心设计
大模型本身不执行任务,它只是一个预测下一段文本的引擎。要让AI真正干活,必须给它一个可以调用外部工具的环境。OpenClaw的核心就是把这个环境标准化:它由一个常驻的运行时负责调度,大模型根据用户意图生成决策,然后通过函数调用(function calling)触发一个个预先注册好的技能。每个技能本质上是封装好的函数,技能可以是读写文件、执行命令行、发起HTTP请求、搜索本地知识库,也可以是控制机器人关节。
你可以把OpenClaw理解成一位项目经理:大模型是大脑,负责想方案;运行时是秘书,负责拿着方案去协调;Skill是各个执行部门,接到工单直接把事儿办了。这个三层结构的好处是,任何一环都可以单独替换——今天想换更强的模型,改一行配置;明天想增加新能力,往技能目录丢一个文件夹。甚至在OpenClaw里,你可以同时跑多个Agent实例,让它们一个做信息收集、一个做分析汇总,通过共享任务队列协作。这是它与普通聊天工具最大的区别。
1.2 为什么它会在 2026 年突然刷屏
仔细翻热搜和相关讨论,会发现大家关注OpenClaw的理由非常集中。第一个是成本可控。以前要做AI Agent,要么被云端API的token费用吓退,要么需要一台价格不菲的GPU服务器。OpenClaw对本地算力特别友好,通过Ollama接上Qwen2.5-3B、7B这类量化模型,一台16GB内存的普通笔记本就能流畅跑。第二个是隐私与自主。很多人的需求是想让AI管理私人文档、整理本地照片、操作工作目录,这些数据如果全部上传到云端,心里总不踏实。OpenClaw默认所有调度都发生在本地,数据不出门。第三个是生态。从Windows到安卓,从传统命令行到ROS2机器人,你都能找到对应的部署方案和现成技能,这极大降低了入门门槛。
还有一个容易被忽略的原因:OpenClaw把“提示词工程”的复杂度降下来了。以前的AI工具需要你反复调Prompt,告诉模型每一步怎么做;现在你只需要描述目标,Agent会自己拆解步骤、调用合适技能。这种体验上的变化,让很多原本觉得“AI编程/自动化离我太远”的人,也愿意动手试试。
1.3 一个典型的 OpenClaw 使用流程
举个我每天都在用的场景:我想让AI帮我整理一个下载文件夹,把图片、文档、压缩包分门别类放好。传统聊天框只能给我一段Python代码,我还得自己复制、保存、运行。OpenClaw的做法是,我直接对终端里的Agent说“把~/Downloads按类型整理一下”,它会自动调用文件系统技能列出目录、识别文件扩展名、创建分类子目录、移动文件,最后给我一份整理报告。整个过程我不用写一行Python,Agent自己就把事办了。
这种“意图到执行”的路径,就是OpenClaw刷屏的核心原因。它不再是一次性的玩具,而是一个能长期挂机、持续为你处理任务的数字助手。后面我会详细拆解如何部署和配置,但记住这个目标:我们要的不是又一个聊天框,而是一个能动手的Agent。
2. 部署前必看:OpenClaw 的架构与运行方式
2.1 三件套:模型后端、运行时、技能
OpenClaw的部署不是单个二进制文件,而是由三部分协作组成:模型后端提供推理能力,运行时负责Agent调度,技能负责具体执行。理解这个三件套,后面遇到问题就不会慌。
模型后端是OpenClaw的“大脑来源”。它支持Ollama这类本地模型服务,也支持任何兼容OpenAI接口的云端API。你可以随时切换,OpenClaw不会绑死某一家。运行时通常跑在Node.js环境里,包括命令行工具(CLI)、常驻守护进程(daemon)以及配置文件。技能则是一个个独立文件夹,里面包含技能描述和可执行脚本,OpenClaw在启动时会扫描这些文件夹并注册进工具列表。
| 组件 | 作用 | 典型形态 |
|---|---|---|
| 模型后端 | 根据用户请求生成决策和调用计划 | Ollama、OpenAI兼容API、vLLM |
| 运行时 | 维护Agent生命周期、调度技能、收发消息 | Node.js CLI + daemon |
| 技能 | 让Agent具备具体动手能力 | SKILL.md + Python/JS脚本 |
这种设计最大的好处是模块化。模型可以换,技能可以加,运行时可以分布式部署。你甚至可以在一台机器上运行多个OpenClaw实例,每个实例负责不同的技能组,再通过消息总线协同。
2.2 三条主流安装路径怎么选(Windows / Ubuntu / 安卓)
我收到最多的私信就是问“OpenClaw到底装在哪”。答案是:看你的主要使用场景。日常办公和文件整理,Windows + WSL2是最成熟的方案;如果手上有一台Linux服务器,Ubuntu直装最干净;如果只是想随时随地远程指挥家里的电脑,安卓手机用Termux装一个Companion就够了。
Windows下我强烈建议通过WSL2装Ubuntu环境,因为很多高质量技能依赖Linux命令工具,比如rsync、grep、ffmpeg。直接在Windows原生跑虽然也行,但遇到权限和路径转换问题会非常头疼。Ubuntu直装相对简单,clone仓库、装依赖、初始化配置三步走。安卓Termux适合轻量使用,一般不在手机上跑大模型,而是作为远程控制端连接电脑上的OpenClaw实例。
我的建议是:先在一台Windows或Ubuntu电脑上把主实例跑起来,再在手机上装Companion做远程控制。不要在第一步就追求全平台覆盖,先把一条链路跑通更重要。
2.3 算力之选:本地 Ollama 还是云端 API
“OpenClaw只能用接入API的方式使用算力吗?”这是我在论坛里见过最多的疑问。答案是否定的。OpenClaw对本地算力支持得非常好,尤其是通过Ollama接本地模型,个人使用完全可行。
我在Ubuntu服务器上只用了两步就接上了Ollama:
curl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:3b然后在OpenClaw的配置文件里指定模型信息:
model: backend: ollama base_url: http://localhost:11434 name: qwen2.5:3b如果选择云端API,只需要把backend改成openai,填上你的base_url和api_key。两者各有优势,我列个表方便大家选型:
| 对比项 | 本地 Ollama | 云端 API |
|---|---|---|
| 成本 | 电费+硬件,无token费用 | 按调用量计费 |
| 隐私 | 数据不出本机 | 请求会发送到第三方服务 |
| 响应速度 | 受硬件影响 | 通常很快,但受网络影响 |
| 硬件要求 | 至少16GB内存,推荐量化模型 | 无要求 |
| 离线可用 | 可以 | 不行 |
我的经验是:个人日常任务,用本地Ollama完全够;如果是需要强推理能力的复杂任务,比如代码生成、长文档分析,云端API确实更强。OpenClaw支持随时切换,所以不必二选一,按任务类型灵活用。
3. 手把手实操:在 Windows 上搭建 OpenClaw 全流程
3.1 环境准备:Node.js、WSL2 与那个“无法安全验证”的坑
我在Windows上第一次跑OpenClaw,就撞上了热搜词里那个经典报错:无法安全验证WSL2环境。当时在PowerShell里执行wsl --status,系统直接提示“无法安全验证”,后面还让你再去PowerShell运行wsl --status自查。这个报错本身和OpenClaw没关系,问题出在Windows的虚拟机平台或WSL内核上。
原因通常有三个:Windows虚拟机平台未启用、WSL内核版本过旧、或者开启了Hyper-V但没打开“虚拟机监控程序平台”。解决步骤其实不复杂,按顺序执行:
- 用管理员身份打开PowerShell,运行
wsl --update,把WSL内核更新到最新。 - 运行
wsl --status,确认默认版本是不是2;如果不是,执行wsl --set-default-version 2。 - 如果仍然报错,检查虚拟机平台功能是否启用,可以运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - 完成后重启电脑,再打开WSL2 Ubuntu。
这个坑的本质是WSL2的虚拟化检测机制太严格。解决之后,Ubuntu环境跑得非常稳,后续安装OpenClaw就没再出过类似问题。另外别忘了装Node.js 20 LTS及以上,OpenClaw的运行时依赖它。在WSL2终端里执行:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs git node -v看到v22开头的版本号,环境就算准备好了。
3.2 初始化配置:连接大模型、启用第一组技能
环境准备好后,克隆OpenClaw仓库并安装依赖:
git clone <官方仓库地址> openclaw cd openclaw npm install安装完成后执行openclaw init,它会生成配置文件。我配置的模型是Ollama上的Qwen2.5-3B,配置文件核心部分如下:
runtime: host: 127.0.0.1 port: 3737 model: backend: ollama base_url: http://localhost:11434 name: qwen2.5:3b skills: enabled: - filesystem - shell - web这里有个细节:skills.enabled只写技能名称,OpenClaw会自动去技能目录加载对应的SKILL.md。首次启动前,最好先用openclaw skill list看一看本机支持哪些技能,再决定启用范围。你不需要一次性全开,挑几个高频的就行,技能越多,Agent在决策时的检索负担也越大。
启动服务用openclaw start,另开一个终端窗口执行openclaw run "帮我列出当前目录下的文件",如果看到Agent调用filesystem技能并返回文件列表,说明整条链路已经通了。
3.3 配置 Windows Companion:手机远程给 Agent 派活
很多人问Windows Companion怎么配。Companion是OpenClaw的远程控制端,装在手机上后,你可以在地铁上给家里电脑里的Agent派任务。核心思路是:电脑上的OpenClaw作为一个服务常驻,手机Companion通过网络连接同一个实例。
配置时注意三点:第一,OpenClaw的监听地址不要只填127.0.0.1,需要改成0.0.0.0或者局域网IP,否则手机找不到它。第二,Windows防火墙需要放行3737端口,否则请求会被拦截。第三,手机和电脑必须在同一个局域网,或者你通过内网穿透把端口暴露出去(注意做好访问控制)。
我在配置后,手机端显示连接状态正常,就能直接发语音或文字任务了。比如我在外面想起电脑上有个文件需要转成PDF,直接掏出手机对Agent说“把下载目录里最新的docx转成PDF”,它就会自动调用文件技能完成。这种体验,确实比远程桌面轻量太多。
3.4 进阶玩法:OpenClaw + ROS2 的机器人控制
如果你玩过机器人,一定知道ROS2里最烦的是把大模型和机器人执行器串起来。OpenClaw社区里有一个叫rosclaw的扩展包,专门对接ROS2 Humble和Gazebo仿真。基本思路是把机器人的话题和服务封装成Skill,Agent通过订阅话题获取传感器数据,通过调用服务发出控制指令。
例如,你让Agent“检查仿真环境中的障碍物并规划一条安全路径”,它会先调用ros2 topic list查看话题,然后订阅激光雷达数据,再由路径规划Skill输出速度指令。这个能力意味着,OpenClaw不只是聊天工具,它已经能成为机器人系统的一个决策大脑。
安装方式也很直接:
pip install rosclaw rosclaw configure --workspace ~/ros2_ws然后在OpenClaw配置里启用ros2技能组。需要注意的是,ROS2环境变量必须在启动OpenClaw之前加载,否则技能脚本找不到ros2命令。我踩过这个坑,后面会在常见问题里再提一次。
4. Skill 机制拆解:让 AI 真正学会用工具
4.1 Skill 是 OpenClaw 的灵魂:结构长什么样
如果你只想看一个概念,那一定是Skill。Skill的本质是给大模型提供一份“工具说明书”,让模型知道在什么情况下可以调用什么工具、需要传入什么参数。OpenClaw的Skill结构非常清晰,一个技能就是一个文件夹,里面至少包含两个文件:SKILL.md和可执行脚本。
SKILL.md用YAML front matter描述技能的基本信息,包括名称、功能描述、参数定义。大模型在决策时会阅读这些描述,判断当前任务是否匹配。可执行脚本接收参数并执行实际操作,最后把结果打印到标准输出,Agent再把输出结果拿回去继续推理。
我建议你把Skill理解成“给实习生的一本工具手册”。手册写得越清楚,实习生(大模型)用工具就越准确。反过来,如果描述含糊,模型就根本不知道什么时候该调用它。
4.2 手写一个最简单的 Skill:网页标题抓取
空谈概念没用,我们直接写一个最简单的技能。假设我想让Agent抓取任意网页的标题,可以这样组织:
my-skills/ └── fetch_title/ ├── SKILL.md └── main.pySKILL.md内容:
--- name: fetch_title description: 抓取一个网页的标题,需要传入 url 参数。 parameters: url: type: string description: 目标网页地址,例如 https://example.com required: true ---main.py内容:
import sys import re import urllib.request url = sys.argv[1] html = urllib.request.urlopen(url, timeout=10).read().decode("utf-8", "ignore") match = re.search(r"<title>(.*?)</title>", html, re.S) print(match.group(1).strip() if match else "no title")写好后,把整个fetch_title文件夹放到OpenClaw的技能目录里,然后运行openclaw skill install ./fetch_title注册。接着测试:
openclaw run "看一下 https://openclaw.example.com 的标题"如果一切正常,Agent会告诉你网页标题是什么。这个技能虽然简单,但覆盖了Skill的全部要素:描述、参数、执行脚本。你完全可以照着这个模板,写出“读写文件”“调用API”“搜索数据库”等各种技能。
4.3 多 AI 协作:让多个 Agent 实例一起干活
多AI协作是OpenClaw最让我兴奋的部分。这里的协作不是把多个模型放在同一个聊天窗口里轮流发言,而是让多个Agent实例通过消息队列做异步协作。举个例子,我本地起了一个worker-agent,专门接收“整理某个文件夹”的任务;主Agent在处理用户请求时,发现任务属于文件整理范畴,就把任务丢给worker,自己继续响应用户。worker完成后再把结果写回共享目录。
配置上,每个实例要有独立的agent_name,再指定同一个message_bus地址。OpenClaw内置的消息总线支持本机多进程通信,也支持通过网络跨机器通信。这种模式对并发很友好:主Agent不会因为一个长任务卡死,后台worker可以慢慢跑。
实际用下来,多Agent协作适合把任务拆成“收集信息”和“加工信息”两段。比如一个Agent负责爬取网页、读取文档,另一个Agent负责汇总、生成报告。各自用不同的模型,前者用小模型省钱,后者用大模型保证质量。
5. 常见问题速查表与我的避坑记录
5.1 高频问题排查速查表
整理一份我遇到的高频问题表,方便大家对照排查:
| 问题 | 常见原因 | 解决方式 |
|---|---|---|
| WSL2无法安全验证 | 虚拟化平台未启用 / WSL内核旧 | wsl --update,开启VirtualMachinePlatform |
| Node.js命令找不到 | 未安装或PATH没刷新 | 安装Node.js 20+,重开终端 |
| 模型连接报错 | Ollama没启动或base_url错误 | 确认ollama serve,检查配置 |
| 技能不生效 | 技能目录没加载或SKILL.md格式错误 | 运行openclaw skill list检查 |
| 安卓Termux安装失败 | 包源过期 / 依赖缺失 | pkg update && pkg upgrade |
| 端口被占用 | 3737被其他程序占用 | 修改配置端口或释放端口 |
| Agent任务超时 | 上下文长度太短 / 模型推理太慢 | 提高模型上下文长度,换量化模型 |
| 高并发卡死 | 单实例处理能力不足 | 用pm2守护,多开worker Agent |
5.2 我实际踩过的三个坑
第一个坑是WSL2里访问Windows宿主机上的Ollama。如果Ollama装在Windows原生系统里,而OpenClaw跑在WSL2 Ubuntu里,不能直接把base_url写成localhost,因为WSL2有独立网络栈。解决办法是找到Windows宿主机IP,通常用ip route show default可以看到网关IP,然后把base_url改成http://<网关IP>:11434。如果你用的是较新的Windows 11镜像网络模式,也可以直接打开镜像网络,具体看系统版本。
第二个坑是Windows防火墙。手机Companion一直连不上电脑上的OpenClaw,折腾半天发现是防火墙把Node.js入站请求拦了。在“允许应用通过防火墙”里找到Node.js,勾选专用网络和公用网络,瞬间解决。
第三个坑是模型选得太弱。一开始我用了一个1.5B的小模型,Agent经常“答非所问”,明明该调用技能的时候却开始给我讲理论。换到Qwen2.5-3B之后,函数调用的准确性明显提升。如果你发现Agent不调用工具,先别急着改Prompt,换个推理能力强一点的模型试试。
5.3 并发和稳定性怎么优化
如果你希望OpenClaw像服务一样长期跑,我推荐用pm2做进程守护:
npm install -g pm2 pm2 start openclaw --name openclaw -- start pm2 save这样即使进程意外崩溃,pm2也会自动拉起。对于并发请求,OpenClaw本身支持多个Worker,可以在配置里指定并发上限。如果任务量很大,更稳妥的方案是多开几个不同职责的Agent实例,用消息总线做负载均衡,而不是让一个Agent硬扛所有任务。我的经验是:模型推理的并发瓶颈不在OpenClaw,而在后端Ollama或API的限流,所以优先优化模型服务本身。
还有一点,给Agent加缓存。对于重复性任务,比如“查询某个股票价格”“看天气”这类外部信息获取,写一个缓存技能,避免每次都重新调用模型爬取。实测下来,响应速度和token消耗都会改善很多。
我个人现在的用法是:Windows主机上跑OpenClaw,Ollama挂着Qwen2.5-7B,手机用Companion远程发任务,日常整理文件、抓网页信息、定时提醒都交给它。实际用下来,最重要的是“不要想着一个Agent解决所有问题”——把复杂任务拆成多个Skill,比反复修改提示词有效得多。如果你也正在折腾OpenClaw,建议从最简单的文件管理和网页抓取两个技能开始,跑通一个端到端流程后,再往ROS2、多Agent协作那边扩展。希望这篇能帮你少踩几个坑。