
1. 为什么我最终选了 Mac Mini 而不是云主机来跑 OpenClaw先说结论如果你打算长期折腾 OpenClaw 这类本地智能体框架Mac Mini 是目前性价比最均衡的一台常驻机。我自己前前后后试过三种方案——云服务器、旧笔记本、Mac Mini最后稳定留下来的只有 Mac Mini。原因不复杂但每一条都是踩过坑才明白的。云服务器的问题在于看不见摸不着。OpenClaw 这类框架在部署阶段需要频繁调试环境变量、Node.js 版本、Homebrew 依赖云主机上你只能靠 SSH 一条条敲出错了排查链路特别长。更关键的是很多 OpenClaw 的 skill 需要访问本地文件系统、调用本地模型比如通过 Ollama 跑本地推理云主机根本够不着你的本地资源。旧笔记本的问题是散热和功耗7×24 小时跑下来风扇狂转电费不说硬盘和内存的寿命也扛不住。Mac Mini 恰好卡在中间功耗低M 系列芯片待机也就几瓦、体积小、macOS 原生支持 Homebrew 和 Node.js 生态、还能直接跑 Ollama 做本地推理。我用的是一台 M2 版本的 Mac Mini16GB 内存 512GB 硬盘日常跑 OpenClaw Ollama 几个 skill 完全够用。如果你预算充足M4 甚至传闻中的 M6 当然更好但对绝大多数个人开发者来说M2 16GB 已经是甜点配置。这里要澄清一个常见误解很多人以为 OpenClaw 必须接入外部 API 才能用算力。实际上 OpenClaw 本身是一个编排框架它既可以调用云端 API也可以对接本地模型。我在 Mac Mini 上就是用 Ollama 跑本地模型作为主力只有在需要更强推理能力时才切换到云端 API。这样既控制了成本又保证了隐私。提示Mac Mini 选购时优先保证内存16GB 是底线24GB 或 32GB 会更从容。硬盘 512GB 起步因为模型文件动辄几个 GB256GB 很快就会满。关于成本泡沫我想多说两句。网上很多文章把本地部署 AI吹得天花乱坠仿佛买台 Mac Mini 就能省下所有 API 费用。但真实情况是Mac Mini 一次性投入几千块电费一年几十块模型推理速度受限于本地算力复杂任务还是得靠云端。所以成本泡沫的本质不是 Mac Mini 贵而是很多人高估了本地算力的边界低估了时间成本。我的建议是把 Mac Mini 当作常驻编排节点 轻量推理重活交给云端这才是理性的成本结构。2. macOS 环境准备从重装系统到 Homebrew 落地2.1 系统版本选择与重装的实际取舍Mac Mini 到手后第一件事是确认系统版本。OpenClaw 依赖的 Node.js 20 和 Homebrew 对 macOS 版本有要求太老的系统会直接卡在依赖安装阶段。我建议至少 macOS Monterey 12 以上能上 Sonoma 就上 Sonoma。如果你买的是二手 Mac Mini可能会遇到激活锁问题这个必须提前和卖家确认清楚否则机器到手就是块砖。重装系统有几种路径App Store 下载、U 盘安装、恢复模式重装。我个人最推荐恢复模式开机按住电源键直到出现选项因为最干净。如果你需要特定版本比如 Monterey 12那就得提前下载好镜像文件做成启动 U 盘。做启动盘用 balenaEtcher 最省事选好镜像和 U 盘一键写入比命令行dd直观得多。注意重装前务必确认你的 Apple ID 能正常登录否则重装后可能卡在激活环节。二手设备尤其要小心。虚拟机安装 macOS 这条路我也试过主要用于测试环境隔离。但说实话虚拟机里跑 macOS 性能损耗明显OpenClaw 的推理任务会更慢只适合做兼容性验证不适合长期运行。如果你只是想体验一下可以玩要长期跑还是物理机。2.2 Homebrew 安装与那些让人抓狂的报错Homebrew 是 macOS 上绕不开的包管理器OpenClaw 的很多依赖都靠它。安装命令很简单/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)但实际执行时十有八九会遇到网络问题导致下载失败。这时候不要反复重试先检查网络环境然后可以考虑用国内镜像源。安装完成后别忘了把 Homebrew 加入 PATHM 系列芯片的路径是/opt/homebrew/binIntel 芯片是/usr/local/bin。很多人装完发现brew命令找不到就是这一步漏了。echo eval $(/opt/homebrew/bin/brew shellenv) ~/.zprofile eval $(/opt/homebrew/bin/brew shellenv)这里有个细节macOS Sonoma 之后默认 shell 配置文件变成了.zprofile如果你还在往.bash_profile里写是不会生效的。我自己就因为这个折腾了半小时最后echo $PATH才发现问题。Homebrew 还有一个坑是取消对 10.15 的支持。如果你手头是老机器跑 Catalina很多新版本的 formula 已经不支持了会直接报错。解决办法要么升级系统要么用旧版本的 Homebrew但后者会带来依赖冲突。我的建议是别在太老的系统上折腾时间成本不划算。卸载 Homebrew 时也要注意残留。官方卸载脚本跑完后/opt/homebrew或/usr/local下可能还有残留文件手动清理干净再重装否则会出现各种诡异的路径冲突。2.3 Node.js 20 的安装方式对比OpenClaw 要求 Node.js 20 以上安装方式有三种Homebrew、nvm、官方安装包。我强烈推荐 nvm原因是版本切换灵活。OpenClaw 不同版本对 Node.js 的要求可能不一样用 nvm 可以随时切。curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash nvm install 20 nvm use 20 nvm alias default 20装完后用node -v确认版本。如果显示的还是旧版本检查一下 PATH 顺序nvm 的路径要优先于 Homebrew 的。用 Homebrew 装 Node.js 也不是不行brew install node20就行但缺点是全局只有一个版本切换麻烦。官方安装包最不推荐因为卸载不干净容易和 Homebrew 冲突。提示安装完 Node.js 后建议顺手把 npm 也更新到最新npm install -g npmlatest。OpenClaw 的安装脚本对 npm 版本也有要求。3. OpenClaw 部署全流程从零到跑通第一个 skill3.1 安装 OpenClaw 的三种路径与选择逻辑OpenClaw 的安装方式主要有三种npm 全局安装、源码编译、Docker 部署。我三种都试过最后长期用的是 npm 全局安装原因是简单直接升级方便。npm 安装npm install -g openclaw openclaw --version源码编译适合想改代码或者跟进最新特性的玩家但依赖管理复杂容易卡在编译环节。Docker 部署隔离性好但 macOS 上 Docker 的性能损耗和文件挂载问题让人头疼尤其是需要访问本地模型时网络配置很麻烦。安装完成后第一次运行openclaw init会生成配置文件通常在~/.openclaw/config.json。这个文件是核心里面配置了模型接入方式、skill 路径、日志级别等。我建议先备份一份原始配置改坏了可以随时恢复。3.2 接入 Ollama 做本地推理的完整配置OpenClaw 本身不带模型需要对接推理后端。本地推理我用 Ollama安装很简单brew install ollama ollama serve然后拉一个模型比如ollama pull llama3接着在 OpenClaw 配置里指定 Ollama 的地址{ model: { provider: ollama, baseUrl: http://localhost:11434, model: llama3 } }这里有个坑Ollama 默认只监听 localhost如果你在 Docker 里跑 OpenClaw需要把 Ollama 的监听地址改成0.0.0.0否则连不上。改法是设置环境变量OLLAMA_HOST0.0.0.0。另一个坑是模型加载速度。第一次调用某个模型时Ollama 需要把模型加载进内存会卡几秒到几十秒。如果你觉得慢可以设置OLLAMA_KEEP_ALIVE让模型常驻内存代价是占用内存。注意16GB 内存的 Mac Mini 建议只常驻一个 7B 左右的模型再大就会开始吃 swap速度断崖式下降。3.3 skill 配置与第一个可运行案例OpenClaw 的 skill 是它的核心扩展机制。skill 本质上是一段可被调用的逻辑可以是脚本、API 调用、文件操作等。默认 skill 目录在~/.openclaw/skills。我跑通的第一个 skill 是一个简单的文件整理工具扫描指定目录把文件按类型归类。配置如下{ name: file-organizer, trigger: organize files in, action: { type: script, path: ~/.openclaw/skills/file-organizer.sh } }脚本内容就是普通的 shell用find和mv实现。跑通之后你会发现OpenClaw 的价值不在于它自己多强而在于它能把各种零散的工具串起来用自然语言触发。这里要提醒一点skill 的 trigger 设计很关键。太宽泛会误触发太窄又用不上。我的经验是用动词 对象的结构比如 organize files in、summarize this url这样意图明确。3.4 跨平台部署的差异Windows、Ubuntu、Termux虽然本文主角是 Mac Mini但很多人会问 Windows 和 Ubuntu 上怎么部署。简单说Windows需要先装 WSL2然后在 WSL 里按 Ubuntu 的方式装。原生 Windows 支持不完整OpenClaw 的 Windows companion 配置起来比较绕建议直接用 WSL。Ubuntu最顺滑apt install nodejs npm然后 npm 装 OpenClaw 即可。注意 Ubuntu 自带的 Node.js 版本可能太老要用 NodeSource 源装 20。Termux安卓能装但体验一般。Node.js 在 Termux 上编译慢模型推理基本别想只能做轻量编排。跨平台的核心差异在于路径和权限。macOS 和 Linux 路径风格接近Windows 的路径分隔符和权限模型完全不同skill 脚本要写跨平台版本会很痛苦。我的建议是主力机用 macOS 或 UbuntuWindows 只做客户端。4. 成本泡沫拆解本地部署到底省不省钱4.1 一次性投入与隐性成本清单很多人算成本只算硬件钱这是最大的误区。我把真实成本列一下成本项金额范围说明Mac Mini 硬件3000-8000 元取决于配置M2 16GB 约 4500电费30-80 元/年待机功耗低满载也就几十瓦时间成本无法量化环境调试、踩坑、维护模型存储0 元但占硬盘512GB 起步云端 API 补充视用量复杂任务仍需云端时间成本是最容易被忽略的。我第一个月花在环境调试上的时间大概有 20 多个小时如果按时薪算早就超过硬件钱了。所以本地部署省钱这个说法只在你时间不值钱或者你享受折腾过程时才成立。4.2 本地推理 vs 云端 API 的真实分界线什么时候用本地什么时候用云端我的分界线是本地高频、轻量、隐私敏感的任务。比如文件整理、日志分析、简单问答。云端低频、重推理、需要最新知识的任务。比如复杂代码生成、长文档分析。本地推理的瓶颈是显存和内存。Mac Mini 的统一内存架构比独立显卡有优势但 16GB 也就跑 7B 模型舒服13B 就开始吃力。云端 API 没有这个限制但按 token 计费用多了也肉疼。我的实际用法是OpenClaw 作为编排层简单任务路由到本地 Ollama复杂任务路由到云端。这样既控制了成本又保证了效果。配置上就是在 OpenClaw 里设置路由规则根据任务类型或关键词决定走哪个 provider。4.3 那些被吹过头的省钱神话网上有些说法我觉得需要泼冷水第一本地部署完全免费。模型是免费的但硬件、电费、时间都不免费。而且本地模型的效果和云端顶级模型差距明显很多时候你省了钱但降低了产出质量。第二一台 Mac Mini 能替代所有云服务。这纯属幻想。Mac Mini 的算力有限并发能力弱真要做生产级服务还是得上云。第三OpenClaw 只能用 API 接算力。这是误解OpenClaw 支持本地模型只是配置麻烦点。但反过来说本地模型也不是万能别指望它跑出 GPT-4 的效果。提示理性看待成本把 Mac Mini 定位为常驻编排 轻量推理重活交给云端这才是可持续的方案。5. 踩坑实录那些让我熬夜的报错与修复5.1 Homebrew 安装失败的排查链路第一次装 Homebrew 报错提示curl: (7) Failed to connect。排查过程先ping raw.githubusercontent.com发现不通。换用国内镜像源重装成功。装完brew doctor检查提示 PATH 未配置。按前面说的方法写入.zprofile解决。这个链路的关键是不要一上来就怀疑 Homebrew 本身先确认网络再确认 PATH。90% 的 Homebrew 问题都是这两个原因。5.2 Node.js 版本冲突导致的 OpenClaw 启动失败有一次 OpenClaw 启动报错SyntaxError: Unexpected token查了半天发现是 Node.js 版本太低。系统里有两个 Node.js一个 Homebrew 装的 18一个 nvm 装的 20PATH 顺序不对导致用了 18。修复方法which node # 如果指向 /opt/homebrew/bin/node说明用了 Homebrew 的 nvm use 20 # 再确认 node -v然后把 nvm 的初始化脚本放到.zprofile最前面保证优先级。5.3 Ollama 连接超时与模型加载卡死Ollama 连接超时通常两个原因服务没启动或者监听地址不对。先ollama list确认服务在跑再curl http://localhost:11434确认能通。如果 OpenClaw 在 Docker 里记得改OLLAMA_HOST。模型加载卡死多半是内存不够。16GB 跑 13B 模型会疯狂 swap看起来像卡死其实是慢。解决办法是换小模型或者加内存。我现在的策略是 7B 常驻需要大模型时临时加载用完就卸。5.4 卸载 OpenClaw 与残留清理卸载 OpenClaw 不只是npm uninstall -g openclaw还要清理配置和缓存npm uninstall -g openclaw rm -rf ~/.openclaw rm -rf ~/.npm/_cacache如果之前装过旧版本可能还有残留的 skill 和日志一并清掉。重装前最好重启一下终端避免环境变量缓存。6. 长期运行的稳定性经验与扩展思路6.1 让 Mac Mini 7×24 稳定运行的几个设置Mac Mini 长期运行要注意几点关闭自动休眠系统设置里把防止电脑自动进入睡眠打开。开启自动登录避免重启后卡在登录界面。设置定时重启每周重启一次清理内存碎片。监控温度用sudo powermetrics或第三方工具看温度过热会降频。我还会把 OpenClaw 和 Ollama 做成 launchd 服务开机自启崩溃自动重启。launchd 配置稍微复杂但比手动nohup靠谱得多。6.2 skill 生态的扩展方向OpenClaw 的 skill 生态是它最有想象力的地方。我目前装了这些文件整理按类型、日期归类日志分析扫描日志提取异常网页摘要抓取 URL生成摘要定时提醒结合日历做提醒扩展思路是把你日常重复的操作都写成 skill用自然语言触发。比如把这周的日志总结一下、把下载目录里的图片按日期归档。时间久了OpenClaw 就成了你的个人自动化中枢。6.3 关于 rosclaw 与机器人方向的延伸热词里出现了 rosclaw、ROS2 Humble、Gazebo这其实是 OpenClaw 在机器人领域的延伸。rosclaw 可以理解为 OpenClaw 和 ROS 的结合用自然语言控制机器人。这个方向目前还比较早期配置复杂需要 ROS2 环境。如果你有机器人背景可以玩玩纯软件背景的话建议先把基础部署跑通再说。我在虚拟机里试过 ROS2 Humble Gazebo光是环境配置就花了一整天而且仿真环境下性能很差。所以这个方向我暂时观望等生态成熟再说。6.4 我个人的成本与收益复盘跑了三个月我的实际感受是Mac Mini 作为 OpenClaw 的常驻节点值。它让我把很多零散任务自动化了省下的时间远超硬件成本。但如果你指望它替代云端 API 做重活那会失望。成本上硬件 4500电费一年不到 100云端 API 补充每月几十块。总投入比纯云端方案低但前提是你愿意花时间折腾。如果你时间宝贵直接用云端 API 更省心。最后分享一个小技巧OpenClaw 的日志默认比较啰嗦可以在配置里把日志级别调到warn只记录关键信息排查问题时再临时调回debug。这样日志文件不会爆炸查问题也更聚焦。