乐于分享
好东西不私藏

OpenClaw跨机调用本地大模型

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电脑上部署本地大模型,可以参考这篇文章:

4GB显存电脑跑Gemma4  26B  A4B大模型

在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