
1. 为什么我选择把 AI 助理搬回家1.1 从云端订阅到本地常驻的动机转变大概从去年下半年开始我陆续把手上几个常用的 AI 工具从云端订阅迁到了本地。原因不复杂一是长期订阅成本叠加起来并不便宜二是很多涉及个人日程、家庭设备控制、私有文档检索的活儿我实在不想把原始数据一股脑丢到别人的服务器上。于是就有了这个项目——用一台 Mac Mini 当常驻主机把 OpenClaw 这类 AI Agent 框架跑起来做成一个真正属于自己、随时在线、能动手干活的家庭 AI 助理。先说清楚这套东西是什么。OpenClaw 是一个开源的 AI Agent 运行框架核心思路是把大语言模型的推理能力和本地工具调用、文件操作、定时任务、消息收发这些手脚绑在一起让模型不只是聊天而是能实际执行任务。Mac Mini 则是苹果那台巴掌大的桌面主机功耗低、噪音小、常年开机不心疼电费特别适合当家庭服务器。两者结合你得到的就是一个 7×24 小时待命、数据留在本地、能接入各种 API 也能跑本地模型的私人助理。这套方案适合谁如果你手头有一台闲置或准备入手的 Mac Mini对命令行不算完全陌生又希望拥有一个可定制、可扩展、数据可控的 AI 助理那这篇内容就是写给你的。完全零基础也能跟着走但我会把每一步的意图讲透方便你自己判断和调整。1.2 本地部署和纯 API 调用到底差在哪很多人第一反应是我直接用网页版不就行了何必折腾本地部署这里得把两种模式的本质区别讲明白。纯 API 调用模式下你的 Agent 框架只是个调度员所有推理都发生在远端你按 token 付费数据要出本地。好处是省心、模型能力强坏处是长期成本不可控、隐私有顾虑、断网就歇菜。本地部署模式则把模型权重、向量库、任务记录都放在自己机器上。你可以选择完全本地推理用 Ollama 跑量化模型也可以混合——日常轻量任务走本地小模型复杂任务再调云端 API。这种本地优先、云端兜底的架构是我实测下来最舒服的平衡点。Mac Mini 的 M 系列芯片统一内存架构对跑量化模型相当友好16GB 内存起步就能跑 7B 级别的模型24GB 或更高可以尝试更大的参数。提示本地部署不等于完全不用 API。很多人的误区是要么全本地要么全云端实际上混合架构才是性价比最高的选择。2. 硬件与系统环境的准备思路2.1 Mac Mini 选型内存比 CPU 更关键选 Mac Mini 做这件事配置上有个反直觉的点对 AI Agent 场景来说统一内存容量比 CPU 核心数更重要。原因在于苹果 M 系列芯片的 GPU 和 CPU 共享同一块内存模型权重直接加载进这块统一内存里内存不够模型就装不下再强的 CPU 也白搭。我的建议分档如下内存容量可承载的本地模型规模适合场景16GB7B 量化模型Q4轻量对话、简单工具调用24GB13B 量化模型日常助理、文档问答32GB 及以上30B 级别量化模型复杂推理、多任务并行存储方面256GB 起步勉强够用但模型文件动辄几个 GB加上向量库、日志、缓存我强烈建议 512GB 或外接一块高速固态。系统版本保持较新的 macOS 即可OpenClaw 依赖的运行时对系统版本有一定要求太老的系统会在装依赖时各种报错。2.2 系统初始化这些设置提前做省一半事拿到机器别急着装软件先把几个基础设置做掉能避免后面一堆权限问题。第一开启自动登录并关闭休眠。作为常驻服务器它需要一直醒着。在系统设置 - 锁定屏幕里把休眠时间设为永不在节能里关掉硬盘休眠。第二装好 Homebrew这是 macOS 上管理命令行工具的标准入口后面装 Python、Node、Ollama 都靠它。第三配置好 SSH 远程登录这样你可以从主力电脑连过去操作不用一直插着显示器。# 安装 Homebrew如果还没装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 验证安装 brew --version注意Mac Mini 作为服务器时建议给它配一个固定的局域网 IP或者在路由器里做 DHCP 保留否则每次重启 IP 变了你远程连接和 Agent 内部的服务发现都会出问题。2.3 依赖运行时Python、Node 与容器三件套OpenClaw 这类框架通常同时依赖 Python 和 Node 生态。Python 用来跑模型交互和数据处理Node 用来跑前端界面或某些工具链。我的做法是用 Homebrew 装好基础版本再用版本管理工具隔离项目环境避免污染系统 Python。brew install python3.11 node ollama # 用 venv 隔离项目环境 python3.11 -m venv ~/openclaw-env source ~/openclaw-env/bin/activate容器这块Docker Desktop for Mac 是可选项。如果你打算用容器方式跑某些服务比如向量数据库、消息中间件装上会更省心如果全部用原生方式跑也可以先跳过。我个人的习惯是核心 Agent 用原生跑周边服务用容器兼顾性能和隔离性。3. OpenClaw 的安装与核心配置3.1 安装路径选择源码还是包管理OpenClaw 的安装有两条路一是通过包管理器直接装发布版二是从源码克隆自己构建。新手我建议先走包管理跑通了再考虑源码定制。# 以 pip 安装为例具体包名以官方仓库为准 pip install openclaw # 或者从源码安装 git clone https://github.com/your-org/openclaw.git cd openclaw pip install -e .源码安装的好处是你能改代码、加自定义 skill坏处是依赖冲突时排查麻烦。我踩过的坑是源码安装时如果系统里同时存在多个 Python 版本pip可能装到了错误的解释器里导致命令行找不到openclaw命令。解决办法是始终在激活的 venv 里操作并用which openclaw确认路径。3.2 模型接入本地 Ollama 与云端 API 的混合配置这是整个项目最核心的一环。OpenClaw 需要一个大脑这个大脑可以是本地模型也可以是云端 API。我的配置是双通道本地通道用 Ollama 拉一个量化模型负责日常轻量任务ollama pull qwen2.5:7b ollama serve # 默认监听 11434 端口云端通道配置 API key负责复杂推理。在 OpenClaw 的配置文件里通常是一个 YAML 或 JSON把两个 provider 都写上然后设置路由规则——比如按任务类型、按 token 长度、按关键词决定走哪个。providers: local: type: ollama base_url: http://localhost:11434 model: qwen2.5:7b cloud: type: openai_compatible base_url: https://api.example.com/v1 api_key: ${API_KEY} model: gpt-4-class routing: default: local rules: - match: 复杂分析|长文档 use: cloud提示API key 千万别硬编码进配置文件然后提交到 git。用环境变量注入或者用系统钥匙串管理这是基本的安全习惯。3.3 权限与工具链让 Agent 真正能动手Agent 和聊天机器人的分水岭在于工具调用。OpenClaw 通过 skill 机制让模型能执行文件操作、发消息、查日历、跑脚本。配置 skill 时有两个原则最小权限和白名单。最小权限是指别一上来就给 Agent 整个用户目录的读写权限先限定在一个工作目录里。白名单是指能执行的命令、能访问的路径、能调用的 API都明确列出来不在列表里的一律拒绝。我见过有人图省事给了全盘权限结果模型一个误操作把重要文件删了这种教训不值得重复。skills: file_ops: enabled: true allowed_paths: - ~/openclaw-workspace read_only: false shell: enabled: true allowed_commands: - ls - cat - grep4. 让助理真正干活的实操环节4.1 第一个任务从能聊天到能办事装完之后别急着上复杂功能先跑一个最小闭环验证链路通不通。我的第一个测试任务是让 Agent 读取工作目录下的一个文本文件总结内容然后把总结写到一个新文件里。这个任务同时验证了三件事模型推理是否正常、文件读取 skill 是否生效、文件写入 skill 是否有权限。如果这一步跑通说明基础链路没问题后面加功能就是叠加。# 启动 OpenClaw 交互模式 openclaw run # 在交互界面输入任务 读取 workspace/notes.txt用三句话总结写入 workspace/summary.txt实测下来最容易出问题的是路径解析。Agent 眼里的相对路径和你 shell 里的相对路径可能不是同一个基准目录建议在配置里把工作目录设成绝对路径任务描述里也用绝对路径省得来回猜。4.2 定时任务把助理变成主动型常驻助理的价值很大一部分在定时任务上。比如每天早上八点汇总当天日程、每晚十点整理当天的工作记录、每周一生成上周的待办回顾。OpenClaw 一般支持 cron 风格的调度配置。schedules: - name: morning_briefing cron: 0 8 * * * task: 汇总今天的日历事件和未读邮件生成简报 - name: daily_review cron: 0 22 * * * task: 整理 workspace 下今天修改的文件生成工作日志这里有个经验定时任务的输出最好落到文件或推送到某个你能看到的地方否则它默默跑完你也不知道。我一开始没做输出结果助理每天准时干活我完全无感等于白跑。4.3 消息接入让助理能被找到一个只能本地交互的助理用起来还是别扭。真正好用的是它能接入你日常用的消息渠道你发条消息它就能响应。OpenClaw 通常支持接入多种消息平台配置方式大同小异填 webhook 地址、填 token、设置触发规则。配置时要注意消息的鉴权别让任何人都能给你的助理发指令。至少要设置一个允许的用户白名单或者一个只有你知道的触发前缀。我见过有人把助理暴露在公开群里结果被陌生人当成免费工具使唤还消耗了自己的 API 额度。注意消息接入涉及外部网络通信务必确认你使用的渠道和配置方式符合当地相关规定仅用于个人合法用途。5. 常见问题与排查实录5.1 模型加载失败与内存不足这是本地部署最高频的问题。症状通常是启动时报错、模型加载到一半卡死、或者系统开始疯狂用交换内存导致整机卡顿。排查思路先看内存占用用活动监视器或htop观察。如果模型加载时内存直接飙到接近上限说明模型太大换更小的量化版本。7B 的 Q4 量化大概占 4-5GB13B 的 Q4 大概 8-9GB留出系统和其他服务的余量别把内存吃满。症状可能原因解决方向加载卡死内存不足换更小量化模型启动报错找不到模型模型名拼写或路径错用ollama list核对推理极慢走了 CPU 而非 GPU确认 Ollama 版本支持 Metal系统整体卡顿内存被吃满触发交换降低并发或换小模型5.2 依赖冲突与命令找不到Python 生态的依赖冲突是老生常谈。典型表现是装完 OpenClaw 后某个依赖库版本和系统里已有的冲突导致 import 报错。解决办法永远是隔离环境一个项目一个 venv别在系统 Python 里装东西。命令找不到的问题八成是 PATH 没配好或者装到了错误的解释器里。用which openclaw和pip show openclaw交叉验证确认命令和包在同一个环境里。5.3 权限被拒与路径问题Agent 执行文件操作时报permission denied先检查配置里的 allowed_paths 是否包含目标路径再检查 macOS 的隐私权限——某些目录如桌面、文档、下载需要显式授权给终端或相关进程。系统设置里的隐私与安全性 - 文件和文件夹是排查入口。路径问题我前面提过核心原则是全程用绝对路径。相对路径在 Agent、shell、配置文件三个语境下的基准可能都不一样用绝对路径能消除这个不确定性。5.4 网络与端口占用Ollama 默认占 11434OpenClaw 的 Web 界面可能占 3000 或 8080如果这些端口被别的服务占了启动就会失败。用lsof -i :端口号查占用改配置换端口即可。局域网访问不通的话检查 macOS 防火墙是否放行了对应端口。6. 我踩过的坑和几条实在建议6.1 别追求一步到位先跑通最小闭环我最初的想法是把所有功能一次性配齐本地模型、云端兜底、消息接入、定时任务、十几个 skill。结果配置复杂度爆炸一个环节出错整条链路都跑不起来排查了两天才定位到一个 YAML 缩进错误。后来我推倒重来先只配本地模型加文件读写跑通后再一个一个加功能每加一个验证一次效率反而高得多。6.2 日志是你的救命稻草Agent 的行为链路长出问题时光看表面现象根本猜不到哪一步断了。一定要把日志级别调高把模型输入输出、工具调用参数、执行结果都记下来。我现在的习惯是每个任务都留一份执行日志出问题直接翻日志比瞎猜快十倍。6.3 成本要有意识本地也不是零成本本地推理省的是 API 费用但电费、硬件折旧、你的时间都是成本。我的做法是给云端 API 设一个月度预算上限超过就自动降级到本地模型。这样既不会账单失控也不影响日常使用。6.4 安全边界要提前划好这是我最想强调的一点。Agent 能动手就意味着它能造成实际影响。给它权限之前先想清楚最坏情况如果模型判断失误它最多能做什么把破坏半径控制在你可接受的范围内再逐步放开权限。工作目录隔离、命令白名单、操作前确认这三条是我一直在用的底线。最后分享一个我最近在用的扩展思路把这台 Mac Mini 上的 OpenClaw 和家里的其他设备联动起来比如让它根据你的日程自动调整灯光、根据天气提醒你带伞。Agent 的价值不在于它多聪明而在于它能把你的各种零散需求串起来变成一个真正懂你、随时待命的助手。这套东西搭起来之后你会发现它慢慢长成了你生活里离不开的一部分。