自从把家里的 Mac mini 改造成 7×24 小时在线的 AI 助手已经稳定跑了几个月。这个组合其实很简单一台常年开机的 Mac mini一个开源的智能体框架 OpenClaw再接入按量计费的模型 API——很多人也叫它中转 API。整套方案算下来一次性投入也就是一台二手小主机的钱后续每个月电费几十块、API 调用费几十块但换来的是一个全天候在线、能记住我的习惯、能定时干活、能自动推送消息的“数字管家”。这篇就把我的完整搭建过程、成本测算和踩过的坑都整理出来给想折腾同样玩法的朋友一个参考。先说清楚这套方案适合谁。我默认你是有一点动手能力的人至少用过终端、知道环境变量是什么。如果你完全没碰过命令行也没关系跟着后面的步骤一步一步来也能跑通但遇到小问题需要耐心排查。如果你只是想跟 AI 聊几句那网页版已经很够用了没必要折腾但如果你想要一个能主动找你、能挂在后台自动干活的个人助手这套方案的性价比是会员订阅比不了的。1. 先讲思路为什么是 Mac mini OpenClaw 模型 API 这个组合我见过不少人一听说“7×24 小时 AI 助手”第一反应就是去租云服务器。这个思路没错但成本不低一台入门云主机一个月几十上百元配置还不一定够跑完整框架网络和磁盘性能也一般。更关键的是数据放在云上隐私心里总是有点不踏实。换成家里的迷你主机情况完全不一样。1.1 Mac mini 常驻主机比云服务器更划算的选择Mac mini 最大的优势是功耗低、噪音小、体积小、系统稳定。以常见的入门型号为例平时空载或者只跑轻量服务的时候整机功耗大约在 5 到 10W 之间。这个数字什么概念一天 24 小时跑满耗电量大约 0.24 度。按居民电价每度 0.6 元估算一个月电费不到 5 块钱。对比一台老旧的台式机或游戏本开机跑一个月动辄几十上百瓦的功耗一年下来电费差距能到几百块。其次是噪音和体积。Mac mini 没有风扇噪音的困扰至少日常负载下很安静放在电视柜角落、书架上都不碍事。相比那些风扇狂转的旧笔记本或者塔式机箱它在“长期不关机”这个场景下是真的很合适。如果你手里已经有 Mac mini那几乎没有新增硬件成本如果没有二手市场的入门款也比一台新手机便宜不少。我自己的选择是 8GB 内存的版本日常跑框架、做定时任务完全够用。如果你的 AI 助手要挂很大的知识库或者经常处理超长上下文16GB 会更稳。有人可能会问用家里电脑常开万一断电怎么办这个问题确实存在但一般家用断电的频率很低而且我在后面会提到用 UPS 小电源来兜底。相比之下云服务器的月租成本是持续性的而本地小主机是一次性投入长期用下来省很多。1.2 OpenClaw 的本质从聊天窗口到数字管家OpenClaw 是什么简单说它是一个开源的智能体Agent框架。它不是给你一个聊天对话框而是一个可以常驻运行的进程你给它配置好“人设”“技能”“记忆”之后它能自己决定什么时候调用什么工具、什么时候主动触发任务。用生活化类比来说网页版 AI 聊天是“雇了一个随叫随到、但只能在店里说话的顾问”OpenClaw 这种 Agent 框架是“把这个顾问请回家给它钥匙让它记住你的生活习惯还帮你看门”。很多第一次接触 AI 的人是靠网页聊天入门的但那种形式做不了自动化。比如你想让它每天早上 8 点自动汇总天气、日程和新闻推给你网页聊天做不到你想让它盯一个网页有没有更新它也没法自己定时去看。OpenClaw 这类框架解决的就是这个问题。它的能力通常包括定时触发任务、调用外部工具比如请求网页、执行脚本、发通知、长期记忆、接入各种 IM 机器人渠道。每个开源项目的实现细节不同但核心思路都差不多把大模型当作“大脑”把各种工具和脚本当作“手脚”框架本身则是连接大脑和手脚的“神经系统”。这也是我选择这种方式而不是直接开发一个独立应用的原因——框架帮我把最难的部分都做完了我只需要做配置和玩法设计。1.3 模型 API 按量计费把“会员费”降成“零花钱”OpenClaw 本身不包含模型能力它需要接入一个大模型的 API。市面上的模型服务很多有的按订阅收费有的按 token 用量计费。对于这种常驻后台的 AI 助手我个人强烈推荐按量计费的方式。原因很简单订阅制会员一个月固定扣费而且通常在高级功能上有限制按量计费的 API 则完全看你实际用多少。日常简单对话、定时简报这类任务一次请求可能只需要几分钱复杂任务用更强的模型单次贵一些但使用频率低整体开销反而可控。我见过有人靠模型分级和缓存优化一个月 API 费用控制在几十块钱以内效果已经非常够用。很多人管这种接入方式叫中转 API我的理解是它本质上是一个兼容多种模型接口的网关服务把多家模型的调用方式统一成一个入口顺便提供了更灵活的计费策略。这样带来的好处非常实际一个 Key 就能切换不同模型哪家效果好、性价比高就用哪家不用分别注册、分别维护。但选这类服务的时候一定要谨慎优先选择口碑好、运营时间长的不要为了贪便宜用来路不明的渠道毕竟你的 API Key 和对话内容都在里面。2. 部署前的准备把 Mac mini 调成服务器模式正式开始前先把 Mac mini 的系统状态调整好。这一步很基础但很多人忽略导致后面出了各种稀奇古怪的问题。2.1 系统设置让它永不睡眠、稳定联网Mac 默认会在一段时间没操作后进入睡眠这对服务器模式是致命的。我当时就踩过这个坑配置好一切之后第二天发现助手“失联”了一看屏幕系统睡过去了任务全卡住。要改的地方有三个。第一系统设置里的“节能”或“电池”面板把“如果可能使硬盘进入睡眠”关掉把显示睡眠、系统睡眠的时间全部设为“永不”。第二接好电源和网线尽量不用 Wi-Fi 跑服务。Wi-Fi 虽然方便但偶尔的休眠断流、IP 变动都会影响稳定性。第三给 Mac mini 一个固定内网 IP。最简单的做法是在路由器后台做 DHCP 地址保留把 Mac mini 的 MAC 地址和指定 IP 绑定也可以在 Mac 上手动设置静态 IPv4。这一步不是必须的但如果你以后想从笔记本 SSH 进来操作固定 IP 会方便很多。然后开启远程登录。系统设置里找到“通用”-“共享”打开“远程登录”。这样你把 Mac mini 接一次电和网线之后就可以彻底丢掉显示器、键盘鼠标后续所有操作都在自己的电脑上通过 SSH 完成。省心程度直线上升。2.2 基础环境装好代码运行所需的三个工具接下来装基础环境。OpenClaw 这类开源框架通常依赖 Node.js 或 Python 运行时。我用的版本是基于 Node.js 的所以需要安装 Node.js 和 Git如果你拿到的项目是 Python 写的那就装 Python 3.10 以上和 pip思路完全一样。推荐先装 Homebrew这是 macOS 上最常用的包管理器后面所有东西都能用它装。安装命令是/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)然后装 Node.jsLTS 版本和 Gitbrew install node20 git装完检查一下版本确认不报错node -v git --version为什么一定要装 Git因为大部分开源项目是从代码仓库拉下来的后面更新代码也要靠它。Homebrew 装完如果提示“command not found”通常是 PATH 没配好按终端里的提示执行几条 export 命令就行这个在安装完成时会有明确指引。3. 部署 OpenClaw从拉取代码到第一次对话环境准备好之后就可以部署 OpenClaw 了。我先说清楚一点开源项目的文档更新很快我下面写的命令是通用流程具体字段以你实际拿到的仓库 README 为准但大方向不会变。3.1 拉取项目与安装依赖先看文档再动手在 Mac mini 上建一个目录比如~/apps然后拉取项目代码mkdir -p ~/apps cd ~/apps git clone 项目地址 openclaw cd openclaw这里的项目地址换成你实际使用的仓库地址。拉下来之后第一件事不是启动而是看 README。很多开源项目都提供.env.example模板文件你要做的就是把模板复制成.env再填入自己的配置cp .env.example .env然后安装依赖。Node 项目一般用 npmnpm install如果项目里有package.json基本就是这一步Python 项目则对应pip install -r requirements.txt。我见过很多人跳过 README 直接npm start结果报一堆错然后才发现少装依赖或者漏配环境变量。先花五分钟读文档后面能省两小时排错。3.2 配置模型接入环境变量是关键模型接入的配置一般在.env文件里。下面是一个参考结构# 模型 API 服务地址第三方统一接口填实际拿到的地址 LLM_API_BASEhttps://api-provider.example.com/v1 LLM_API_KEYsk-your-key-here LLM_MODELyour-preferred-model # 助手人设 AGENT_NAME小助手 AGENT_PERSONALITY沉稳、务实、偶尔幽默 # 时区 TIMEZONEAsia/Shanghai这里有几个要点。第一LLM_API_BASE是接口统一入口地址不同服务商给的地址格式可能略有差异但一般都会提供一个兼容标准接口的 Base URL填进去就行。第二LLM_API_KEY是身份凭证相当于你的钱包密码绝对不要写死在代码里也不要提交到公开代码仓库。第三LLM_MODEL填你准备用的模型名称以后想换模型只要改这一行不用动任何代码。我还习惯在.env里把模型调用参数也配置好比如温度、最大输出 token 数等。这些参数直接影响使用成本和回复质量。温度太高会答非所问太低会机械重复0.7 左右通常是比较平衡的默认值。最大输出 token 一定要设置否则遇到长文本任务时模型可能一口气生成几千字费用蹭蹭往上涨。3.3 首次启动用一次简单对话验证全链路配置完成后启动项目npm start如果是第一次运行日志里会看到加载技能、连接模型、注册通知渠道等过程。启动成功的标志是没有任何红色报错并出现类似“服务已启动”的提示。接下来测试。最简单的方法是先在命令行里发起一条消息比如让它自我介绍或者问它“当前时间是多少”。这条消息会经过框架、调用模型、返回结果整个链路只要走到最后一步就说明 API 配置没问题。我当时第一次测试时等了十几秒没反应后来发现是填的 API 地址少了一个/v1路径加上就好了。第一次启动时不要急着配复杂技能先跑通最小系统。这样一旦出问题你能确定是模型接口、网络还是配置的问题而不是一堆技能叠加导致的自己吓自己。4. 让它全年无休进程守护与开机自启如果直接用npm start跑窗口一关或者进程一崩助手就没了。既然目标是 7×24 小时在线就必须让它在后台常驻并且能自动重启。4.1 用 pm2 守护进程最省心的方案我首推 pm2这是 Node 生态里非常成熟的进程守护工具。安装和启动命令很简单npm install -g pm2 pm2 start npm --name openclaw -- start pm2 save pm2 startup运行pm2 startup后它会提示你执行一行命令把开机自启脚本写进系统。执行完之后即使 Mac mini 意外重启pm2 也会在登录后自动把 openclaw 进程拉起来。pm2 save的作用是保存当前进程列表不然重启后它不知道要恢复哪些进程。pm2 还自带日志管理功能。查看日志用pm2 logs openclaw进程崩溃时 pm2 会自动重启默认的守护逻辑非常稳。我实测下来几个月的时间里除了有一次因为 API 接口临时故障导致进程卡死之外基本没再管过它。对于想少折腾的人来说pm2 是最快见效的方案。4.2 原生方案用 macOS 自带的 launchd 实现服务化如果你不想装任何三方工具macOS 还自带一个服务管理方案launchd。它的使用方式是在~/Library/LaunchAgents下放一个 plist 文件。参考配置如下?xml version1.0 encodingUTF-8? !DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd plist version1.0 dict keyLabel/key stringcom.example.openclaw/string keyProgramArguments/key array string/usr/local/bin/npm/string stringstart/string /array keyWorkingDirectory/key string/Users/you/apps/openclaw/string keyRunAtLoad/key true/ keyKeepAlive/key true/ /dict /plist保存后执行launchctl load ~/Library/LaunchAgents/com.example.openclaw.plistRunAtLoad表示登录时自动启动KeepAlive表示进程退出后自动重启。这个方案的优势是系统原生、没有额外依赖缺点是配置语法比较繁琐而且你必须知道 Node 的具体安装路径。如果是用 Homebrew 安装的 Node路径通常是/usr/local/bin/npm但 Apple Silicon 芯片的 Mac 可能是/opt/homebrew/bin/npm写错路径服务起不来。新手优先选 pm2老玩家想折腾 launchd 可以试试。两种方案选一个就行不需要同时用。5. 把助手接进日常生活四个实战玩法框架跑通、常驻稳定之后真正的乐趣才开始配置各种自动化场景让它从“能聊天”变成“能干活”。5.1 早上 8 点的简报推送主动汇报比被动问答更有用我配置的第一个场景是每日早报。每天早上 8 点OpenClaw 自动执行一个任务拉取当天的天气信息、日历事项和几则新闻标题然后调用模型整理成一段三百字左右的简报通过通知渠道推送到手机。配置方式通常是在框架里定义一个定时触发器下面是一个概念示例triggers: - name: morning_brief schedule: 0 8 * * * action: | gather weather, calendar events, news headlines summarize with model send to notification channel这里的0 8 * * *是 cron 表达式表示每天早上 8 点。cron 表达式是这类定时任务最常见的配置方式从左到右分别是分、时、日、月、星期第一次看不懂没关系网上有大量生成工具可以用。我踩过的坑是忘记设置时区结果本该早上 8 点推送实际下午 3 点才触发。检查一下系统时区和框架里的TIMEZONE配置就能解决。5.2 接入日常 IM 机器人随时在手机上使唤它要让助手真正融入生活最好把它接进你日常使用的 IM 工具。实现方式很简单在 IM 平台创建一个机器人拿到 Webhook 地址或 Bot Token然后填进 OpenClaw 的渠道配置里。接好之后你在手机上发一条消息家里的 Mac mini 就会收到并处理。比如你在外面开会随手发消息“把今晚 7 点安排一个健身提醒”助手会自动把任务写进日程管理工具并按时提醒。这种“随身带一个管家”的感觉是网页聊天完全给不了你的。我的建议是第一步先用一个只有你自己的测试群来调通渠道不要在陌生人多的群直接启用机器人。因为配置不当的话机器人可能对群里每一条消息都产生回应场面会失控。调通之后再慢慢扩大使用范围。5.3 私人知识库与长期记忆让助手越来越懂你默认情况下模型对话是没有记忆的每次请求都是一次全新会话。要让助手记住你的偏好、习惯和重要信息需要给它配置“记忆”能力。大多数框架的做法是引入一个向量数据库把对话历史、笔记摘要、重要事实转成向量存起来。当模型回答问题时框架会先从记忆库里检索相关内容再交给模型组织回答。这个机制和很多 AI 知识库工具本质上是同一个思路检索增强生成。实操上有两个技巧。第一不要一开始就灌大量资料进去先让助手每天自动把重要对话总结成几条笔记存起来运行一段时间后再测试它是否记得。第二定期检查记忆内容删掉过期信息不然存储会越积越大检索效果也会下降。我把这个功能比作“给助手写日记”它记下来的东西越精简越能派上大用场。5.4 自定义技能跑一个定时监控小任务OpenClaw 这类框架通常支持自定义技能。所谓技能就是一段脚本或一个工具函数把它注册进框架后AI 可以在合适的场景下自动调用。我实现过的一个实用技能是“盯页面更新”每 30 分钟访问一次某个目标网页比对内容快照如果发现变化就推送通知到手机。逻辑拆开其实就三件事定时触发、抓取网页、发送推送。框架本身已经提供了这些基础能力你需要做的只是把它们串起来。如果你会写一点 Python 或 Node自由度会更大。比如写一个股票价格监控脚本价格超过阈值就提醒或者写一个 RSS 扫描器把感兴趣的新内容自动汇总发过来。这类“定时触发抓取推送”的组合几乎能覆盖 90% 的个人自动化需求而且每多一个技能助理的实用性就上一个台阶。6. 成本测算这套方案真的便宜吗聊了这么多功能最后算一笔账看这套方案到底落到多少钱。6.1 一次性硬件成本与电费细算硬件成本分两种情况如果你手上已经有 Mac mini那新增成本是零如果没有去二手平台找一台入门款。价格方面具体行情波动很大但大致在一个区间内一台 8GB 内存、256GB 存储的入门款二手价格通常在一两千到三四千元上下要看地区、成色和发布时间。买的时候留意一个坑有些看起来很便宜的机器是带锁的或配置有问题的最好选支持验机的渠道。电费方面按平均功耗 10W 计算一天耗电 0.24 度。一个月 30 天耗电约 7.2 度按居民电价每度 0.6 元电费大约 4.3 元。这个数字低到几乎可以忽略但对比那些几十上百瓦的旧电脑长期开机一个月省出几十块是实打实的。6.2 月度 API 开销估算API 开销是这套方案的浮动变量。如果只是跑定时简报、日常问答一个月大概在几块钱到几十块钱之间。如果是重度使用——每天几十次长对话、每个任务都调用最强模型——可能会到上百元。我自己的使用频率属于中度每天处理十几条消息加上三个定时任务一个月 API 费用基本控制在几十元内。这里的关键是合理设置模型参数比如把默认模型的温度调低、最大输出 token 控制在几百、避免让模型回答明显不需要思考的问题。订阅制会员一个月固定要花那么多API 按量计费则完全可伸缩用多少付多少。6.3 真正的省钱策略模型分级与缓存分享一个我最核心的省钱技巧模型分级。简单任务用便宜模型复杂任务用贵模型。OpenClaw 通常允许你给不同技能指定不同模型比如默认对话用小模型定时简报这种需要一定推理能力的任务用中档模型写代码、长文档总结这种高难度任务再调用最强的模型。这样分配下来平均单次请求成本能比“所有任务都用最强模型”低 50% 以上体验几乎不受影响。另外能缓存的结果尽量不要让模型重复生成。天气、新闻这种时效性一般的内容可以让框架直接调用数据接口拼进模板而不经过模型重新生成。模型只在“需要整合语义”的时候才参与。这两个策略叠加是我能在几十块钱一个月跑起整套方案的最大原因。成本项目订阅制会员估算Mac mini OpenClaw 模型 API估算月固定支出百元级别电费约 5 元 API 费用 10-50 元是否支持自动化基本不支持支持定时任务、工具调用、常驻后台是否支持多模型切换单一产品一个 Key 切换多种模型隐私控制数据在平台侧框架本地运行API 服务商选择空间大7. 常见问题与避坑指南跑了几个月我把最常见的问题和排查方法整理成速查表希望对你有用。7.1 问题速查表启动、定时、稳定性常见故障现象可能原因解决办法启动报 connection refusedAPI 地址填错、服务商暂时不可用、网络问题检查.env里的LLM_API_BASE先手动 curl 一下地址看是否通API 返回 timeout网络慢、模型响应过长、Key 额度不足检查 Key 余额降低max_tokens换一个更快的网络出口定时任务不触发时区不对、cron 表达式写错、进程没正常守护确认系统时区测试 cron 表达式确认 pm2 或 launchd 在运行回复乱码或重复温度参数过高、上下文太长、模型选错温度设为 0.7 左右裁剪上下文确认模型名称正确进程偶发消失内存不足、日志涨满磁盘给 pm2 配置max_memory_restart定期清理日志文件第二天早上失联系统进入睡眠、被断电、路由器给换了 IP检查节能设置接好 UPS固定内网 IP7.2 安全与隐私管好你的 API KeyAPI Key 是整套系统里最需要保护的东西。它一旦泄露别人就能用你的额度调用模型轻则产生额外费用重则把你账号的额度刷爆。几条硬性建议不要把含 Key 的.env文件提交到公开代码仓库不要在截图、博客、群里暴露 Key如果服务商支持主动设置每日消费限额并开启异常告警。同时OpenClaw 的运行日志里可能会打印请求参数如果日志里有 Key 字段记得在配置里关掉或打码。还有一点容易被忽略如果让助手处理了比较敏感的个人信息尽量选择数据合规口碑好的 API 服务商并确保请求走的是加密传输。这个不是小题大做长期运行的自动化工具安全线必须提前设好。7.3 长期运行的小技巧日志、UPS 与更新长期运行最怕三件事日志涨满、突然断电、代码老旧。日志问题可以通过 pm2 的日志轮转功能解决按天或按大小切割避免单个日志文件冲到几个 GB。我亲眼见过一台小主机因为日志文件把 256GB 硬盘塞满导致所有服务停摆排查了很长时间才知道原因。断电问题我前面提过加一台小型 UPS 电源就可以解决。一百来块钱的设备能够承受几分钟的停电时间足够让 Mac mini 安全关机避免系统文件损坏。这个投入对全年无休的服务来说非常值得。代码更新问题我的习惯是每过一两个月去项目仓库看看有没有新版本用git pull拉下来重启进程。开源框架迭代很快新版本往往能修复一些隐藏 bug 和兼容性问题。但要记住更新之前先备份.env配置文件否则一更新配置被覆盖助手直接失效。最后分享一点个人体会。自从把这套东西跑起来最大的改变不是“能问问题”而是“它会主动找我”。每天早上推送简报下午提醒待办晚上把当天聊过的重要内容整理成笔记。Mac mini 就安静地放在电视柜角落里几个月不关机几乎感觉不到它的存在。如果你手里正好有一台闲置的小主机或者一直想搞一个真正属于自己的个人 AI 助手这套方案值得抄作业。折腾过程中请一定记住先跑通最小系统再加花活先保住 Key 安全再谈省钱。祝顺利。