前阵子我把一台旧笔记本翻出来当家庭服务器用,顺手给它配了一个常驻后台的AI助手。起初只是图新鲜,后来发现这东西确实成了我每天离不开的工具。它就是OpenClaw,前身叫Clawdbot,2025年更名后整个项目从文档到社区都整齐了不少。简单说,OpenClaw是一个开源的自托管AI助手网关:装在自己电脑或服务器上,既能接Claude这样的云端模型,也能接Ollama管理的本地模型,然后把文件读写、命令执行、网页抓取这些能力统一交给模型调度。这篇文章不是官方文档复述,我会按最近一次从零到一跑通全流程的顺序,把Windows部署、WSL排错、Ollama本地模型、安卓Termux、Windows Companion配置,以及Skill扩展一次讲完。想给日常工作流加一个“能干活的AI”的人,照着这篇走,应该能省下不少弯路。
1. OpenClaw是什么:从Clawdbot改名谈起
1.1 网关,不是另一个聊天客户端
很多人第一次听这名字,以为它就是个给Claude做壳的聊天客户端。实际不是。OpenClaw的核心是一个跑在你本机的网关进程:你通过网页界面、手机、或者Companion这类桌面程序向它发消息,网关拿到消息后调用配置好的大模型做推理;模型不只是回复文字,它还可以根据当前任务决定调用哪些工具——读文件、写文件、跑命令、抓网页。所以它产出的不是“建议”,而是“操作”。这个区别,是理解OpenClaw一切设计的关键。
打个比方:普通AI对话是“你问它答”,OpenClaw则是“你派活它干”。让它“把Downloads里最近一个月图片按月份归档”,它会真的去查文件时间戳、建目录、移动文件,最后给你一份归档报告。如果只是网页里聊Claude,它顶多给你一段bash代码让你自己复制执行——能不能成功、会不会改错文件,都得自己兜底。
1.2 改名背后发生了什么
Clawdbot早期是一个个人色彩很重的项目,后来因为名字和一个已经存在的商业产品撞车,团队决定改名为OpenClaw,同时把协议和生态进一步开放。对用户来说,最直接的影响是配置目录从老路径迁移到了~/.openclaw,很多环境变量的命名也换了前缀。
如果你是从旧版升上来的,千万别直接把旧配置覆盖过去。迁移工具虽然会把技能和记忆文件带过来,但字段不一致时很容易出问题。我当初图省事直接复制整个配置目录,结果所有Skill都识别不了,折腾了半小时才发现是目录层级放错了。那之后我的习惯是:升级前先把~/.clawdbot(旧目录)完整备份,再用官方迁移命令重新生成。
1.3 它能替你做什么
具体说几个我已经在用的场景:
- 文件操作:按命名规则批量改名、按月归档、清理重复下载文件。
- 系统运维:启动或停止服务、查看进程占用、执行备份脚本并校验结果。
- 联网查询:把搜索到的信息整理成结构化表格或摘要,再存进指定文档。
- 定时任务:每天早上把服务器磁盘、CPU、内存状态汇总成Markdown,发到我的消息应用。
- 长期记忆:跨多次对话记住我的项目路径、常用命令和偏好,不用每次重复交代。
这些能力不是默认全开的。OpenClaw对工具调用有一套权限机制,模型需要拿到对应工具权限,并且你授权之后才能执行敏感操作。早期版本经常有人抱怨“它什么都不敢做”,其实那是权限默认保守,属于正常现象,不是装坏了。
1.4 和网页版Claude的核心差异
我把两者放在一起对比过,差异非常明显:
| 对比维度 | Claude网页版 | OpenClaw自托管 |
|---|---|---|
| 交互形态 | 对话框问答 | 网关加工具调用 |
| 权限边界 | 只能看和说 | 可读写文件、执行命令 |
| 模型接入 | 固定官方页面模型 | 可切换API、OpenAI兼容、Ollama本地模型 |
| 定制能力 | 浏览器插件有限扩 | Skill、脚本、记忆全开放 |
| 数据归属 | 保留在平台 | 全部留在本地机器 |
如果你只需要问问题、写文案、改代码,网页版已经够好;但如果你希望AI直接落到文件系统里干活,OpenClaw这类网关才有意义。这个定位决定了后面所有部署和配置的优先级。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 先把路想清楚:三种部署方式与算力来源
2.1 三种主流部署方式
OpenClaw的部署形态并不只有一种。我按自己的使用场景把它们分成三类,新手建议先看这张表再动手:
| 部署方式 | 适合场景 | 启动方式 | 优点 | 缺点 |
|---|---|---|---|---|
| Docker容器 | 家庭服务器、长期常驻 | docker compose up -d |
环境隔离干净、升级方便 | Docker本身占用不少内存 |
| npx直跑 | Windows/macOS快速体验 | npx @openclaw/gateway |
一条命令,最快跑通 | 进程和日志得自己管 |
| Termux | 安卓手机 | npx @openclaw/gateway |
随时随地可用 | 性能和存储受限明显 |
我第一次尝试用的是npx直跑,从打开终端到看到网关管理界面,总共不超过五分钟。如果你现在还在犹豫装哪种,我建议先用npx把网关跑起来,确认这玩意确实符合期望后,再迁移到Docker常驻。直接上Docker最大的问题是,一旦配置出错,你很难分清是容器网络问题还是OpenClaw自身问题。
2.2 运行环境建议
OpenClaw本体其实非常轻,它连模型参数都不存,真正吃资源的是你选择的模型。所以我个人的经验是:老电脑完全能跑,只要别同时拉太多本地大模型。
最低建议配置:
- Node.js 20以上,建议直接用LTS版本。
- 内存8GB起,想跑本地模型的话建议16GB以上。
- Windows用户强烈建议装WSL2加Ubuntu发行版。
- 使用Docker的话,需要Docker Desktop或Linux服务器。
Node版本这块我踩过坑。有次我本机装了多个Node版本,npx默认调用了全局旧版本,启动网关直接报SyntaxError,排查半天最后用nvm切换到20+才解决。Windows用户管理多版本Node,用nvm-windows会比手动改PATH省心得多。
2.3 算力来源:API和本地模型可以并存
很多人问过“OpenClaw是不是只能用API方式使用算力”,答案是否定的。它支持至少两种模型来源:
一类是云端API,比如Anthropic家的模型,响应快、推理能力强,但按量计费,适合处理复杂任务;另一类是本地模型,通过Ollama这类工具提供,私密、免费、能离线跑,但能力上限看硬件。
我现在的配置是两者并存:日常简单任务走本地模型,复杂推理和长链路任务才切回云端API。OpenClaw本身不像一个AI模型,它更像插座——插什么头,决定它能输出多少电。后端模型这件事完全由你自己掌控,这也是自托管网关相比官方客户端最大的灵活之处。
3. Windows极速搭建:Node.js、WSL与网关初始化排错
3.1 Node.js下载与PATH检查
在Windows上部署,第一步是去Node.js官网下载LTS版本,注意不是最新版。很多新手安装时一路Next,结果漏了最关键的一项:安装向导里的“Add to PATH”必须勾选。不勾的话,后面打开PowerShell执行node -v会提示找不到命令。
安装完成后,开一个新的PowerShell窗口验证:
powershell复制node -v
npm -v
如果提示无法识别,手动把Node安装目录加进系统环境变量PATH,然后重新打开终端。我建议装完后把版本号记下来,后面排查问题时能很快确认是不是版本导致。
填坑提醒:不要把安装包下载成“Current”最新尝鲜版,OpenClaw这类对生态兼容要求高的工具,跟随LTS最稳妥。
3.2 WSL2准备与“无法安全验证”排查
OpenClaw在Windows上尽量跑在WSL2里,原因是文件监听、shell调用、权限模型都更接近官方推荐环境。很多Windows新手遇到的“OpenClaw无法安全验证,请在PowerShell中运行wsl --status”就是从这里来的。
遇到这个提示时,不需要重装系统,更不需要反复重装发行版。按下面顺序排查:
- 以管理员身份打开PowerShell,执行
wsl --status,检查默认版本是不是2。 - 执行
wsl --update,把WSL内核更新到最新。 - 到“启用或关闭Windows功能”里确认“适用于Linux的Windows子系统”和“虚拟机平台”两项都已勾选。
- 执行
wsl --shutdown再重新进入Ubuntu。 - 最后执行
wsl --install -d Ubuntu,如果还没有安装发行版的话。
网上很多教程叫人直接重装发行版,我实际遇到的时候,绝大多数情况只是WSL内核太旧,一条wsl --update就解决。注意命令里--status是两个短横线和status紧挨着,中间不要有空格。市面上有些教程复制的命令带了空格,命令行根本识别不了。
3.3 配置环境变量并启动网关
WSL搞定后,接着配API密钥。在PowerShell里执行:
powershell复制setx ANTHROPIC_API_KEY "你的密钥"
这个命令设置的是系统级环境变量,重新打开终端才会生效。然后找一个干净的目录,执行:
powershell复制npx @openclaw/gateway
首次运行会进入交互式配置,按提示选择默认的Windows配置即可。看到类似Gateway is running on http://localhost:3000的日志,说明已经成功了。浏览器打开那个地址,就能看到Web管理界面。
我第一次跑通后的第一句话是“看一下当前目录有哪些文件”,OpenClaw直接调用终端命令回显了结果。那种感觉和网页聊天完全不同——它是真的在操作我的电脑。这里强烈建议把工作目录建短一点,路径里少用中文,后面涉及文件操作时会少很多转义上的麻烦。
3.4 路径权限:最容易忽略的一步
网关跑在WSL里,看到的是Linux文件系统,Windows的C盘在它眼里是/mnt/c/。如果你让它“整理桌面”,目标路径其实是/mnt/c/Users/你的用户名/Desktop,而不是C:\Users\你的用户名\Desktop。
我刚开始没搞清这点,让它把桌面上的图片归档,结果它一本正经地在WSL的home目录下建了一个叫Desktop的文件夹,把文件全复制到那儿去了。Windows桌面原封不动。那之后我的做法是:所有需要OpenClaw处理的项目文件都放在WSL的home目录下,需要和Windows交换数据时再用/mnt/c做桥接。想把这套系统用得顺,先把“网关的视角”搞清楚,比什么都重要。
4. 本地模型实战:Ollama给OpenClaw提供另一种算力
4.1 为什么选Ollama
给OpenClaw接本地模型,我试过好几个方案,最后固定在Ollama上。原因很简单:它是当下零基础跑本地大模型最顺的工具,安装包自动处理GPU驱动依赖,终端一条命令就能拉模型,默认还会起一个OpenAI兼容的API接口,正好能被OpenClaw直接识别。
相比之下,那些把模型、依赖、UI打包在一起的整合包虽然也能跑,但升级和迁移时往往更痛苦。Ollama更接近“模型管理器”,模型文件放在固定目录,想换版本就重新ollama pull,不会把系统环境搞得一团糟。
4.2 安装与拉取模型
到Ollama官网下载对应系统的安装包,Windows版本装完后托盘区会有一个小图标。打开终端执行:
bash复制ollama pull qwen2.5:7b
或者换一个:
bash复制ollama pull llama3.1:8b
拉好后用ollama list确认模型已经就绪。如果你的机器显存或内存不够,可以拉量化版,例如:
bash复制ollama pull qwen2.5:7b-instruct-q4_K_M
这个版本占用大约5到6GB内存/显存,8GB内存的老机器也能勉强跑。我自己的经验是:8GB内存从7b量化版开始;16GB内存可以尝试14b级别;32GB以上才考虑更大参数。不要一上来就拉70b,那会把自己卡到怀疑人生。
4.3 在OpenClaw中配置本地模型
打开~/.openclaw目录下的配置文件,不同版本可能叫openclaw.json或者config.json。在模型provider部分添加Ollama配置,核心就是三个字段:接口地址baseUrl填http://localhost:11434,模型名填你ollama list里看到的准确名字,类型填ollama或openai-compatible。
不同版本的字段名会有差异,但思路不变:让网关知道“模型服务的地址”和“模型叫什么”。填好后重启网关,在管理界面把默认模型从云端切成本地模型。我已经这样跑了一段时间,效果完全可以接受。只有遇到复杂推理需求时才临时切回云端API。
4.4 本地模型的真实表现与调优
7B参数级别的模型做文件操作、简单问答、短代码片段处理是及格的,但涉及多步骤长链路任务时容易“想一半就断”。比如让它“把某个目录里所有txt文件合并,统计行数,再生成摘要”,它一般能完成;但如果加上“提取异常关键字,按严重级排序,再生成周报”这种跨步骤任务,就可能漏掉中间某一步。
我的解决方式是:把这些复杂任务拆成多个步骤,每一步单独让模型执行,每完成一步用文件做中转。写进Skill后,成功率会高很多。另一个容易被忽略的问题是超时。CPU推理没有GPU那么快,OpenClaw默认的模型响应等待时间可能不够,本地模型经常报“响应超时”的时候,去配置文件里把超时时间调大一些就顺了。
5. 安卓也能跑:Termux部署OpenClaw全流程
5.1 手机端适合做什么
手机端部署OpenClaw本质上和Linux一样,Termux提供了一个类Linux环境。适合的场景是人在外面,临时需要让家里电脑的网关执行任务,或者想在手机上体验一把完整的开源AI助手。但如果你期望手机能流畅跑本地大模型,建议直接打消这个念头——手机算力和散热都扛不住,老老实实用云端API即可。
我个人的实际用法是:手机端只当一个管理入口,真正干活的主力还是台式机或家庭服务器。最顺的方案是在手机装轻量客户端,去连家里已经跑起来的网关,而不是在手机上完整部署一套再手动同步。
5.2 Termux环境初始化
Termux安装,我推荐从F-Droid下载,不推荐用普通手机应用商店的版本。普通渠道的Termux更新慢,包源经常失效,装完连pkg update都会报错。装好之后依次执行:
bash复制pkg update && pkg upgrade -y
pkg install nodejs-lts tmux
termux-setup-storage
termux-setup-storage这一步非常重要,它负责授予Termux读取手机存储的权限。不执行的话,AI想读sdcard/Download里的文件时会直接Permission denied,新手很容易卡在这个莫名其妙的地方。
安装完验证一下:node -v,能打出版本号就说明Node环境OK。
5.3 启动网关并让电脑访问
Termux没有systemd,网关直接前台跑着就行。为了不让它占住整个终端,我用tmux开一个会话:
bash复制tmux new -s openclaw
npx @openclaw/gateway
启动后在手机浏览器打开http://localhost:3000就能看到管理界面。想从电脑访问手机上的网关,先查一下手机局域网IP,然后用电脑浏览器访问http://手机IP:3000。前提是两台设备在同一WiFi下,且手机没有开严格隔离。
需要注意,手机端做复杂任务的体验远不如桌面,电量消耗也非常明显。我实际用下来,手机端最适合做“查看状态”“执行单一命令”这类轻量操作,比如下班路上让它查一下家里服务器负载。
5.4 手机部署的三个坑
第一个坑是第一遍执行pkg install nodejs时装的是旧版Node,OpenClaw要求Node 20以上直接报错。后来才发现Termux的包名有nodejs-lts,用这个才能拿到维护中的LTS。
第二个坑是存储权限,上面已经说了,termux-setup-storage一定要执行。
第三个坑是Termux后台被杀。安卓系统内存紧张时会清理后台进程,网关一旦被系统杀掉,连接立刻断。我一般是配合Termux的wakelock设置,或者干脆只在需要时启动,用完就关。
6. Windows Companion配置:把网关装进托盘
6.1 Companion是什么
如果你觉得用浏览器访问网关已经够用,那么Windows上其实可以不装Companion。但Companion能把体验拉回“原生应用”:开机自启、托盘图标、日志面板、快速连接。它不承担模型推理,网关该在哪跑还在哪跑,Companion更像一个遥控器,负责把网关状态常驻在任务栏右侧,省去每次手动开终端敲命令的麻烦。
我工作机每天一开,Companion自动连上WSL里的网关,托盘图标显示已连接,整个过程不用管。对不熟悉命令行的普通用户来说,这层包装能有效降低心理门槛。
6.2 配置步骤
从OpenClaw官方GitHub Release页面下载最新版Companion,解压或安装后运行。进入设置界面,一般只需填两项:
- Gateway URL:默认
http://localhost:3000,如果你的网关跑在另一台机器,就填那台机器的局域网IP加端口。 - 访问令牌:如果网关设置了令牌,这里也要填上。
保存后观察托盘状态,显示已连接就成了。接着在设置里开启开机自动启动,Windows重启后网关和Companion都会自己跑起来,体验非常接近原生应用。
6.3 连不上时的排查顺序
Companion连不上,最常见的原因不是它坏了,而是网关压根没起来。甚至有时候因为API密钥没配好,网关进程启动后直接退出,终端窗口一闪而过,看起来像是没运行过,实际上启动失败了。
我建议按这个顺序排查:
- 浏览器能不能打开网关地址?打不开,先查网关进程还在不在。
- 网关终端有没有报错?重点看环境变量有没有
ANTHROPIC_API_KEY。 - 设置里的URL是否多加了斜杠或者写成了
https?本地地址一般是http。 - 网关如果跑在WSL里,执行
wsl --status确认WSL状态正常。 - 最后再看Windows防火墙有没有拦截Companion的访问。
我有一次折腾了一个小时,最后发现是网关启动时因为缺少API Key直接退了,Companion这边一直提示找不到网关。那种日志不显眼,很容易被忽略。
7. Skill扩展:把OpenClaw调教成自己的工具
7.1 Skill机制简介
跑通网关只是开始,真正拉开体验差距的是你会不会写Skill。Skill本质上是一个Markdown说明书,模型在对话中识别到匹配场景时,会自动读取并按里面的流程执行。你可以把它理解成给AI写的“操作SOP”。
和临时在对话里说一堆要求相比,Skill最大的价值是稳定。每次执行都用同一套流程,不会因为表述变来变去而漏步骤。我最早只会复制别人的Skill,后来自己动手写了几个之后才意识到:这东西门槛极低,本质就是把你平时手动执行的命令流程写清楚。
7.2 一个能直接抄的重启Skill
在OpenClaw配置目录下的skills文件夹里,新建一个restart-project.md:
markdown复制---
name: restart-project
description: 当用户说“重启项目”时,按固定流程重启 myapp 项目
---
1. 进入项目目录:cd ~/projects/myapp
2. 停止旧进程:pkill -f "node server.js" || true
3. 拉取最新代码:git pull
4. 安装依赖:npm install
5. 启动服务:nohup node server.js > server.log 2>&1 &
保存后重启网关,然后直接说“帮我重启项目”,看它是否会按顺序执行。如果没触发,检查description字段里的触发词是否清晰。我的经验是描述写得越具体、触发词越多,召回率越高。
需要注意的是不同版本对Skill目录的探测规则略有差异。第一次写如果不生效,先确认目录位置正确,再看文件名大小写是否匹配。不要一上来就怀疑写错了。
7.3 值得抄作业的方向
几个我自己验证过好用的Skill方向:
- 文件归档:按月份或扩展名把下载目录分类整理。
- 每日巡检:定时生成CPU、磁盘、内存状态报告。
- 数据库备份:执行备份命令、压缩、清理超过7天的旧备份。
- 项目发布:拉代码、跑测试、构建、重启服务,一条流程走完。
还有搞机器人仿真的朋友问过,OpenClaw是不是和ROS2这些工具绑定了。其实没有,OpenClaw不会因为你装了它就能控制Gazebo仿真;但如果把ros2 launch那套启动参数、等待时间、环境配置都写进一个Skill,它就能稳定帮你执行整套流程。本质上是把“你平时手动执行的命令流程”交给了AI,这是Skill最有价值的用法。
7.4 Skill设计的原则
Skill不要一上来就写太复杂。我见过有人第一个Skill就写了三十多步,结果模型执行到一半连目录都没创建成功,回头排查时特别痛苦。从“一条命令能完成”的粒度开始,跑通之后再逐步加步骤,这是最稳妥的路径。
另外,每个Skill的职责要单一。“重启项目”和“归档文件”分开写,不要揉成一个。职责单一的Skill更容易被模型准确触发,也更容易维护。
最后说句实在话:OpenClaw这类工具,安装从来不是难点,真正难的是你想清楚要让它替你做什么。我至今还在每天给它的Skill列表加新东西,从最初的“帮我重启服务”,到现在的“自动归档会议截图”。它不会代替你思考,但确实能把那些重复、枯燥、有明确规则的操作从你手里接过去。如果你也想折腾,就从今天这篇里的npx命令开始,先让它学会看你的文件目录,再一步步放开权限。一个能跑通最小闭环的OpenClaw,比一百个收藏未读的教程更有价值。
