前言

最近OpenClaw又火了,第一次给我的观感像我以前玩过的AutoGPT,只不过现在的模型能力强得多了,能做的事情更多了,最大的改进我觉得就是能接入各种IM做你的私人助手吧(笑

但是看到这么多朋友都搞上了,我也想试试

调研一波发现没Mac会大大束缚OpenClaw的能力,想保存个文件都没那么顺畅

至此,我决定使用Docker上安装MacOS再装OpenClaw的套娃操作

2. KVM 宿主机的准备

这次我是在我的HomeLab上安装的,配置如图

我单独给Claw开了一个vm,分配了10c16g + 150G

基于我是在KVM上再安装的,这个MacOS容器需要依赖KVM以及QEMU

在创建VM的时候需要在CPU这里选择host模式而不是x86模拟等

3. 核心环节:Docker 启动 macOS 14

官方的镜像 是只把虚拟化等准备好的,也就是不带MacOS镜像(等安装的时候再通过自带的Opencore启动文件从苹果官方下载),不过这里也建议先把Docker镜像先拉下来

1
docker pull sickcodes/docker-osx:latest

创建一个img提前占坑(这一步很重要!)

1
qemu-img create -f qcow2 /data/macos/mac_hdd_ng.img 150G

然后给镜像加点权限

1
chmod 777 /data/macos/mac_hdd_ng.img

拉好镜像之后,执行我的docker run命令,我的命令如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -p 5999:5999 \
    -v /data/macos/mac_hdd_ng.img:/home/arch/OSX-KVM/mac_hdd_ng.img \
    -e RAM=16 \
    -e SHORTNAME=sonoma \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
    -e CPU='Haswell-noTSX' \
    -e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
    -e EXTRA="-display none -vnc 0.0.0.0:99,password=on -smp 8,sockets=1,cores=8" \
    sickcodes/docker-osx:latest

执行后进入下载界面

等大概十分钟左右就进到这里,乍一看你以为是失败了,实际其实是找不到声卡,其实qemu已经正常启动了

输入exit进入qemu命令行

这个时候输入 change vnc password

修改为你喜欢的密码

然后随便用个VNC软件连上你的VM的 IP:5999 就能看到画面了

至于刚刚的qemu界面,使用Crtl + P后 Ctrl + Q 即可不停止退出

选择默认的base systemctl就能开始安装

到某个阶段他会卡住,输入exit就能重启了

重启后终于能到恢复界面

到了这一步才是重中之重

选择第四个Disk Utility进行硬盘的格式化

你会发现有个硬盘的大小很奇怪,不是你分配的磁盘大小,那这个盘就是你需要格式化的系统盘

选择右上角的Erase擦除

我这里命名为Macintosh HD

命名后擦除,看到我这个界面就成功啦

关闭窗口回到上一个界面,选择重新安装系统即可进行下一步系统的安装

这一步也是耗时最长的,我PCIE3.0的三星盘都装了半小时

在这里选择我们刚刚格式好的盘

他就会进行安装,当然这里的时间是他估算的,你就预留个半小时好了

装完之后他会继续跳到横向几个硬盘的那个界面,不知道macos14是改了机制还是什么,自动给我选择Mac OS Installer了

选择之后他会跑进度

跑完进度之后她会进入到只有苹果标和进度条的界面

再后面进入到这个界面,等他安装就行了,这个其实是白苹果的日志输出

跑完就自动进系统了

进系统重新选择语言后重启你会看到如此界面,选择你之前格式化好的硬盘名字就能进系统了,以后重启也是这样进系统

4. 在“黑苹果”里配置环境

在设置->通用->共享里面打开远程登录即开启ssh

ssh端口已经在我们的docker run脚本中指定好为50922

至此,你就可以愉快的部署OpenClaw啦(至于科学上网什么的请谷歌搜索)

5. 实战:部署 OpenClaw

1
2
npm install -g openclaw@latest
openclaw onboard --install-daemon

执行后如图所示,选择知晓风险

我这里用的link家的API,选择Kimi2.5模型

在运行时还遇到了个问题,默认接出来的模型上下文不够大,我直接去openclawjson里面修改了

1
vim ~/.openclaw/openclaw.json

接入Telegram,找到你之前创建的机器人,直接在终端执行他给的命令

1
openclaw pairing approve telegram RM598CFE

这样就把Openclaw成功接入TG了

7. 踩坑记录

配置好TG后默认是以机器人的形式跑,最好建议是创建个群组,然后把bot拉进去,这样能利用起tg的topic功能,启动多个会话

如果机器人在群里面没能及时回复你的消息,那是因为tg需要设置机器人,才能让机器人读到每一条对话,而不是只能回复才能读到

OpenClaw使用网页搜索能力用的是Brave的API,需要绑卡并且额度少,我自己换成了tavily


最后

用了几天,最后才发现其实并不一定就说要mac部署,很多能力不需要mac也是可以的,并且这个OpenClaw从设计上就有许多问题,上下文疯狂堆叠,token量爆炸

这个项目最终都是只能当作玩具,当然作为玩具也是个比较好玩的玩具,能不断安装skill拓展能力,相当于养个小孩了

总的来说,这个项目更适合之前完全没碰过任何coding agent的人来尝试