蓝香蕉代码 |【鸿蒙电脑使用openclaw小龙虾】

蓝香蕉代码 |【鸿蒙电脑使用openclaw小龙虾】

鸿蒙电脑AI-openclaw

关于openclaw

上次我们讲到鸿蒙电脑如何使用claude code/iflow,这次我们再尝试使用下openclaw

openclaw:钢铁侠的贾维斯

OpenClaw 是一个开源的 AI Agent 框架,本质上是一个能“主动做事”的个人智能代理平台,而不仅仅是一个聊天机器人。它通过自然语言指令,连接大模型与本地系统工具,实现对电脑文件、应用、浏览器、邮件等资源的自动化操作,被许多用户称为“能指挥电脑的数字员工”或“24小时待命的贾维斯”。

核心能力与特点

  • 任务自动化执行‌
    OpenClaw 能理解并拆解自然语言指令,自动完成一系列复杂操作,例如:这些任务无需编程,仅靠日常语言即可触发。
    ‌本地优先,隐私可控‌,它运行在用户自己的设备(如个人电脑或云服务器)上,所有数据处理和记忆存储都在本地完成,避免敏感信息上传至第三方平台,保障隐私安全。
    • “整理本周工作邮件并生成待办清单”
    • “比价10款笔记本,选出性价比最高的并发送链接给我”
    • “每天早上8点从新闻网站抓取AI领域动态,汇总成简报发到钉钉群”
  • 跨平台协同与多模型兼容‌
    支持通过 WhatsApp、Telegram、钉钉、飞书等通讯工具接收指令,可调用阿里云百炼、OpenAI、通义千问等不同大模型,根据任务需求切换 Qwen3-max(强推理)、GPT-4(通用强)等模型,灵活适配场景。
  • 系统级操作权限‌
    具备读写文件、运行脚本、控制浏览器、管理日程等系统级能力,真正实现“替你动手”,而非仅回答问题。

前身与品牌演变‌

OpenClaw 前身为 Clawdbot 和 Moltbot,因商标问题经历更名,2026年初正式统一为 OpenClaw。原有用户配置可无缝迁移,功能架构未变。

注意点

尽管 OpenClaw 功能强大,但也存在潜在风险:由于其拥有高系统权限,若未妥善管理工具调用权限,可能引发数据泄露或误操作,因此建议在可信环境中使用,并启用访问控制机制。

鸿蒙电脑部署OpenClaw

通用工具部署

两款软件均需要海量的工具集,尤其是git、Node.js

  • 设备:我使用的MateBook Pro已经升级到6.0.0.120版本,建议升级到该版本以上
  • 代码管理工具GitNext,作为代码管理工具下载管理三方库等,下载后可在系统终端中使用(个人推荐),也可以使用界面管理
  • Node.js: DevNode-OH,包含了Node.js运行时及npm工具等
  • 编译工具链DevBox,包含了llvmclangautoconfbashcmakemakeninjahdchnpclim4等编译基础工具,安装后可在系统的终端中使用
  • Python环境Python安装器,包含了python3.12的运行时,下载后可在终端中执行python脚本
  • Java环境BiShengJDK8-OH \ BiShengJDK17-OH,用于提供Java虚拟机环境,这个在之前的文章编译获取鸿蒙版本JDK中也讲到过(我这里使用的是JDK17)

华为应用市场下载快捷入口:
应用市场:BiShengJDK17-OH
应用市场:DevBox
应用市场:Python安装器
应用市场:GitNext
应用市场-DevNode-OH

node环境部署

  • 创建并设置node的安装目录
mkdir -p /storage/Users/currentUser/npm npm config set prefix -g /storage/Users/currentUser/npm 
  • 设置环境变量
    由于鸿蒙电脑的终端当前默认为zsh,所以需要将环境变量写入zshrc,环境变量下如下目录
/storage/Users/currentUser/.zshrc 

export PATH=$PATH:/storage/Users/currentUser/npm/bin写入.zshrc

在这里插入图片描述
  • 使能环境变量,保障环境变量写入zsh中(同时下次启动终端会继承,不用每次设置)
source /storage/Users/currentUser/.zshrc 

安装openclaw

直接通过npm安装会报错syscall spawn git,所以需要安装GitNext来使系统有git可用,记得完成sshkey配置

在这里插入图片描述
git config --global user.name "你的名字" git config --global user.email "你的邮箱" ssh-keygen -t rsa -b 4096 -C "你的邮箱" 

直接安装还有另一个问题,openclaw依赖node-llama-cpp,这是一个Node.js 绑定库,基于 llama.cpp 实现,允许开发者在本地机器上运行大型语言模型(LLMs),无需依赖云端服务。依赖本地模型能力,这里先跳过

在这里插入图片描述

最终使用的命令如下:

npm install -g --legacy-peer-deps openclaw@latest 
在这里插入图片描述


至此,openclaw安装完成

本地化适配

首次在终端中执行openclaw会弹出非应用市场扩展程序的提示,按照提示点击去设置打开开关,后续可以通过在设置中搜索运行来自非应用市场的扩展程序手动打开或者关闭

在这里插入图片描述


在这里插入图片描述


再次执行openclaw会提示是否运行xxx,点击运行即可

在这里插入图片描述
指定解释器

指定解释器有两种方案

  1. 方案2
    或者执行node openclaw执行也可以规避该问题(手动指定解释器避免系统自动寻找)

方案1:修改源码
/storage/Users/currentUser/npm/bin/openclaw第一行的#!/usr/bin/env node修改为#!/bin/env node,因为鸿蒙电脑没有usr,所以去掉usr,用/bin/env指定node解释器;
修改前:

在这里插入图片描述


修改后:

在这里插入图片描述

再次执行后,可以看到已经可以执行,但是仍然存在问题

在这里插入图片描述
修改日志

由于鸿蒙电脑中没有/tmp目录,所以这部分需要定制化修改,当前报错主要原因为openclaw的logger模块使用了默认的/tmp目录,所以我们需要定制

  1. openclaw的resolveConfigPath函数遵循用户自定义 > 现有配置文件 > 状态目录覆盖 > 默认目录的优先级解析配置文件路径;该函数遵循用户自定义 > 现有配置文件 > 状态目录覆盖 > 默认目录的优先级解析配置文件路径;
  2. 核心设计目标是兼容旧配置 + 保证路径必有值,同时通过异常捕获避免文件检查时崩溃;
  3. 环境变量 OPENCLAW_CONFIG_PATH 拥有最高优先级,是手动指定配置文件的最佳方式。我们可以通过环境变量直接指定
    首先创建配置目录
mkdir -p ~/.openclaw 

将以下代码写入./zshrc文件,生效长期的环境变量

export OPENCLAW_CONFIG_PATH="~/.openclaw/claw.json" # 指定配置文件路径 
在这里插入图片描述

然后创建配置文件~/.openclaw/claw.json,将以下配置写入文件中;

写入文件的内容

{ "logging": { "level": "info", "file": "~/.openclaw/logs/claw.log", } } 

保存好后,再次source ~/.zshrc使能环境变量,再次执行openclaw cli就可以运行了

在这里插入图片描述
设置Gateway

由于鸿蒙系统没有类似systemd lanchd等守护服务机制,所以我们需要手动拉起Gateway

openclaw gateway --port 18789 --verbose 
在这里插入图片描述


此时我们发现没有设置gateway mode,我们仍然修改~/.openclaw/claw.json文件,在其中增加以下字段

{ "logging": { "level": "info", "file": "~/.openclaw/logs/claw.log", }, "gateway": { // 新增 "mode": "local", "auth": { "mode": "token", // 认证模式(默认token) "token": "my-secret-token-123456" // 自定义认证令牌 } } } 

我们的命令中通过 --port进行了端口指定,当然也可以将该配置写入配置文件,"port": 18789, // 永久指定网关端口,这样的弊端是在端口冲突的情况下,需要反复修改配置文件或再次手动指定端口,不如一步到位,直接使用 --port 参数动态指定
恭喜你,看到以下状态,openclaw的gateway就运行起来了,可以看到首行会提示地址为http://127.0.0.1:18789/__openclaw__/canvas/

在这里插入图片描述
网页客户端验证

我们在gateway中,已经启动服务,我们可以通过浏览器访问本地服务,将上一步的地址http://127.0.0.1:18789/__openclaw__/canvas/修改为http://127.0.0.1:18789/__openclaw__/overview在浏览器打开,如下

在这里插入图片描述


由于我们只配置了token,在上述位置填入我们配置的token my-secret-token-123456,然后点击connect即可建立链接

在这里插入图片描述


此时我们在回到chat窗口既可以开启对话了

配置

由于Gateway配置只是校验是否可以正常启动,因此我们还需要继续配置真正访问的AI服务,先退出gateway配置的页面,然后执行命令启动配置

openclaw onboard 
在这里插入图片描述


现在正处在 OpenClaw 机器人的初始化(onboarding)流程中,核心是需要确认你是否理解其安全风险并选择继续安装流程,当前界面默认选中的是「No」,需要手动切换到「Yes」才能继续。通过左右键选择并使用回车确认

在这里插入图片描述


我们目前选择QuickStart,使用上下键选择回车确认

在这里插入图片描述


这里由于我们已经在配置文件中写好mode为local,因此引导程序跳过了mode配置,这里我们选择Use existing values即可

在这里插入图片描述


这里我选择智谱的GLM做演示(资金有限见谅见谅),光标切换到Z.AI(glm4.7)回车即可

在这里插入图片描述


服务商自动选择,我们直接选择通过API Key的方式,回车即可

在这里插入图片描述


此时j将API key 粘贴后回车就好,没有的同学可以访问ZHIPU·AI注册,创建API Key,注册创建的教程一大把,这里就不啰嗦了

在这里插入图片描述


这里选择保持就行

在这里插入图片描述


接下来我不暂时不需要对接聊天机器人,直接选择跳过即可

在这里插入图片描述


这里我们选择配置skills,所以回车即可

在这里插入图片描述


这里安装直接选择No,后续需要在配置就行

在这里插入图片描述


这里选择npm

在这里插入图片描述


空格选择skip继续

在这里插入图片描述


接下来一系类API Key设置可以暂时跳过

在这里插入图片描述


hook的也可以继续跳过,后续需要可以继续配置

在这里插入图片描述


此时已经完成了所有的配置,提示在鸿蒙上无法支持,我们再次手动启动gateway即可

使用GLM 4.7
  1. 执行openclaw gateway --port 18789 --verbose启动服务

新建shell窗口,执行openclaw tui可以进入终端控制台

在这里插入图片描述

在浏览器中打开http://127.0.0.1:18789/openclaw/overview在看到已经连接,在chat页面就可以聊天了

在这里插入图片描述

更新问题列表

Unsafe fallback OpenClaw temp dir

isSecureDirForUser 排查1 - 2026/02-26

最近的版本openclaw代码有些变化,dist/entry.js代码中,ensureTrustedFallbackDir方法对目录进行了判断,这里不适用鸿蒙的逻辑,所以需要进行修改,核心逻辑在isSecureDirForUser中,这里的 uid判断是不适用的,如下

在这里插入图片描述


因此将这里改为直接return true,openclaw版本变更比较快,关注这个逻辑即可,修改后如下:

在这里插入图片描述
isSecureDirForUser 排查2 - 2026-03-11

问题如下:

在这里插入图片描述


修改~/npm/lib/node_modules/openclaw/dist/subsystem-kzdGVyce.js文件,将isSecureDirForUser直接返回true即可,参考下图

在这里插入图片描述

npm 安装失败 2026-03-11

  • 问题描述:command git --no-replace-objects ls-remote ssh://[email protected]/whiskeysockets/libsignal-node.git
  • 原因:npm 安装 openclaw 时,需要从 GitHub 拉取依赖库 libsignal-node,但使用 SSH 协议 连接 GitHub 时认证失败(Permission denied (publickey))—— 你的系统没有配置有效的 SSH 公钥,或者公钥未添加到 GitHub 账号中,导致无法通过 SSH 访问私有 / 公有仓库。
    • 方案1:临时改用 HTTPS 协议拉取 GitHub 仓库(最简单)
    • 方案 2:配置 GitHub SSH 密钥(长期解决方案)
      参考链接:github官方ssh指导
      配置成功后再次执行npm install -g --legacy-peer-deps openclaw@latest
    • 方案3:手动安装依赖(备用)
      如果以上方案仍失败,可手动下载 libsignal-node 到本地,再安装:

解决方案:

# 全局配置:将 GitHub 的 SSH 链接自动转为 HTTPSgit config --global url."https://github.com/".insteadOf ssh://[email protected]/ # 然后重新执行安装命令npminstall-g --legacy-peer-deps openclaw@latest #(可选)安装完成后,如需恢复 SSH 配置,执行:# git config --global --unset url."https://github.com/".insteadOf
# 克隆仓库(HTTPS 方式)git clone https://github.com/whiskeysockets/libsignal-node.git # 进入仓库目录,安装依赖cd libsignal-node npminstall# 链接到全局(让 openclaw 能找到)npmlink# 回到原目录,安装 openclawcd..npminstall-g --legacy-peer-deps openclaw@latest 

尾声

openclaw提供了各类强大的能力,大家可以部署后尝试验证,后续有空我也也会根据鸿蒙系统进行特定的skill开发和openclaw适配,欢迎大家一起交流。

社区:OpenHarmonyPCDeveloper

QQ群:564903542ZEEKLOG
在这里插入图片描述在这里插入图片描述

附录

应用及环境相关工具开源应用
GitNext
BiShengJDKInstaller
bishengjdk-8
bishengjdk-17
DevPython-OH
DevBox
DevNode-OH|

Read more

Miniforge详细安装教程(macOs和Windows)

Miniforge详细安装教程(macOs和Windows)

(注:主要是解决商业应用anaconda收费问题,这是轻量级的代替,个人完全可以使用anaconda和miniconda)            Miniforge 是一个轻量级的包管理器,类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境,专注于兼容 ARM 架构的设备(如 Apple M1/M2 /M3芯片)和其它 CPU 架构。Miniforge 使用 conda-forge 作为默认的包管理渠道。下面是如何在不同系统中安装 Miniforge 的步骤。下面这些是本人安装过程出现的一些问题,及解决办法。 1. 在 macOS 和 Linux 上安装 Miniforge 步骤 1:下载 Miniforge 1. 访问 Miniforge GitHub

By Ne0inhk
会提问的人,正在用AI收割下一个十年

会提问的人,正在用AI收割下一个十年

文章目录 * 引言:一场关于AI的颠覆性对话 * 从对话到收入:AI时代的新型生产关系 * 会说话就能赚钱?这不是天方夜谭 * 从想法到产品:三天的魔法 * 技术民主化:AI不再是工程师的专属 * 打破技术壁垒的革命 * 文科生的优势在哪里? * AI时代的商业逻辑:用户付费意愿超预期 * 价值认知的转变 * 为什么用户愿意付费? * 新的商业模式 * AI的边界:思考仍然是人类的专属 * 技术的局限性 * 人机协作的最佳模式 * 实践指南:如何开始你的AI创作之旅 * 第一步:转变思维方式 * 第二步:从小项目开始 * 第三步:快速迭代 * 第四步:关注用户价值 * 第五步:建立商业模式 * 《脉向AI》:探索AI时代的无限可能 * 为什么要关注这期访谈? * 这不仅仅是一次访谈 * 结语:属于每个人的AI时代 引言:一场关于AI的颠覆性对话 在这个技术迅猛发展的时代,我们总是习惯性地认为,掌握AI技术是程序员和工程师的专属特权。但如果我告诉你,文科生可能才是A

By Ne0inhk
Flutter 三方库 http_helper 的鸿蒙化适配指南 - 打造标准化的 REST 客户端封装、支持响应式异常拦截与请求全流程钩子

Flutter 三方库 http_helper 的鸿蒙化适配指南 - 打造标准化的 REST 客户端封装、支持响应式异常拦截与请求全流程钩子

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 http_helper 的鸿蒙化适配指南 - 打造标准化的 REST 客户端封装、支持响应式异常拦截与请求全流程钩子 前言 在 Flutter for OpenHarmony 的网络层开发中,直接使用底层的 http 库往往会导致大量的模板代码,且在处理拦截器、错误码统一转换和 Loading 态管理时力不从心。http_helper 是一套轻量级但功能完备的 REST 客户端封装库。它能帮助鸿蒙开发者快速构建一套符合工程化标准的服务层代码。本文将指导大家如何利用该库提升鸿蒙应用的网络交互质量。 一、原理解析 / 概念介绍 1.1 基础原理 http_helper 基于 Dart 的 http 包进行二次封装。它通过引入 Interceptor、

By Ne0inhk

如何给 MacOS 更新到指定版本系统

技巧 | 如何给 MacOS 更新到指定版本系统 当需要给 Mac 升级系统时,发现默认是升级到最新版本。 有些小伙伴可能会跟我一样,想要将系统往上升级一个版本就行。我们可以按照以下步骤进行操作: 1. 在Apple网站,Apple - 技术支持 - 搜索 (中国),搜索指定的系统版本做下载网址:support.apple.com/zh-cn/HT211… 2. 选择指定版本,点击打开 App Store 进行获取 3. 等待下载安装,然后重启

By Ne0inhk