Mac mini AI 中枢 — 全链路可行性分析

10 个卡点逐一拆解 · 风险评级 · 缓解方案 · Clash Verge 迁移指南

版本 1.1 · 2026-08-12 · blueprint v2.2.0

一、全链路卡点分布

全链路卡点拓扑图
低风险/已解决
中风险需关注
高风险需预案

二、10 个卡点详细分析

卡点 0:Xcode CLT 首次安装 🟢 低风险

描述:Homebrew 安装依赖 Xcode Command Line Tools,首次安装可能弹出 GUI 对话框

影响:用户需在 Mac mini 屏幕上点一次"安装"按钮

缓解:用户在 bootstrap 阶段在场,可手动确认。bootstrap.sh 预先执行 xcode-select --install

结论:不阻塞

卡点 1:反向 SSH 隧道稳定性 🟡 中风险

描述:VPS 通过反向 SSH 隧道(VPS:22022 → Mac:22)远程控制 Mac mini,依赖家庭宽带稳定性

影响:家庭网络断开 = Hermes 失联,无法远程操作

缓解:LaunchDaemon KeepAlive=true + ServerAliveInterval=30s + 自动重连。家庭宽带通常稳定(宽带运营商 SLA > 99.5%)

结论:可接受,隧道断开后自动恢复(< 1 分钟重连)

卡点 2:远程 brew install 耗时 🟢 低风险

描述:Homebrew + 全套软件安装约 20-30 分钟,期间隧道需保持连接

影响:如果中途断网,部分安装未完成

缓解:所有 brew 命令幂等(重复执行不报错),安装脚本支持断点续装

结论:不阻塞

卡点 3:数据迁移(~/.hermes/ 3.2GB) 🟡 中风险

描述:state.db 311MB、skills 22MB、总 3.2GB,经反向 SSH 隧道传输

影响:新加坡 VPS → Mac mini 经隧道,速度受家庭宽带上行限制

缓解(三选一):

① 先 rsync 主体(非 db),再单独 rsync state.db
rsync -avz --compress 压缩传输
③ MacBook 直连 Mac mini 内网传输(千兆局域网,最快)

结论:可接受,一次性操作

卡点 4:Discord Gateway 切换 🔴 高风险

描述:Discord bot token 只允许一个 WebSocket 连接。必须先停 VPS gateway,再启 Mac mini gateway

影响:切换期间(~30s)Discord 无响应。如果两端同时在线,Discord 会踢旧连接导致不稳定

缓解:脚本化严格执行 stop → wait 5s → start 序列:

# VPS 侧
systemctl --user stop hermes-gateway
sleep 5
# Mac mini 侧(通过隧道 SSH)
ssh mac-mini "hermes gateway start"

结论:⚠️ 需严格按序执行,但机制明确可控

卡点 5:北京 VPS 购买 🟢 无风险

描述:用户在腾讯云控制台购买轻量应用服务器 2核2G 北京地域

推荐配置:腾讯云轻量应用服务器 2核2G 3Mbps 50GB SSD,Ubuntu 22.04,北京地域,~50元/月

结论:不阻塞

卡点 6:WireGuard 服务端安装 🟢 低风险

描述:Hermes SSH 登录北京 VPS,apt 安装 WireGuard,生成密钥对,配置服务端

影响:标准 Linux 操作,Hermes 完全可远程完成

结论:不阻塞

卡点 7:Clash Verge + WireGuard 路由冲突 ✅ 已消除

描述:Clash Verge 的 TUN 模式和 WireGuard 都会修改系统路由表和 DNS。如果路由范围重叠,可能导致流量环路或断网

结论:已消除 ✅ — 用户确认 Clash Verge 使用系统代理模式(非 TUN),不修改路由表,与 WireGuard 完全不冲突。WireGuard 正常配置 AllowedIPs = 10.0.0.0/24 即可。

卡点 8:Clash Verge GUI 依赖 🟢 低风险

描述:Clash Verge Rev 是 GUI 应用,通常需要显示器操作

结论:已解决 ✅ — 用户在 Mac mini 上自己安装 Clash Verge Rev 并手动填入订阅 URL(与 MacBook 上操作一致),不需要 Hermes 远程预配置。Hermes 只负责安装其他所有软件。

卡点 9:Clash Verge 配置迁移 🟢 低风险

描述:用户需在 Mac mini 上配置 Clash Verge

结论:已解决 ✅ — 用户自行在 Mac mini 上安装 Clash Verge Rev + 填入订阅 URL,无需 Hermes 介入。与 MacBook 上的操作完全一致。

三、风险汇总

编号名称风险等级状态
0Xcode CLT 首次安装🟢 低用户在场可解决
1反向 SSH 隧道稳定性🟡 中KeepAlive 自动重连
2brew install 耗时🟢 低幂等可断点续装
3数据迁移 3.2GB🟡 中压缩/内网传输
4Discord Gateway 切换🔴 高⚠️ 脚本化严格序列
5北京 VPS 购买🟢 低纯用户操作
6WireGuard 安装🟢 低标准远程操作
7Clash+WG 路由冲突✅ 消除不开 TUN,无冲突
8Clash Verge GUI 依赖🟢 低用户自行配置
9Clash 配置迁移🟢 低用户自行配置

整体评估

10 个卡点中:低风险/已消除 8 个 · 中风险 1 个 · 高风险 1 个

仅 1 个高风险点(Discord 切换)有明确缓解方案,Clash 相关卡点已全部降级为低风险

方案可行,无致命阻塞 ✅

四、Clash Verge 安装指南(用户自行操作)

1

在 MacBook 上找到订阅 URL

打开 Clash Verge Rev → 订阅管理 → 找到当前订阅的 URL(形如 https://xxx.com/api/v1/client/subscribe?token=...

或终端执行:cat ~/Library/Application\ Support/io.github.clash-verge-rev.clash-verge/profiles/*.yaml | grep -m1 url

2

把 URL 发给我(Hermes)

在 Discord 对话中把订阅 URL 发给我。我会在 Mac mini 上自动安装 Clash Verge Rev 并配置好。

3

Hermes 在 Mac mini 上自动执行

brew install --cask clash-verge-rev
# 预配置 profiles 目录
# 设置系统代理 + 开机自启
# TUN 模式排除 wg0 接口
4

验证

curl --proxy socks5://127.0.0.1:7890 https://www.google.com 返回 200

curl https://ipinfo.io 确认出口 IP 变为代理节点

有自定义规则?走完整迁移(方案 B)

如果你在 Clash Verge 中有自定义规则(非纯订阅),需要完整迁移配置目录:

MacBook 上执行:

cd ~/Library/Application\ Support/
tar czf ~/clash-verge-backup.tar.gz io.github.clash-verge-rev.clash-verge/

传输到 Mac mini:AirDrop / scp / U盘均可

Mac mini 上执行(Hermes 自动):

cd ~/Library/Application\ Support/
tar xzf clash-verge-backup.tar.gz
# 重启 Clash Verge Rev

五、你只需要做这些

最少操作清单

1

Mac mini 开机 + 完成 macOS 设置向导

建账户、连 Wi-Fi,~10 分钟

2

终端粘贴一行命令

curl -fsSL https://mac-mini-setup-b0h.pages.dev/bootstrap.sh | bash,输一次密码,~2 分钟

3

告诉我"接管完成"

等 Hermes 远程安装完通知你,~30 分钟(期间你可以做别的)

4

腾讯云买北京 VPS

轻量应用服务器 2核2G 北京,~10 分钟

5

在 Mac mini 上自己装 Clash Verge + 填订阅

和 MacBook 上一样的操作,系统代理模式(不开 TUN),~5 分钟

用户实际操作时间:~25 分钟(不含等待)

六、MacBook Pro 连入 Mac mini

Mac mini 是 7x24 AI 中枢,MacBook Pro 是你的移动办公主力。两种连接场景:

在家(同一局域网)

用途方式操作
SSH 终端 内网直连 ssh 用户名@Mac-mini的局域网IP
(Mac mini 上 System Settings → General → Sharing → Remote Login 已由 bootstrap 开启)
屏幕共享 macOS VNC MacBook 上 Finder → ⌘K → vnc://Mac-mini的局域网IP
或 System Settings → Sharing → Screen Sharing
(bootstrap 会自动开启)
文件传输 Syncthing / scp Syncthing 自动同步指定目录;
临时传文件 scp 文件 用户名@Mac-mini-IP:~/
Hermes 交互 Discord 直接在 Discord 对话即可,Mac mini 上的 Hermes 响应

外出(通过 WireGuard 组网)

用途方式操作
SSH 终端 WireGuard VPN MacBook 开启 WireGuard → ssh 用户名@10.0.0.2(Mac mini 的 WG 内网 IP)
屏幕共享 WireGuard + VNC MacBook 开启 WireGuard → Finder ⌘K → vnc://10.0.0.2
Hermes 交互 Discord(不需 VPN) Discord 是 WebSocket 出站连接,不需要 VPN,直接对话即可
MacBook 上 WireGuard 客户端配置 一键导入

MacBook 从 App Store 安装 WireGuard app → 导入 Hermes 提供的配置文件(含北京 VPS 公钥、MacBook 私钥/公钥对、分配的 IP 10.0.0.3)

日常使用:点菜单栏 WireGuard 图标 → Toggle 开关即可连接/断开

无需始终保持连接——只有需要 SSH/屏幕共享 Mac mini 时才开。Discord 对话 Hermes 不需要 VPN。

七、Hermes 无缝衔接保障

迁移后 Hermes 必须和迁移前完全一致——会话历史、记忆、技能、定时任务、配置不丢失不变形。

迁移项内容大小验证方法
会话数据库state.db(39 个会话,17000+ 条消息,FTS5 全文搜索索引)311 MB迁移后 hermes sessions 列出 39 个会话
会话路由sessions.json(Discord/Telegram 线程→会话映射)60 KBDiscord 发消息→路由到正确会话
持久记忆memories/(用户偏好、环境事实、工具经验)6 个文件Hermes 能回忆迁移前的上下文
技能库skills/(project-blueprint、claude-code 等 50+ 技能)798 个文件hermes skills list 列出全部
定时任务cron jobs(天气监控、模型追踪、仪表盘等 10 个)27 KBhermes cron list 列出 10 个,下次触发时间正确
主配置config.yaml(provider、模型、工具链配置)5.3 KB0 处硬编码路径(已验证 ✅)
密钥文件.cf_token、.git-credentials、.cc-switch-cli/~1 KBwrangler 部署正常、git push 正常
⚠️ Discord 切换铁律 严格执行

Discord bot token 只允许一个 WebSocket 连接。迁移时必须严格按序:

# 1. VPS 停 gateway(断开 WebSocket)
systemctl --user stop hermes-gateway

# 2. 等待 5 秒确保连接完全释放
sleep 5

# 3. Mac mini 启 gateway(接管 WebSocket)
hermes gateway start

# 4. Discord 发测试消息验证响应

顺序不能反、不能同时。如果两端同时在线,Discord 会反复踢旧连接,导致不稳定。

切换窗口约 30 秒,期间 Discord 消息无响应(正常现象)。

已修复:Cron 路径硬编码 ✅ 已解决

迁移前已扫描全部 10 个 cron job,发现 2 个 job(模型更新追踪、成果仪表盘)的 prompt 中含 /home/ubuntu/ 硬编码路径。

已全部替换为 ~/(9 处),迁移到 Mac mini 后路径自动适配新用户目录。

config.yaml 经验证 0 处硬编码路径,无需修改。

迁移后验证清单 自动执行

Hermes 在 Mac mini 上启动后,自动验证以下项:

hermes sessions → 39 个会话可见
hermes cron list → 10 个 job 全部 active
③ Discord 发消息 → Hermes 正常响应
hermes skills list → 技能库完整
hermes memory → 记忆内容可见
hermes doctor → 无报错

6 项全绿 = 无缝衔接成功 ✅