Mac mini AI 中枢调研报告
📅 调研日期:2026-08-03

Mac mini AI 中枢 + 双 VPS Hermes
解决方案调研报告

基于《Mac mini AI 中枢 + 双 VPS Hermes 方案设计 v1.0》的深化调研。目标:验证架构可行性、回答 4 个待决策问题、产出可直接指导子项目落地的全套方案。

01一、执行摘要(TL;DR)

1.1 一句话结论

这份设计的方向是对的,而且比原文档预期的更可行——因为 Hermes 原生已经内置了方案 70% 的底座(任务队列、调度器、审计、角色隔离、跨机通道),真正需要设计的是「跨机器桥接」和「知识图谱数据模型」,而不是从零搭建一套任务管理系统。

1.2 核心发现

#发现影响
1Hermes Kanban 原生提供:任务队列(SQLite)、Dispatcher 自动调度、依赖链接、block/unblock 人工介入、完整审计日志、崩溃回收/重试/熔断设计文档第 4 节「任务生命周期」的 70% 是现成的,无需开发
2Hermes Profiles 原生提供多实例隔离(独立模型/技能/记忆/会话),hermes profile install 可把 Worker 角色打包分发到 VPSSteward/Curator/Worker 的角色划分 = 3 个 profile,不是 3 套系统
3Kanban 是单机设计(官方明示 "deliberately single-host")——~/.hermes/kanban.db 是本地 SQLite,跨机器共享板不被支持这是原文档最大的未验证假设:VPS Worker 直接读写共享任务队列不可行,必须桥接
4跨机器有三个现成通道:API Server(OpenAI 兼容 RPC,★★★★)、SSH terminal backend(远程执行,★★★★)、Webhook(事件触发,★★★)Worker 不需要在 VPS 上跑完整 Hermes + 共享 DB;「本地板 + 远端执行」或「API Server RPC」是两条可行路线
5知识图谱选型:SQLite + FTS5 + sqlite-vec 是个人/家庭规模(<1 万实体)的甜点位——零运维、备份=拷贝单文件、官方 MCP server 现成Neo4j 是「杀鸡用牛刀」(JVM + 1GB 常驻 + 社区版无在线备份);Kùzu 项目已归档有风险
6Mac mini M4 24GB/512GB(¥8,999) 是甜点位:网关+调度+知识图谱常驻仅 2-4GB,还能舒适跑 14B 模型和 30B MoEM4 Pro 仅在需要 32B+ 或 2.3 倍速度时才值得

1.3 四个待决策问题的推荐答案(详见第三部分)

问题推荐理由
① Steward/Curator 是否拆分?推荐 初期不拆分,同一 Mac mini 用一个 Hermes 实例、两个 profile(或一个 profile 两个技能集),负载高后再拆剃刀原理:初期任务量低,拆分徒增协调成本;Hermes profile 天然支持"先合后拆"
② 知识图谱技术栈?推荐 SQLite + FTS5 + sqlite-vec(主存储)+ 可选 Obsidian/git 人机界面层零运维、备份=拷文件、官方 MCP server、升级路径清晰
③ VPS Worker 如何安全访问知识图谱?推荐 上下文打包(Steward 把相关事实打进任务包),Worker 不直接访问图谱;图谱 API 只对 Steward/Curator 开放最小暴露面 + 任务自包含(Worker 无状态),符合原文档"密钥不离开 Mac mini"原则
④ 试点任务类型?推荐 探索调研类(无副作用、验收标准清晰、失败成本低)与原文档建议一致,风险验证的正确起点

1.4 与原文档的关键差异

📄 原文档假设

「VPS Worker 是独立接收任务包的执行者」——这个模型需要为 Worker 单独开发任务协议。

🔍 本调研结论

更优路径:让 Hermes 现成的 Kanban + Profiles + 远程执行机制承担大部分工作,原文档的「任务包格式」「结果包格式」可以直接映射到 Kanban 的 task body + kanban_complete(metadata),无需新协议。

02二、现状诊断:设计文档的假设 vs Hermes 实际能力

2.1 逐条核对

设计文档组件文档假设Hermes 实际能力差距
任务队列 / 项目状态需自建Kanban:SQLite 持久化任务板,状态机 triage→todo→ready→running→blocked→done→archived,跨 profile 共享✅ 完全覆盖
Steward 调度 Worker需开发调度逻辑Kanban Dispatcher:gateway 内嵌,默认 60s tick,自动 claim、spawn、回收崩溃任务、失败熔断(failure_limit=2 自动 block)✅ 完全覆盖
验收 / 升级机制需开发验收规则Kanban block/unblock + 依赖链接:worker 自评 kanban_complete(metadata),Steward 人工 unblock/block/kanban 可从手机操作✅ 覆盖(验收逻辑本身仍需人/Steward 判断)
审计日志需自建Kanban task_events + task_runs:append-only 事件流 + 每次运行一行记录✅ 完全覆盖
任务包格式(目标/范围/验收/预算)需定义协议Kanban task body + skills 注入 + metadata:task body 写目标/范围/验收标准,--skills 给 worker 注入专用技能✅ 映射即可
权限分层需实现Kanban tenant 软隔离 + profile 隔离 + workspace 隔离⚠️ 部分覆盖(无细粒度行级权限,靠职责分离)
知识图谱需选型建库Hermes 自带 Memory + session_search(FTS5) 已是轻量知识层,但无结构化实体关系⚠️ 需补 SQLite 图谱层
密钥管理需设计 Vaultprofile 级 .env 隔离 + 不共享记忆/凭据✅ 天然满足"密钥不离开中枢"
跨机器 Worker 执行需开发任务分发协议API Server(RPC)/ SSH backend(远程执行)/ Webhook(触发) 三条现成通道✅ 有通道,需选型(见 3.3)

2.2 结论

原文档把「任务管理系统」当作需要从零构建的组件,但实际上 Hermes 的 Kanban 已经实现了它——这是本调研最重要的发现。设计重心应从「搭建任务基础设施」转移到「三件事」:

🎯 设计重心转移:三件事

  1. 角色配置:定义 steward/curator/worker-a/worker-b 四个 profile 的分工、技能、模型
  2. 跨机桥接:选择 API Server 或 SSH backend 让 Mac 指挥 VPS
  3. 知识图谱:设计 SQLite schema 并建立事实维护流程

这也解释了原文档核心痛点之一:「第二个 Hermes 闲置」——因为第一个 Hermes 把所有事都干了,没有用 profile 分工。解决方案不是「造一个调度系统」,而是「把 Hermes 的多实例能力用起来」。

第二部分:四个待决策问题详解

03三、待决策问题 ①:Steward 与 Curator 是否拆分?

3.1 问题本质

Steward(任务管家:接收需求→结构化→分发→验收)和 Curator(知识图谱维护者:抽取事实→维护图谱→提供上下文)是两个职责不同的角色。问题是:它们一开始就用两个独立 Hermes 实例跑,还是同一个实例兼任?

3.2 方案对比

维度方案 A:同一实例兼任方案 B:两个 profile 拆分
实现成本极低(一个 profile 装两个技能集)低(hermes profile create curator
协调成本无(同一实例内部切换)中(两实例间需要通信约定)
故障隔离差(Curator 挂了 Steward 也挂)
扩展性负载高后难拆天然可扩展
与 Kanban 的契合Kanban 天然支持「一个 profile 既当 orchestrator 又干活」需要 orchestrator profile 不干活、worker profile 不路由(kanban-orchestrator skill 的职责分离约定)

3.3 推荐:初期兼任,设计上预留拆分

✅ 推荐方案 A推荐

推荐方案 A,但按「两个技能包」组织而不是「一个混沌的实例」:

  • Steward 职责 = Kanban orchestrator 角色:加载 kanban-orchestrator skill,用 kanban_create 拆任务、路由、验收。这是 Hermes 官方定义的「orchestrator profile」用法。
  • Curator 职责 = 一组图谱维护技能:抽取事实、更新 SQLite、响应上下文查询。作为 Steward 的「附带职责」或独立 cron 任务。
  • 拆分触发器:当出现以下任一信号时拆成两个 profile:
    1. Curator 的图谱维护任务与 Steward 的任务调度互相阻塞(一个卡住另一个也卡)
    2. 图谱查询成为瓶颈(每次任务都要查图谱,Steward 上下文被撑爆)
    3. 需要给家庭成员单独开 Curator 访问入口

理由(第一性原理):初期任务量低,拆分带来的是「两个进程要互相通信」的额外成本,而不是收益。Hermes profile 是「先合后拆」的完美载体——同一套配置可以随时 profile create curator --clone 拆出去,成本几乎为零。不要为还不存在的负载付费。

04四、待决策问题 ②:知识图谱技术栈

4.1 场景定义

4.2 七个候选方案对比

方案运维复杂度空闲内存图遍历全文搜索向量检索备份难度官方 MCP许可证活跃度
SQLite+FTS5+sqlite-vec极低(无进程)几 MB中(递归 CTE 2-3 跳)⭐⭐⭐⭐⭐ 内置sqlite-vec(pre-v1)⭐ 拷单文件✅ 官方参考 server公有领域/Apache
Markdown+Obsidian+git极低~300-500MB(UI)弱(反链)Obsidian 搜索需插件⭐ git 版本历史✅ mcp-obsidian 4.2k★专有(个人免费)
Kùzu低(嵌入式)几十-200MB⭐⭐⭐⭐⭐ Cypher内置内置拷目录MIT⚠️ 已归档 2025-10
Neo4j CE中(JVM)~1-1.5GB⭐⭐⭐⭐⭐ Cypher内置内置中(CE 仅离线 dump)✅ 官方GPLv3
SurrealDB中(单进程)~100-300MB⭐⭐⭐内置export✅ surrealmcpBSL 1.1
Dgraph(双进程 zero+alpha)~0.6-1.2GB⭐⭐⭐⭐ GraphQL@search中高Apache-2.0
TinyDB极低忽略拷文件MIT

4.3 推荐:SQLite + FTS5 + sqlite-vec 为主存储,Obsidian/git 可选为人机界面层

✅ 推荐:SQLite + FTS5 + sqlite-vec推荐

为什么是 SQLite(第一性原理):

  1. 满足「低维护」硬约束:没有服务器进程、没有 JVM、没有 Docker 编排。一个 .db 文件,Python 标准库直接 import sqlite3。任何会写代码的人 10 分钟上手。
  2. 备份就是复制文件VACUUM INTO 做一致性快照 → rsync/rclone 到 NAS 或云。比 Neo4j CE「停库 dump」简单一个数量级。
  3. 查询能力恰好够用:FTS5 全文检索(成熟内置)覆盖「找那个关于 X 的决策」;邻接表 + 递归 CTE 覆盖「A 项目依赖了哪些任务/涉及哪些人」这类 2-3 跳查询;sqlite-vec 预留向量列,将来做 RAG 语义检索无需迁移。
  4. MCP 生态现成:官方 MCP 参考服务器(modelcontextprotocol/servers)就是 SQLite,Hermes 可以直接挂载;或 agent 用 Python 标准库直连。
  5. 风险最低:SQLite 公有领域、40 年历史,不存在「项目归档/许可证变更」这类黑天鹅(对比 Kùzu 归档、SurrealDB BSL、Dgraph 许可证摇摆史)。

诚实说明局限:如果未来频繁需要 ≥3 跳变长路径查询或图算法(最短路径、社区发现),SQLite 会别扭。届时两条升级路径:① 关系数据导出迁入 Kùzu 0.11.3/Ryu(同为嵌入式、支持 Cypher,数据模型可平移);② 规模真到十万级再考虑 Neo4j CE。现在选 SQLite 没有沉没成本。

数据模型建议(邻接表 + 业务表):

knowledge.db
├── entities      (id, type[project/task/decision/fact/person/document], name, properties_json, visibility, created_at, updated_at)
├── relations     (id, source_id, target_id, type[depends_on/assigned_to/mentions/decided_in], properties_json)
├── tasks         (业务实体:项目任务,与 kanban 任务可互引)
├── decisions     (决策:what, why, when, by_whom, alternatives)
├── notes         (自由笔记/事实)
├── fts5 虚拟表    (全文索引 entities+notes)
└── vec0 虚拟表    (预留,sqlite-vec,存 embedding)

权限分层实现entities.visibility 字段(private/family/team)+ 查询时过滤。Mac mini 单机场景不需要数据库级 ACL,应用层过滤即可(家庭共享 = 同一设备上的另一个 profile 查询时传 visibility 参数)。

05五、待决策问题 ③:VPS Worker 如何安全访问知识图谱

5.1 三个候选方案

方案机制优点缺点
A. 上下文打包(推荐)Steward 从图谱取相关事实,打包进任务 body/context 下发最小暴露面;Worker 无状态;任务自包含;密钥不出中枢事实冗余(每个任务都打包);图谱更新后旧任务上下文过期
B. 只读 APIMac 上跑图谱查询 API(如 SQLite MCP server / 自定义 HTTP 端点),Worker 按需查询实时最新;任务包小需要暴露服务 + 鉴权;Worker 需要网络访问中枢;攻击面变大
C. 图谱同步副本把知识图谱只读副本同步到 VPS(如 git/Syncthing)Worker 本地查询最快数据同步延迟;图谱副本泄露风险;多副本一致性

5.2 推荐:方案 A(上下文打包)为主,方案 B(只读 API)为进阶

✅ 推荐组合推荐
  • 阶段一(试点):纯方案 A。Steward(Curator 职责)从 SQLite 图谱取相关事实 → 写入 Kanban task body → worker 只读任务包。Worker 完全无状态、无图谱访问权。
  • 阶段二(规模后):加方案 B 的只读通道。在 Mac 上跑一个只读 SQLite 查询端点(HTTP 或 MCP server),VPS Worker 通过 Tailscale/WireGuard 内网访问,查询返回最小字段(只返回任务需要的实体,不返回 secrets/private 字段)。写操作只允许 Steward/Curator。
  • 永远不做:把图谱副本同步到 VPS(方案 C)——泄露风险大于收益,且与「Worker 无状态」原则冲突。

安全原则(继承原文档 + 细化)

  1. 密钥(API keys、token)只存在于 Mac mini 的 profile .env,VPS profile 不复制
  2. Worker 需要的第三方 API 密钥,由 Steward 通过任务包下发(每次任务独立,任务结束即失效)或通过 Mac 上的代理调用
  3. 图谱查询 API 只绑定内网(Tailscale/WireGuard),不暴露公网
  4. VPS Worker 的 profile 用 hermes profile install 分发角色配置(skills、提示词),不包含记忆和凭据

06六、待决策问题 ④:试点任务类型

6.1 评估矩阵

任务类型副作用风险验收标准清晰度失败成本对图谱的依赖建议
探索调研类高(产出报告+来源)试点首选
编码实现类中(改文件)中(需测试)第二波
运维操作类高(生产环境)最后(需人工审批)
定时巡检类可并行(cron+kanban)

6.2 推荐:探索调研类 + 一个真实场景试跑

✅ 推荐:探索调研类推荐

为什么是调研类(第一性原理):Steward 工作流最核心的风险是「验收不准」。调研类任务的验收标准天然可写(输出结构、覆盖范围、来源可查),且失败无副作用——是验证「Steward 分发→Worker 执行→Steward 验收」闭环的最低成本场景。

具体建议:用你手头真实的、有价值的调研任务试点,不要用玩具任务。例如:

  • 「调研 X 厂商的 Y 产品定价和对比」(输出对比表+来源)
  • 「评估某技术栈在 Mac mini 上的部署方案」(输出步骤+验证结果)

真实任务才能暴露:Steward 拆任务够不够细、上下文打包够不够全、验收标准写得好不好。

07七、跨机器架构:两条可行路线对比

7.1 路线 A:「本地板 + 远端执行」(改动最少)

Mac mini(唯一真相源)
├─ Kanban 板 + Dispatcher(gateway 内嵌)
├─ Steward profile(orchestrator:拆任务、路由、验收)
├─ Curator profile(图谱维护)
├─ worker-local profile(terminal.backend: ssh → VPS-A)
└─ worker-remote profile(terminal.backend: ssh → VPS-B)
        │ SSH (密钥登录)
        ▼
VPS-A / VPS-B(不装 Hermes 或只装轻量执行环境)
├─ 工具链:Playwright、PlantUML、浏览器等
└─ 执行:命令由 Mac 的 worker profile 通过 SSH 发起
  • 优点:单板单真相源;审计/依赖/重试全保留;VPS 不需要维护第二个 Hermes;Kanban 协议在 Mac 侧闭环
  • 缺点:SSH backend 是 profile 级全局配置(一个 profile 只能指向一台 VPS,需要两个 worker profile 各指一台);SSH 长任务/超时需调优;需要实测稳定性
  • 适用:VPS 主要被当作「远程工具执行环境」

7.2 路线 B:「API Server RPC」(双 Hermes 对等)

Mac mini                              VPS-A / VPS-B
├─ Steward profile                    ├─ Hermes + API Server(独立 key)
├─ 用 OpenAI SDK 调 /v1/runs 下发任务  ├─ Tailscale/WireGuard 内网
├─ SSE 盯进度 / stop 中止              ├─ profile: worker-a(hermes profile install 分发)
├─ /v1/runs/{id}/approval 人工审批     └─ 完整工具链 agent
└─ 反向调 VPS 的 /v1/chat/completions
  • 优点:结构化、双向、可编程;VPS 上跑完整 Hermes(符合现状——你已有两个 VPS Hermes 实例);支持长任务状态轮询 + SSE 进度 + 审批
  • 缺点:需要自己写一层薄调度胶水(任务状态映射到 Kanban);无内置队列/重试(靠 Steward 侧兜底);API server 暴露完整终端权限,必须设独立 key + TLS
  • 适用:VPS 已是独立 Hermes 实例(你的现状!),希望保留其自治能力

7.3 推荐:路线 B 为主(贴合现状),路线 A 为补充

✅ 推荐:路线 B 为主 + 路线 A 补充推荐

关键判断依据:你已有两个 VPS Hermes 实例——它们不是裸执行环境,而是完整的 agent。路线 A 把 VPS 降级为「远程 shell」,浪费了已有的 Hermes 部署;路线 B 让它们作为对等 Worker 被 Steward 调度,符合原文档「VPS Hermes 是手脚」的定位,且保留扩展空间(VPS 实例可独立完成需要其本地上下文的任务)。

实施骨架

  1. 每台 VPS:API_SERVER_ENABLED=true + 独立 API_SERVER_KEY + Tailscale/WireGuard 内网 + TLS 反代
  2. Mac mini:Steward profile 封装一个「下发任务」的 skill(调 /v1/runs、轮询、收结果、写回 Kanban)
  3. Kanban 板在 Mac 上维护任务状态真相源;VPS 上的执行结果通过 Steward 的封装 skill 回写 kanban_complete(metadata)
  4. 简单命令执行(非 agent 任务)走路线 A 的 SSH backend 补充
⚠️ 需实测验证项(文档未明确承诺):① GATEWAY_PROXY_URL(Proxy Mode)双向转发在真实跨机场景的可用性;② /v1/runs 的 SSE 进度与 approval 流程;③ SSH backend + kanban worker 组合的稳定性。建议子项目 1 落地时用最小实验验证这三项,再决定主路线。
第三部分:落地路线

架构图集(PlantUML 渲染)

以下三张图是本方案的核心视图。图 1 展示目标架构全貌,图 2 展示任务从需求到验收的完整生命周期(映射到 Hermes Kanban 原生机制),图 3 展示 Mac mini 与 VPS 之间的跨机桥接通道。
📐 目标架构:Mac mini AI 中枢 + 双 VPS Worker(基于 Hermes 原生能力)
目标架构:Mac mini AI 中枢 + 双 VPS Worker(基于 Hermes 原生能力,非自建系统)Mac mini(家庭 AI 中枢)VPS-A(Worker)VPS-B(Worker)Hermes 网关(入口 + Dispatcher)Steward profile任务管家(orchestrator)Curator 职责(同实例兼任,预留拆分)Kanban 板(/.hermes/kanban.db)任务队列 + 审计知识图谱SQLite + FTS5 + sqlite-vecSecrets / .env(密钥不出中枢)launchd 常驻 + Time Machine+ Syncthing 备份Hermes 实例+ API Server工具链:浏览器/爬虫Playwright 等Hermes 实例+ API Server工具链:定时批处理海外 API 等用户(Discord / 手机)知识图谱访问原则:Worker 不直接访问图谱(上下文打包下发)图谱写操作仅 Curator图谱读操作限 Steward + 内网 API需求 / 验收 / block-unblock调度(Kanban dispatcher)kanban_create / 验收抽取 / 更新事实上下文查询(只读)路线B: /v1/runs RPC(内网 Tailscale/WireGuard + TLS)路线B: /v1/runs RPC密钥仅中枢持有执行执行每日 VACUUM INTO + rclone
📐 任务生命周期(映射到 Hermes Kanban 原生机制)
任务生命周期(映射到 Hermes Kanban 原生机制)用户用户Steward(orchestrator profile)Steward(orchestrator profile)Curator 职责(兼任)Curator 职责(兼任)Kanban 板+ DispatcherKanban 板+ DispatcherWorker(VPS Hermes)Worker(VPS Hermes)提出模糊需求结构化:目标/范围/验收标准(阶段一:用户确认后下发)任务单确认(仅阶段一)确认 / 修改提取相关项目上下文查询知识图谱(SQLite + FTS5)事实打包(上下文打包方案)kanban_create(任务包 + skills)dispatcher 60s tickclaim 任务下发(API Server /v1/runs或 SSH backend)自主执行 + kanban_heartbeatkanban_complete(summary, metadatacriteria_met, confidence)任务完成事件对照验收标准判断通过 / 返工 / 升级alt[验收通过]结果摘要(无需用户介入)[需要人工决策]kanban_block(reason)升级通知(手机 /kanban)unblock / 反馈重新调度
📐 跨机桥接:路线 B(API Server RPC)主 / 路线 A(SSH backend)辅
跨机桥接:路线 B(API Server RPC)主 / 路线 A(SSH backend)辅用户(手机)用户(手机)Steward(Mac mini)Steward(Mac mini)封装 skill:下发任务封装 skill:下发任务Tailscale/WireGuard内网 + TLSTailscale/WireGuard内网 + TLSVPS HermesAPI ServerVPS HermesAPI ServerWorker profile(VPS 本地)Worker profile(VPS 本地)任务已 ready(kanban 事件)POST /v1/runs{goal, context, skills}Authorization: Bearer <key>创建 run,返回 run_idGET /v1/runs/{id}/events (SSE)内部 spawn worker 会话执行任务(工具链在 VPS 本地)完成 / 需审批SSE: run.completed + result映射回 Kanbankanban_complete(metadata)任务状态更新结果摘要 / 升级路线 A 补充:简单命令执行不走 agent,由 Mac 侧 worker profile 通过 SSHterminal backend 直接在 VPS 上跑命令

08八、子项目落地路线(细化版)

原文档建议 4 个子项目,本调研确认其拆分合理,但顺序和内容需要调整——因为 Kanban/Profiles 已内置,子项目 3(任务管家)和子项目 4(Worker 改造)的工作量大幅缩小,核心变成「配置 + 桥接」而非「开发」。

8.1 子项目 1:Mac mini 基础环境(前置,必须最先)

目标:让 Mac mini 成为可 7x24 运行的中枢。

步骤内容验收标准
1.1购买配置 ✅ 已完成:M4 32GB/512GB 已购(2026-04-16),全新未开机
1.2首次开机 + 初始设置(接显示器/屏幕共享完成 macOS 向导、Apple ID 登录、创建本地账户、系统更新)系统进入桌面,能 SSH 登录
1.3系统设置:开 SSH、关自动更新/休眠(softwareupdate --schedule off + pmset -a sleep 0 disablesleep 1SSH 密钥登录成功,7x24 不睡眠
1.4安装 Hermes(curl 安装脚本)+ 配置模型(deepseek 等,沿用 VPS 配置)hermes doctor 全绿
1.5launchd 常驻:写 LaunchAgent plist(<KeepAlive>true</KeepAlive> + <RunAtLoad>true</RunAtLoad>)托管 gateway重启后 gateway 自动拉起
1.6TCC 权限:给 sshd 开「完全磁盘访问」(或工作目录放 ~/agents/ 非保护路径)agent 能读写工作目录
1.7组网:Tailscale 为主 + VPS 上自建 WireGuard 为备手机/笔记本/两台 VPS 都能连入内网
1.8备份:Time Machine → NAS/外置盘 + Syncthing 同步关键配置恢复演练通过
1.9UPS(山特/APC 500-800VA,~¥400)+ 每日定时开机兜底断电恢复策略落地
1.10跨机最小实验:在 Mac 上建 Hermes profile,用 API Server 调 VPS 上的 Hermes 跑一个简单任务(如 echo hello三条通道(API/RPC、SSH backend、Webhook)至少验证一条通
⏱ 预估工作量:1-2 天(配置为主,无开发)。首次开机(1.2)建议接显示器/屏幕共享完成向导,之后 headless 运行

8.2 子项目 2:个人知识图谱(可与子项目 1 并行,或在跑任务中沉淀)

目标:建立 SQLite 事实单一来源。

步骤内容验收标准
2.1建库:SQLite schema(entities/relations/tasks/decisions/notes + FTS5 虚拟表 + vec0 预留)sqlite3 knowledge.db .schema 通过
2.2导入第一批数据:只导入 2-3 个高频项目(如正在进行的项目),不要一次性导入全部历史资料(剃刀原理,防止维护成本失控)每个项目 20-50 条实体,含关系
2.3定义 Curator 技能包:抽取事实的提示词模板(从 chat 记录/文档/决策中提炼)3 次抽取测试:事实入库准确、无重复
2.4给 Hermes 挂 SQLite MCP server(官方参考实现)hermes mcp test sqlite 通过,agent 能查询
2.5备份自动化:cron 每日 VACUUM INTO + rclone 到 NAS/云备份文件存在,恢复演练通过
2.6(可选)Obsidian vault + git 做人机界面,定期从 SQLite 导出阅读视图家庭成员能浏览共享知识
⏱ 预估工作量:2-3 天(含首批数据导入和技能包打磨)

8.3 子项目 3:任务管家工作流(核心价值验证)

目标:让 Steward 能从「辅助结构化」演进到「代为验收」。

阶段内容验收标准
阶段一:辅助结构化(1-2 周)Steward profile 加载 kanban-orchestrator skill;用户给模糊需求 → Steward 输出结构化任务单(目标/范围/验收标准)→ 用户确认后kanban_create 下发连续 5 个任务,用户确认率 100%,任务单被用户采纳(无大改)
阶段二:代为验收(2-4 周)对验收标准清晰的调研类任务,Steward 按用户确认过的标准自行验收,异常(自评不达标/有争议)才升级给用户;验收结论写入 kanban_complete(metadata)10 个任务中 ≥7 个无需用户介入完成
阶段三:减少确认(1-2 月后)积累验收模板(调研类/编码类/巡检类各一套)后,逐步放开「低风险任务免确认」用户抽查 5 个免确认任务,全部合格

关键机制(全部用 Hermes 原生)

⏱ 预估工作量:阶段一 1-2 天配置 + 2 周试跑(主要是流程磨合,非开发)

8.4 子项目 4:VPS Worker 改造(视实际任务类型而定)

目标:让两个 VPS Hermes 成为可被调度的 Worker。

步骤内容验收标准
4.1两台 VPS 启用 API Server(独立 key、内网绑定、TLS 反代)curl /v1/models 从 Mac 侧可访问
4.2hermes profile install 给 VPS 分发 worker profile(含 Playwright/PlantUML 等技能)hermes -p worker-a skills list 通过
4.3Steward 封装「下发任务」skill:调 /v1/runs → 轮询 → 收结果 → 写回 Kanban端到端试跑:Mac 下发 → VPS 执行 → 结果回 Kanban
4.4明确两个 VPS 的分工(如 VPS-A 偏重浏览器/爬虫、VPS-B 偏重定时批处理/海外 API)分工文档 + 各跑通一个真实任务
4.5(可选)Proxy Mode 实验:验证 GATEWAY_PROXY_URL 能否让 VPS 消息整体转发给 Mac实验结论记录,决定是否采用
⏱ 预估工作量:2-3 天(主要是桥接 skill 封装和实测)

8.5 启动顺序(调整后)

1子项目 1(Mac mini 基础) → 必须先完成,是所有后续的地基
2子项目 3 阶段一(任务管家辅助结构化)+ 子项目 2 并行(图谱沉淀)
└─ 用真实调研任务试跑,边跑边沉淀图谱
3子项目 4(Worker 桥接) → 当子项目 3 阶段一跑通后接入
4子项目 3 阶段二/三(代为验收) → 有足够任务样本后演进
与原文档顺序的差异:原文档建议「1 → 3 → 2 → 4」,本调研建议「1 → 3+2 并行 → 4」——因为知识图谱的初始数据应该来自真实任务运行(跑任务的过程中自然产生决策/事实),而不是先空建库再导入。

09九、风险与应对(更新版)

风险影响应对(更新)
Steward 验收不准阶段一必须用户确认标准(原文档保留);加「验收模板沉淀」机制(每类任务积累 checklist);低置信度任务强制升级
跨机桥接不稳定 新增API Server/SSH backend 是文档未完全承诺的路径,子项目 1.9 必须先做最小实验验证;备选通道(webhook、消息平台)保持可用
知识图谱维护成本高只导入高频项目(原文档保留);维护动作集成到任务流程(任务完成时顺手更新图谱,而非单独维护);定时 cron 检查图谱新鲜度
两个 Worker 协调复杂Steward 统一调度(原文档保留);Kanban 单板 + 依赖链接天然避免竞争
敏感数据泄露密钥只在 Mac mini(原文档保留);VPS Worker 无图谱访问权(方案 A);API Server 只绑内网 + 独立 key + TLS;不用方案 C(图谱同步到 VPS)
Mac mini 单点故障定期备份图谱和任务队列到 NAS/云(原文档保留);VPS 可临时接管调度(VPS 上保留 Steward profile 的只读副本,紧急时 hermes profile install 恢复)
macOS 常驻陷阱 新增关自动更新/休眠、UPS + 定时开机、launchd KeepAlive、TCC 权限——8 个具体坑见子项目 1
SQLite 多 agent 并发写冲突WAL 模式(默认开启)+ 单写者约定(Curator 是唯一写者,其他只读)

10十、Mac mini 硬件选型速查

✅ 用户已购配置(2026-08-03 确认)

Mac mini M4 / 32GB 统一内存 / 512GB SSD / 万兆网口 + AppleCare+,¥10,398(2026-04-16 购买,全新未开机)

该配置优于本报告推荐的 24GB 甜点位,常驻服务(网关+调度+知识图谱)仅 2-4GB,剩余 ~28GB 全给本地推理:

推理档位24GB(推荐档)32GB(你的配置)
7-8B(Qwen3-8B 等)✅ 25-35 tok/s✅ 25-35 tok/s
12-14B(Qwen3-14B 等)✅ 15-22 tok/s✅ 15-22 tok/s(更从容)
20B MoE(gpt-oss-20b)✅ 25-35 tok/s✅ 25-35 tok/s
30B MoE(Qwen3-30B-A3B)✅ 30-40 tok/s✅ 30-40 tok/s
32B 稠密(Qwen3-32B)❌ 放不下25-30 tok/s(新增能力)
70B 稠密❌(需 48GB)

要点

10.2 其他配置档位参考(未选购时的备选认知)

场景推荐价格理由
核心推荐:中枢 + 偶尔本地 7B-14B 推理M4 24GB/512GB¥8,99924GB 让 14B Q4 舒适运行、能跑 Qwen3-30B-A3B MoE;比 M4 Pro 省 ¥3,500
纯中枢(推理全走 VPS/API)M4 16GB/256GB¥5,999最省钱;256GB 建议外接 SSD
常跑 32B / 追求速度M4 Pro 24GB(升 48GB)¥12,499+273GB/s 带宽,速度快 2.3 倍
你的 32GB 配置介于「核心推荐」和「M4 Pro」之间:本地推理能力接近 M4 Pro 的 24GB 档(MoE 体验一致),只是速度受 120GB/s 带宽限制。

11十一、决策清单与下一步

11.1 需要用户拍板的决策

#决策本调研推荐备注
D1是否购买 Mac mini、哪档配置✅ 已解决 M4 32GB/512GB 已购(2026-04-16),全新未开机配置优于推荐档(详见第十章)
D2Steward/Curator 拆分时机推荐 初期兼任,预留拆分无分歧风险
D3知识图谱技术栈推荐 SQLite+FTS5+sqlite-vec无分歧风险
D4Worker 访问图谱方式推荐 上下文打包为主无分歧风险
D5跨机主路线推荐 路线 B(API Server RPC)为主,SSH backend 补充需子项目 1.9 最小实验后确认
D6试点任务推荐 探索调研类 + 一个真实场景建议用户指定第一个试点任务

11.2 下一步行动

  1. 确认 D1(买不买 Mac mini)——✅ 已确认:M4 32GB/512GB 已购,全新未开机,可直接启动子项目 1
  2. 若确认购买:启动子项目 1(Mac mini 基础环境,1-2 天)
  3. 子项目 1 完成 1.10 步(跨机最小实验)后,确认 D5(跨机主路线)
  4. 并行启动子项目 2(图谱 schema + 首批数据)和子项目 3 阶段一(Steward 辅助结构化)
  5. 用第一个真实调研任务跑通全链路,验证「用户提需求 → Steward 结构化 → Worker 执行 → 验收」闭环

11.3 原文档待决策问题的最终答复汇总

原文档问题本调研答复
① Steward 和 Curator 是否一开始就拆分?不拆。一个 profile 兼任,按职责组织技能包,出现阻塞/瓶颈信号再拆(profile clone 成本≈0)
② 知识图谱选用什么技术栈?SQLite + FTS5 + sqlite-vec(主存储),可选 Obsidian/git 人机界面层。不选 Neo4j/Dgraph/Kùzu(理由见 4.3)
③ VPS Worker 如何安全访问知识图谱?上下文打包(方案 A)为主,只读 API(方案 B)进阶,永远不做图谱同步到 VPS(方案 C)
④ 任务管家第一阶段从哪类任务开始试点?探索调研类,且用真实有价值的任务(不是玩具任务)试跑