OpenClaw跨机调用本地大模型
想在一台电脑B上运行openclaw,调用32GB内存A电脑本地大模型,在同一局域网
因为大模型运行,内存占用太高,一台电脑同时跑大模型和openclaw,容易内存跑满
于是,一台跑大模型,一台跑openclaw
模型:
gemma-4-26B-A4B-it-Q4_K_M.gguf
最后跑的效果:
B电脑跑openclaw时,问了三次问题,A电脑内存占用就达到了97%
所以用这个方法,跑模型的电脑,内存要大于32GB才行,32GB的电脑只能尝下鲜,或者用更小参数的模型
具体步骤如下:
在B笔记本上准备WSL2及Linux环境
检查WSL2是否已安装并启用
验证方法:
在B笔记本的PowerShell(管理员)中执行:
wsl --list --verbose
若WSL2还没有安装和启用
安装WSL2
下载WSL2内核更新包
访问:https://aka.ms/wsl2kernel
点击:WSL2 Linux内核更新包适用于x64计算机,进行下载
下载链接:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
下载WSL安装程序(MSI)
访问WSL GitHub Releases下载最新的wsl.2.x.x.x.x64.msi
网址:
https://github.com/microsoft/WSL/releases
下翻网页,点击:wsl.2.6.3.0.x64.msi,进行下载
安装下载的组件
双击运行wsl.2.6.3.0.x64.msi完成WSL核心安装
启用 WSL 与虚拟机平台功能
以管理员身份打开 PowerShell,执行以下命令(逐行运行)
安装 Windows Subsystem for Linux (WSL) 这个核心组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
启用虚拟机平台:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
设置 WSL2 为默认版本:
wsl --set-default-version 2
重启电脑,让已启用的 WSL 和虚拟机平台功能完全生效
验证安装成功:
重启后,再次运行:
wsl --list --verbose
若正常显示信息或提示无发行版,即表示WSL2基础环境已就绪
双击运行内核更新包:
wsl_update_x64.msi
下载ubuntu-24.04.4-wsl-amd64.wsl
访问:https://ubuntu.com/download/wsl
点击:
Intel or AMD 64-bit architecture后的download进行下载
创建安装目录:
mkdir C:\WSL_Ubuntu
执行导入命令:
wsl --import Ubuntu-24.04 C:\WSL_Ubuntu "C:\anzhuangruanjian\WSL\ubuntu-24.04.4-wsl-amd64.wsl" --version 2
验证导入的发行版
执行命令查看已导入的WSL发行版:
wsl --list --verbose
启动Ubuntu 24.04
执行以下命令进入该发行版系统:
wsl -d Ubuntu-24.04
看到:
root@DESKTOP-84VBQVB:/mnt/c/Windows/system32#
这个是Ubuntu Linux的命令行终端,说明环境已经完美就绪
现在是root(超级管理员)账号登录的,不推荐长期用root操作,需要创建一个普通用户(更安全、符合Linux标准用法)
创建用户的命令
在现在这个root终端里,逐行运行下面3条命令:
1.创建用户xyz123(你想要的用户名)
useradd -m xyz123
2.设置密码(输入时不会显示,输完按回车)
passwd xyz123
3.给用户管理员权限
usermod -aG sudo xyz123
4.退出WSL
exit
设置默认用xyz123登录:
notepad "\\wsl$\Ubuntu-24.04\etc\wsl.conf"
输入内容:
[user]
default=xyz123
保存并关闭
重启WSL使配置生效:
wsl --terminate Ubuntu-24.04wsl -d Ubuntu-24.04
看你最后一行显示的是:$
这就说明:
已经用普通用户xyz123正常登录了
WSL2完全正常运行
Ubuntu24.04工作稳定
权限、配置全部正确
安装Node.js 22
在wsl中安装
安装命令:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs
验证是否安装成功:
node --version # 应显示 v22.x.xnpm --version # 显示npm版本号
在B笔记本的WSL2中安装并配置OpenClaw
安装OpenClaw,在WSL2终端里,运行:
sudo npm install -g openclaw@latest
报错了,执行修复命令:
git config --global url."https://github.com/".insteadOf ssh://git@github.com/
接着安装:
sudo npm install -g openclaw@latest --unsafe-perm=true --allow-root
看终端最后一行:added 750 packages in 28m
这就是npm安装成功的标准提示
进行验证:
openclaw --version
只要出现版本号,就代表安装成功
初始化OpenClaw配置文件
必要性:初次使用需生成默认配置结构
执行命令:
openclaw setup
验证生成配置文件:
ls ~/.openclaw/
能看到openclaw.json等文件,说明配置成功
确认A电脑上的API服务可供局域网访问
A电脑上启动一个llama-server来托管Gemma4模型,为OpenClaw提供API服务
打开PowerShell,运行以下命令启动大模型,开启API服务:
cd C:\llama.cpp\build\bin\Release.\llama-server.exe -m "C:\anzhuangruanjian\DaMoXing\gemma-4-26B-A4B-it-Q4_K_M.gguf" --host 0.0.0.0 --port 8080 -ngl 99 -c 32768 --cpu-moe
A电脑上部署本地大模型,可以参考这篇文章:
在A电脑上检查llama-server运行状态
在A电脑上打开PowerShell,执行命令:
netstat -an | findstr :8080
看到 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING ,表示服务监听在所有网络接口上
在A笔记本上确认防火墙规则存在并生效
在A笔记本上以管理员身份打开PowerShell,执行:
Get-NetFirewallRule -DisplayName "Allow llama-server 8080" | Where-Object Enabled -eq 'True'
显示一条规则,其 Enabled 为 True,Direction 为 Inbound,规则名称完全匹配:Allow llama-server 8080
表明防火墙规则存在并生效
局域网其他设备访问A笔记本IP:8080不会被Windows防火墙拦截
获取A笔记本的局域网IP地址
B笔记本需要此IP才能访问API
在A笔记本的PowerShell中执行:
ipconfig
无线局域网适配器 WLAN 3下的IPv4 地址:192.168.3.32
在B笔记本上测试与A笔记本的网络连通性
在B笔记本上打开命令提示符或PowerShell,执行:
ping 192.168.3.32
收到来自192.168.3.32的回复,且延迟较低,表明已经联通了
在B笔记本上测试API端点可达性
验证方法:
在B笔记本上打开浏览器,输入:
http://192.168.3.32:8080/
浏览器显示llama-server的Web界面,表明B电脑可以访问到A电脑的大模型
为OpenClaw配置自定义API端点(指向A笔记本)
彻底清除可能存在的损坏配置:
rm -f ~/.openclaw-dev/openclaw.json ~/.openclaw/openclaw.json
重新初始化默认配置:
openclaw setup
看到:
Wrote ~/.openclaw/openclaw.json代表完成
使用交互式向导openclaw onboard完成配置:
openclaw onboard
在向导中,按照以下顺序选择(↑↓方向键移动,回车确认):
-
Security warning → 选 Yes
-
Setup mode → 选 QuickStart
-
Config handling → 选 Use existing values(若出现此提示)
-
Model/auth provider → 向下滚动选择 Custom Provider
-
API Base URL → 输入 http://192.168.3.32:8080/v1
-
How do you want to provide this API key? → 选 Paste API key now
-
API Key (leave blank if not required) → 输入 dummy
-
Endpoint compatibility → 选 OpenAI-compatible
-
Model ID → 输入 gemma4-local
系统会自动验证并生成 Endpoint ID(如 custom-192-168-3-32-8080),Model alias 可再次输入 gemma4-local(或直接回车)
-
Select channel → 选 Skip for now
-
Search provider → 选 Skip for now
-
Configure skills now? → 选 No
-
Enable hooks? → 选 Skip for now
最终显示 Onboarding complete,并给出 Web UI 地址和 Token
Web UI地址和Token:
http://127.0.0.1:18789/#token=0d89c89ed1efa6484de3233c41eff07e1cab74ff26ecf288
启动网关:
openclaw gateway
日志中出现类似以下内容,代表成功启动:
[gateway] agent model: custom-192-168-3-32-8080/gemma4-local
[gateway] ready …
测试对话
在B笔记本浏览器中打开向导最后给出的带Token的链接:
http://127.0.0.1:18789/#token=0d89c89ed1efa6484de3233c41eff07e1cab74ff26ecf288
就能通过浏览器访问openclaw,并能调用本地大模型
难点和问题到底出在哪里
卡在openclaw配置文件的结构和生成方式上
openclaw新版本不再接受直接在models: { “gemma4-local”: {…} }这样的写法
它要求模型必须挂载在某个提供商(provider)之下
手动添加的各种JSON片段,要么放错了层级,要么缺少必要的键,导致openclaw解析时报错:Unrecognized key: “gemma4-local”
手动编辑JSON极其容易引入格式错误
-profile dev 与默认 profile 的混乱
前期一直针对 –profile dev(即 ~/.openclaw-dev/openclaw.json)操作,后来损坏后,默认的 ~/.openclaw/openclaw.json 也残留了错误配置,而openclaw onboard读取的是默认配置文件,二者交织在一起,导致即使修复了一边,另一边仍然会报错
最终成功的操作是通过rm -f把两个文件全部删除,彻底回到出厂状态,再用openclaw setup + openclaw onboard重建,才彻底解决问题
最终成功可以归结为三个步骤:
彻底删除所有已污染的配置文件
rm -f ~/.openclaw-dev/openclaw.json ~/.openclaw/openclaw.json
这一步解决了之前错误的干扰
使用openclaw setup重新生成干净的基础配置
不再手动写JSON,让程序自己生成骨架
完全依赖openclaw onboard交互式向导完成模型绑定
这是关键的一步。向导内部知道正确的schema,会把交互界面填入的Base URL、Model ID、API Key等信息,自动构造成合法的JSON并写入配置文件,同时也自动设置好了默认模型
在整个流程中,环境搭建、网络连通等都没有什么问题,真正的难点在于openclaw新版配置格式的严格性,以及手动编写JSON极易出错。最后不再手动修改配置文件,转而使用官方自带的onboard向导自动生成,终于解决问题
所有配置等完成后,重新启动大模型和openclaw的步骤:
A笔记本上启动大模型API
打开A笔记本的PowerShell,执行:
cd C:\llama.cpp\build\bin\Release.\llama-server.exe -m "C:\anzhuangruanjian\DaMoXing\gemma-4-26B-A4B-it-Q4_K_M.gguf" --host 0.0.0.0 --port 8080 -ngl 99 -c 32768 --cpu-moe
在B笔记本上启动openclaw网关:
openclaw gateway
看到以下输出即表示成功:
[gateway] agent model: custom-192-168-3-32-8080/gemma4-local
[gateway] ready …
打开浏览器对话
在B的浏览器中访问:
http://127.0.0.1:18789/#token=0d89c89ed1efa6484de3233c41eff07e1cab74ff26ecf288
夜雨聆风