继续实践OpenClaw,好不容易把web 管理面板调通,再给它配上一个大模型

继续实践OpenClaw,好不容易把web 管理面板调通,再给它配上一个大模型

OpenClaw小龙虾是github 获得星标最多的项目,OpenClaw之所以能在GitHub上获得极高的关注度,主要原因在于它提供了一个功能强大、易于扩展的AI助手开发平台。把整个操作系统,打造成AI!

OpenClaw官网:OpenClaw — Personal AI Assistant

以前的安装记录:https://skywalk.blog.ZEEKLOG.net/article/details/157554991

本来感觉OpenClaw安装是挺简单的,没想到巨坑,有一台机器装好后没有web管理面板.....所以本来很简短的文档,写成了巨幅文档。

安装OpenClaw

先在192.168.1.12安装,但是它没有systemd服务,导致OpenClaw的服务无法自动启动。需要手工执行openclaw gateway命令启动。

后在192.168.1.19安装。但是装好后没有web管理面板,反复删除重装也没有,最后是安装的openclaw-cn ,才解决了问题。参见这个文档:https://skywalk.blog.ZEEKLOG.net/article/details/158741109

 npm安装

npm i -g openclaw

安装后启动

但是启动失败,没有openclaw命令。于是还是用一键安装。

pnpm安装

先配置pnpm
pnpm setup
激活pnpm环境
source /home/skywalk/.bashrc
安装OpenClaw
pnpm add -g openclaw@latest pnpm approve-builds -g # approve openclaw, node-llama-cpp, sharp, etc. 

耗时:

pnpm add -g openclaw@latest Done in 2m 20s using pnpm v10.30.3

pnpm approve-builds -g 选择build所有,耗时约5分钟

配置OpenClaw
openclaw onboard --install-daemon

一键安装

一键安装的好处是省心省力,啥依赖的软件都可以自己装,还能获得源代码。

缺点是国内会很慢,而且会因为github抽风而安装失败。

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git

也可以用这句

curl -fsSL https://openclaw.ai/install.sh | bash

显示

 🦞 OpenClaw Installer Your AI assistant, now without the $3,499 headset. ✓ Detected: linux Install plan OS: linux Install method: git Requested version: latest Git directory: /home/skywalk/openclaw Git update: 1 [1/3] Preparing environment · Node.js not found, installing it now · Installing Node.js via NodeSource · Installing Linux build tools (make/g++/cmake/python3)

安装的时候发现windows的powershell下可以一键安装,但是不想用自己的windows机器,就还是用ubuntu,用192.168.1.19那台。后来换成了1.12那台。

安装加速

为了加快安装速度,先apt安装上python3.11 

sudo apt install python3.11 

为了加速,手工安装了nodejs 24 ,参见文档:https://skywalk.blog.ZEEKLOG.net/article/details/149314275

也可以升级node,用命令:

npm install -g n 

因为github抽风,一键安装时到后期有可能报错:

fatal: unable to access 'https://github.com/openclaw/openclaw.git/': SSL connection timeout

那就用gitcode的镜像,手工下载,或者一键之前,先手工下载:

git clone https://gitcode.com/GitHub_Trending/cl/openclaw

注意,需要安装在用户根目录。

然后一键安装

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git

即使这样,因为github抽风,有时候也会碰到一些库无法安装成功的问题。

启动控制板

启动配置:

openclaw onboard

详细配置

配置模型

配置hooks

 Enable hooks? │ ◻ Skip for now │ ◻ 🚀 boot-md │ ◻ 📎 bootstrap-extra-files │ ◻ 📝 command-logger │ ◻ 💾 session-memory └ Please select at least one option.

显示:

◇ Control UI ───────────────────────────────────────────────────────────────────────────────╮ │ │ │ Web UI: http://127.0.0.1:18789/ │ │ Web UI (with token): │ │ http://127.0.0.1:18789/#token=020470d43020470d43 │ │ Gateway WS: ws://127.0.0.1:18789 │ │ Gateway: not detected (gateway closed (1006 abnormal closure (no close frame)): no close │ │ reason) │ │ Docs: https://docs.openclaw.ai/web/control-ui │ │ │ ├──────────────────────────────────────────────────────────────────────────────────────────◇ Dashboard ready ────────────────────────────────────────────────────────────────╮ │ │ │ Dashboard link (with token): │ │ http://127.0.0.1:18789/#token=020470d43020470d43 │ │ Copy/paste this URL in a browser on this machine to control OpenClaw. │ │ No GUI detected. Open from your computer: │ │ ssh -N -L 18789:127.0.0.1:18789 [email protected] │ │ Then open: │ │ http://localhost:18789/ │ │ http://localhost:18789/#token=020470d43020470d43 │ │ Docs: │ │ https://docs.openclaw.ai/gateway/remote │ │ https://docs.openclaw.ai/web/control-ui │ │ │ ├──────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Web search (optional) ─────────────────────────────────────────────────────────────────╮ │ │ │ If you want your agent to be able to search the web, you’ll need an API key. │ │ │ │ OpenClaw uses Brave Search for the `web_search` tool. Without a Brave Search API key, │ │ web search won’t work. │ │ │ │ Set it up interactively: │ │ - Run: openclaw configure --section web │ │ - Enable web_search and paste your Brave Search API key │ │ │ │ Alternative: set BRAVE_API_KEY in the Gateway environment (no config changes). │ │ Docs: https://docs.openclaw.ai/tools/web │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯──╯

发现只能本地登录,寻找可以远程访问的方法。(后来发现官方给出ssh转发的解决方案,实践文档见:https://skywalk.blog.ZEEKLOG.net/article/details/158654550)

开启局域网访问

如果为了安全,并不需要开启局域网访问,如果要开,用这句:

openclaw config set gateway.bind lan

OpenClaw 的默认配置中,gateway.bind 选项的值是 ‌loopback‌。

这意味着网关默认只监听本地回环地址(如 127.0.0.1 或 localhost),因此只能在本地访问控制界面。

可以使用ssh映射来解决真侦听本地的问题:https://skywalk.blog.ZEEKLOG.net/article/details/158654550

启动服务

openclaw gateway --port 18789 --verbose

web登录127.0.0.1:18789

配对和批准

如果登录报错:pairing required ,那就需要进行配对操作。

列出配对值

openclaw devices list

批准配对

openclaw devices approve

最终web 控制面板终于可以打开了。

先进行到这里,以后再调试大模型部分。

配置大模型

尝试了很多免费的大模型,比如星河社区免费部署的ERNIE-4.5-21B-A3B-Paddle ,Atomgit的三款免费模型,都无法使用,主要是那些免费模型都只提供4k的token 长度,不够用。

用千帆大模型ERNIE-Lite-Pro-128K进行了测试,跑出来效果如下:

总结

这次安装OpenClaw走了很多弯路,甚至一些弯路到现在都不知道为什么会出问题。总之github这块很坑。

现在能跑通的方案是:

直接安装openclaw-cn国产软件:

pnpm install -g openclaw-cn --registry=https://registry.npmmirror.com # 初始化配置(自动生成国内适配的配置文件) openclaw-cn onboard --install-daemon

然后再搭载国产收费大模型即可。

大模型的使用量较大

openclaw跑起来是吞金兽,用下来使用千帆最便宜的模型Ernie lite pro一次对话(比如问个天气,问下当前系统软硬件情况)大约要花费0.02元,稍微问2-3个问题就要花费0.1元左右,贵的模型价格大约5-10倍,这样就要1元左右,真要让它完成点任务,不包月是不行的。

国产替代WinClaw

可以试试WinClaw ,官网https://winclaw.cn/

目前每天1千万免费token额度,可以完成几个小任务。

调试

提醒npm notice To update run: npm install -g [email protected]

npm notice New minor version of npm available! 11.6.2 -> 11.11.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.11.0
npm notice To update run: npm install -g [email protected]
npm notice

直接安装新版本

npm install -g [email protected]

提醒npm error [email protected]: Permission denied (publickey).

npm i -g openclaw
npm error code 128
npm error An unknown git error occurred
npm error command git --no-replace-objects ls-remote ssh://[email protected]/whiskeysockets/libsignal-node.git
npm error [email protected]: Permission denied (publickey).
npm error fatal: Could not read from remote repository.
npm error
npm error Please make sure you have the correct access rights
npm error and the repository exists.

可能是github抽风的问题,npm升级到11.11.0之后,再次安装就成功了

npm i -g openclaw

安装报错

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git

> [email protected] canvas:a2ui:bundle /home/skywalk/openclaw
> bash scripts/bundle-a2ui.sh


 ERROR  Build failed with 1 error:

[UNRESOLVED_ENTRY] Error: Cannot resolve entry module apps/shared/OpenClawKit/Tools/CanvasA2UI/bootstrap.js.


    at aggregateBindingErrorsIntoJsError (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/shared/error-BYPsvVEN.mjs:52:18)
    at unwrapBindingResult (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/shared/error-BYPsvVEN.mjs:22:128)
    at #build (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/shared/rolldown-build-BsRSEDqH.mjs:3356:34)
    at async bundleInner (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/cli.mjs:428:49)
    at async bundleWithConfig (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/cli.mjs:342:7)
    at async main (/home/skywalk/.cache/pnpm/dlx/c8943ea703ce9e1da9a357b31cbe8add6ea77c112c8662bde3843783de9e1e34/19cb6887e19-1f57/node_modules/.pnpm/[email protected]/node_modules/rolldown/dist/cli.mjs:600:3)

A2UI bundling failed. Re-run with: pnpm canvas:a2ui:bundle
If this persists, verify pnpm deps and try again.
ELIFECYCLE  Command failed with exit code 1.
ELIFECYCLE  Command failed with exit code 1.

pnpm update

不管用。

进入openclaw目录,执行

pnpm store prune rm -rf node_modules # 重新安装依赖并构建 pnpm install

还是没有openclaw命令,build

pnpm build

重新安装?

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git

不行,最后这里总算用sudo过去了....

sudo npm i -g openclaw

浏览器登录报错origin not allowed

origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

修改.openclaw/openclaw.json 文件

 "gateway": { "port": 18789, "mode": "local", "bind": "lan", "controlUi": { "allowedOrigins": [ "http://localhost:18789", "http://127.0.0.1:18789", "http://192.168.1.12:18789"

加入这句: "http://192.168.1.12:18789"

加入这句之后报错变成:

control ui requires device identity (use HTTPS or localhost secure context)

最后使用ssh转发到127.0.0.1的方式

chat报错:403 status code (no body)

星河社区的模型:PaddlePaddle/ERNIE-4.5-21B-A3B-Paddle 
在OpenClaw里面使用,报错:403 status code (no body)

这个可能是星河社区的模型未启动。

启动后,报错是:

OpenClaw一键安装报错:Updating repository failed — re-run with --verbose for details

[2/3] Installing OpenClaw
· Installing OpenClaw from git checkout: /home/skywalk/openclaw
✓ Git already installed
✓ pnpm ready (pnpm)
✗ Updating repository failed — re-run with --verbose for details
✗ Installing dependencies failed — re-run with --verbose for details

加上--verbose

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --verbose

看详细的报错信息。

我晕,原来是空间用完了

25G 24G 0 100% /

再多分15G过来

继续安装。

一键安装报错ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED  Failed to prepare git-hosted package fetched from 

Downloading @rolldown/[email protected]: 8.47 MB/8.47 MB, done
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED  Failed to prepare git-hosted package fetched from "https://github.com/tloncorp/api-beta.git": The git-hosted package "@tloncorp/[email protected]" needs to execute build scripts but is not in the "onlyBuiltDependencies" allowlist.

Add the package to "onlyBuiltDependencies" in your project's pnpm-workspace.yaml to allow it to run scripts. For example:
onlyBuiltDependencies:
  - "@tloncorp/api"

再重新运行一次:

curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method git --verbose

碰到新的报错:

报错ERROR  Command failed with exit code 128: git fetch --depth 1 origin

ERROR  Command failed with exit code 128: git fetch --depth 1 origin 7eede1c1a756977b09f96aa14a92e2b06318ae87
error: RPC failed; curl 16 Error in the HTTP2 framing layer
fatal: expected flush after ref listing

pnpm: Command failed with exit code 128: git fetch --depth 1 origin 7eede1c1a756977b09f96aa14a92e2b06318ae87
error: RPC failed; curl 16 Error in the HTTP2 framing layer
fatal: expected flush after ref listing
    at makeError (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:12901:17)
    at handlePromise (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:13472:33)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async execGit (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:97574:7)
    at async gitFetcher (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:97527:11)
    at async fetcher (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:108986:16)
    at async run (/home/skywalk/.cache/node/corepack/v1/pnpm/10.23.0/dist/pnpm.cjs:108377:23)

1.19服务器碰到Not Found问题

 curl http://localhost:18789/
Not Found

看看端口,有侦听啊

openclaw config get gateway.bind 🦞 OpenClaw 2026.3.2 (85377a2) — I'm basically a Swiss Army knife, but with more opinions and fewer sharp edges. loopback skywalk@ub19:~/.openclaw$ netstat -an |grep 18789 tcp 0 0 127.0.0.1:18789 0.0.0.0:* LISTEN tcp6 0 0 ::1:18789 :::* LISTEN

发现直接用127.0.0.1地址,是拒绝

skywalk@ub19:~/.openclaw$ curl 127.0.0.1:18789 curl: (7) Failed to connect to 127.0.0.1 port 18789 after 0 ms: Connection refused skywalk@ub19:~/.openclaw$ curl localhost:18789 Not Founds

最后是安装openclaw-cn软件解决的,见:https://skywalk.blog.ZEEKLOG.net/article/details/158741109

1.12服务碰到报错pairing required

Chat

Direct gateway chat session for quick interventions.

pairing required

                              Main Session                        |

Disconnected from gateway.

pairing required

是因为没有配对,先列出来:

openclaw devices list

批准配对

openclaw devices approve 9f52af31-fcd # 配对值

问题解决

1.12服务器碰到报错:Inference Serverless API for this model not found.

应该是推理模型还有点问题。

最终是在1.19这台服务器,用ERNIE-Lite-Pro-128K模型跑通的。

Read more

前端图片加载失败、 img 出现裂图的原因全解析

在前端开发过程中,我们几乎都遇到过这种情况: 页面中某张图片加载不出来,显示成一个小小的“裂图”图标。 这看似简单的问题,实际上可能由多种原因造成,尤其是在 HTTPS 环境下,混合内容机制(Mixed Content) 是最常见、也最容易被误解的根源之一。 本文将带你系统梳理裂图的各种原因、排查思路,并重点讲清楚混合内容的原理与浏览器行为。 一、什么是“裂图”? “裂图”(broken image)是指浏览器尝试加载 <img> 标签的图片资源失败时的表现形式。 常见表现: * 图片区域显示为灰底、叉号、占位符; * 控制台出现 Failed to load resource 或 Mixed Content 警告; * Network 面板中图片请求状态码为 404 / 403 / blocked。 二、常见的裂图原因汇总

By Ne0inhk

QwQ-32B快速入门:5步完成部署+WebUI配置全攻略

QwQ-32B快速入门:5步完成部署+WebUI配置全攻略 你是否试过在本地跑一个真正会“思考”的大模型?不是简单地续写句子,而是能拆解问题、分步推理、验证假设——就像人类工程师调试代码那样。QwQ-32B正是这样一款模型:它不靠堆参数取胜,而是用结构化思维能力,在数学推导、代码生成、复杂逻辑问答等任务中稳稳压过不少同规模模型。 本文不讲论文、不谈训练细节,只聚焦一件事:让你在30分钟内,从零启动QwQ-32B,并拥有一个顺手的网页对话界面。全程无需GPU服务器,MacBook M1 Pro、Windows笔记本甚至高性能台式机都能流畅运行。所有步骤已实测验证,连命令行报错和替代方案都给你标好了。 1. 认清QwQ-32B:它不是另一个“聊天机器人” 在动手前,先划清重点——QwQ-32B和你熟悉的Qwen、Llama、Phi系列有本质区别。 1.1 它专为“推理”而生,不是“续写”工具 传统语言模型像一位博闻强记的图书管理员:你问“牛顿三大定律是什么”

By Ne0inhk
纯QWidget绘制实现电子地图控件/非qml非web/多线程下载和加载瓦片/支持各种图形

纯QWidget绘制实现电子地图控件/非qml非web/多线程下载和加载瓦片/支持各种图形

一、前言说明 之前做的地图组件,耗费了巨大的时间精力,前后完善了五年之多,能够想到的应用场景几乎都实现了,也有不少的用户,现场实际需求也不断反馈,不断的修改和增加功能,尽管优点很多,依然有个巨大缺点就是依赖浏览器控件,性能肯定是要打折扣的,毕竟有些嵌入式板子甚至老的开发环境,不一定有浏览器控件,就算有,在嵌入式板子环境上或者一些国产硬件的系统上,配置比较低,在浏览器上运行的网页,性能指数级下降,甚至一些环境连GPU都没有,老板为了节省成本,尽量选一些配置低的板子,所以也没有一种可能用QWidget绘制来实现呢,这样性能极好,而且控制度极高,qt的painter非常灵活可靠。 经过大量的尝试改造,总算在今年实现了这个地图控件,不依赖浏览器控件,也不依赖qml,有些人用的Qt自带的qml的location组件来实现的,这个尽管方便,但是性能也低,因为嵌入式环境配置低的板子,根本无法正常跑起来qml,别提要新版的Qt才有qlocaltion组件。用qwidget来实现有两个最大难点,一个是如何将地理坐标映射到像素绘制坐标,一个是如何快速的加载瓦片多线程绘制,这个必须采用多个分层绘制的机制

By Ne0inhk
【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

目录 【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦 一、为什么要做全局错误处理? 1、将业务逻辑与错误处理解耦 2、为监控和埋点提供统一入口 二、Vue 中的基础全局错误处理方式 1、Vue 中全局错误处理写法 2、它会捕获哪些错误? 3、它不会捕获哪些错误? 4、errorHandler 的参数含义 三、全局错误处理的进阶设计 1、定义“可识别的业务错误” 2、在 errorHandler 中做真正的“分类处理” 3、补齐 Promise reject 的捕获能力 4、错误处理的策略化封装 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

By Ne0inhk