从 2017 年的一个念头,到如今影音、健身、代码、知识库全自动运转。这篇文章聊聊我是怎么用一台双核 NAS 和 Hermes,把「私人助手」这件事落地的。
一、从「贾维斯」到 Hermes 实践
2017 年刚毕业那会儿,或许是受漫威影响,又或许是本身就热爱这份职业,我心里埋下一个念头:想给自己造一个「贾维斯」,帮我打理生活、工作和学习。
一路摸索过来,路线大概是这样的:
- 最早:Amazon Echo + 云端方案
- 然后:HomeAssistant 做家庭自动化
- 再后来:NAS 部署 Docker,结合 HA、Flask 后台、MQTT、米家,再加上自己写的一堆脚本
到这里,家庭自动化算是有了雏形:知识库自动积累、影音库自动爬取、信息汇总、家电自动化......这些 DIY 大多是从 2020 年购入 NAS 开始的。那是我第一次拥有一台带域名、7×24 小时为我服务的「电脑」------虽然它只有双核、18G 内存(后期暴力扩展),但至今仍在兢兢业业地服役。在此,先感谢一下我的 NAS 兄弟。
最近 AI 应用甚嚣尘上,我也开始用起了 Hermes Agent。和之前「OpenWebUI + 自动化脚本」的组合相比,它给我的最大感受有三点:
-
写脚本更省心:Agent 更懂我,很多脚本不用我再手写了。
-
记忆能堆叠:历史记忆可以陆续累积,上下文保存相对完整。
-
省资源:别问我为什么不用 OpenClaw---我的 NAS 跑不动,但跑 Hermes 绰绰有余。
下面我就从已实现的服务的功能介绍、效果、后续方向介绍,简单聊聊 Hermes 是怎么影响我的日常的。
二、整体架构
网络拓扑
我家的网络是这样串起来的:光猫做桥接,把信号透传给主路由器(RouterOS);再由主路由器分发,一路接到 AP 路由提供无线覆盖,另一路通过本地有线连接 NAS、电视和电脑这些固定设备。

主要用到的NAS 服务
自带软件:影音、相册、Docker 管理、摄像头监视器、反向代理、SSH 登录、数据库、文件管理、SMB。
自建服务:
|---------------|---------|
| 服务 | 用途 |
| 多终端微信云服务 | 消息多端同步 |
| Vaultwarden | 密码管理 |
| Gitea | 代码管理 |
| Hermes | 终端助理 |
| DooTask | 项目管理 |
| Mosquitto | MQTT 服务 |
| MyOpenSSL | 证书生成 |
| Calibre-Web | 个人图书馆 |
| Joplin server | 知识库 |
三、Hermes 已实现的服务
1. 视频下载
通过 Hermes 调用 skill,实现影视剧的自动化搜索、下载、排版,并放到指定权限的 SMB 目录中。甚至可以在 skill 里约定输出文件命名规范、图片刮削效果、去广告(ffmpeg)、清晰度调整(ffmpeg)等要求。
整体来看,它做的是这么一件事:从某个中文影视站批量下载电视剧或电影,转成 MP4 存到群晖 NAS 里,并且自动检测和删除片中的插播广告。
具体流程分八步走:
-
拿链接:从影视站详情页取出对应剧集地址。
-
提集数:用正则匹配「第 N 集」(这里有个坑,见下文)。
-
提 m3u8:在播放页抓取视频流地址,去掉 3 个字符的前缀,再做 Base64 和 URL 解码。
-
测速选源:用 ffmpeg 下载 8 秒片段,对比下载速度,挑最快的源。
-
批量下载:用 ffmpeg 做流拷贝(不重新编码,速度快),带上 Referer 防盗链头,并支持断点续传。
-
广告处理:先按每秒 1 帧抽帧做场景突变检测,再结合音频和亮度验证,最后用 ffmpeg 裁剪拼接。
-
存群晖:先下载到本地,再通过 SMB 分块上传(因为 ffmpeg 不认 SMB 路径)。
-
汇报:告诉用户下了哪几集、什么分辨率、存在哪;没更完的剧还会建一个定时任务定期检查。

说明:这里省略了一些反爬与防盗链的具体细节,写太细容易被平台处理,感兴趣的朋友可以私下交流。
用户偏好(已固化):沿用「第01集.mp4」的命名规范;分辨率不低于 1080P(低于就跳过并说明原因);存到指定 NAS 路径;下载前先测速选快源;中间的插播广告要先检测确认再删,没有广告就如实说明。
实际战绩:2026 年 8 月完整跑通了《杀人者的购物中心2》(6 集),批量下载、广告检测、存群晖全链路验证通过。


2. 个人健身指南
它会根据我的个人信息实时反馈,推动「私人教练」更新训练计划。核心知识蒸馏自《囚徒健身》(保罗·威德四书),当然你也可以蒸馏其他知识库。
六大基础动作 × 十式进阶(每项从第 1 式到第 10 式,必须逐式进阶,严禁跳级):
|--------|-----------|-----------|------------|
| 动作 | 第 1 式 | 第 5 式 | 第 10 式 |
| 俯卧撑 | 墙俯卧撑 | 标准俯卧撑 | 单臂俯卧撑 |
| 深蹲 | 肩倒立深蹲 | 标准深蹲 | 单腿深蹲 |
| 引体向上 | 垂直引体 | 标准引体 | 单臂引体 |
| 举腿 | 坐姿屈膝 | 平卧直举腿 | 悬垂直举腿 |
| 桥 | 短桥 | 标准桥 | 终极桥 |
| 倒立撑 | 靠墙顶立 | 标准倒立撑 | 单臂倒立撑 |
进阶标准是:当前式能做到 2 组 × 10 次、且动作标准,就升到下一式(其中「桥」这一项按保持时间 30~60 秒来判断)。
四套训练逻辑(skill 的核心知识分层):
|----------|-----------------------------------|
| 体系 | 逻辑 |
| 囚徒 1(力量) | 低次高质,十式进阶 |
| 囚徒增肌 | TUT 时间张力 / 停顿 / 减速离心 / 递减组,8~15 次 |
| 囚徒爆发力 | 低次高质 3~5 次,禁力竭,每周 1~2 天(须基础达标) |
| 囚徒 2(特技) | 俄挺 / 铁旗 / 慢起倒立(六项达到第 6 式才开放) |
六大功能(触发即响应):周训练计划表、升阶评估、动作纠错、计划调整、原理讲解、爆发力编排。
安全约束(强制):有旧伤自动降级并给替代动作;任何动作疼痛立刻停;新手或复训从低式起步;严禁跳级。





3. Code 库同步
这部分实现了 Gitea、本地、Joplin 三方的内容同步,顺带帮我重新整理了下我最近几年的一些项目,并制定了完善的提交规则。
整体的同步链路是这样的:Gitea 仓库作为权威源,里面平铺放着 127 个 skill 目录;本地有一个「中转仓」,是唯一做 git 操作的地方,它只通过 sparse-checkout 拉取 ai/skills 这一个子目录(而不是拉整个仓库);接着从「中转仓」再分两路------一路用 tar 拷贝到本地 skills 目录供 Hermes 实际加载,另一路通过 Joplin 的命令行导入,生成一份只读镜像供多端查看。

设计思路:
- 为什么用「本地中转仓」而非直接同步:Gitea 仓库有十几个G,全量 clone 会超时,中转仓用 sparse-checkout 只拉 ai/skills 子目录(实测 4 秒);同时把 git 操作集中在一个工作副本里,避免污染 Hermes 实际加载的 skills 目录。
- 两个目录的组织方式互不转换(用户明确约定):Gitea 侧是平铺结构,本地侧是分类结构,由同步脚本负责两者之间的映射。
补充说明:之所以要对原 skill 做原路径保存,是因为不同的 IDE 或 Agent 对 skill 的读取保存格式有要求,加一层本地做隔离。
- 冲突以 Gitea 为准:拉取时用 Gitea 覆盖本地;本地改动实时推送(不攒批),推送前先做一次 rebase 拉取。
- Joplin 是「镜像」不是「同步」:它只做只读展示、多端查看和全文检索,数据单向写入、不反向,避免引入冲突。
三方的角色:
|----------------------|-------------|----------------------------|
| 节点 | 作用 | 特点 |
| Gitea(Yangs/code) | 权威源 + 版本历史 | 平铺 127 个 skill,git 留痕可回滚 |
| 本地(/opt/data/skills) | Hermes 实际加载 | 分类结构,随用随改 |
| Joplin | 只读镜像 | 127 篇 SKILL.md,多端查看 + 全文检索 |
工作机制:改完即推、冲突以 Gitea 为准、Joplin 单向镜像、中转仓只 sparse-checkout ai/skills 子目录。
收益:skill 永久留档、多端随时查阅、换机一键恢复、全部脚本化(一个脚本统一驱动 push / pull / joplin / all 四种操作)。
现状:初始化已完成,Gitea 127 = 本地 127 = Joplin 127,三处一致。
4. 知识库总结与积累
这里也对我前几年将近200篇自行编写或者汇总的经验日记等做了重新排版与规整。
这套流程的核心链路是:先判断模式,再做链接查重,然后抓取全文、净化内容,接着分类归档、更新索引,最后双写到 Joplin 并汇报结果。

触发模式判断(根据发链接时带的关键词):
|------------------|--------|----------------|
| 你说的话 | 模式 | 处理方式 |
| 「收藏下 / 保存 / 存一下」 | 收藏模式 | 存原文,不提炼 |
| 「总结下 / 提炼 / 摘要」 | 总结模式 | 提炼核心观点后存 |
| 「说明下 / 介绍下 / 讲讲」 | 说明模式 | 先说不存,等说「收藏下」再存 |
| 无关键词 | 默认收藏 | 同收藏模式 |
详细步骤:
|-------------|------------------|----------------------------------|
| 步骤 | 做什么 | 关键点 |
| ① 判模式 | 按关键词确定收藏/总结/说明 | 总结优先于收藏(总结已含保存) |
| ② URL 查重 | 搜知识库全文找同 URL | 命中直接回「已归档」,不重复抓 |
| ③ 抓全文 | 抓取正文 | 收藏 10 万字符 / 总结 3 万字符;带浏览器 UA 防反爬 |
| ④ 净化 | 剔除广告/导航/推荐/二维码 | 保留标题/正文/图片/表格/代码 |
| ⑤ 分类 | 归入 9 大分类之一 | 投资理财加题材/宏观/行业/财报前缀 |
| ⑥ 更新索引 | 生成 README 索引 | 分类目录树 + 文件清单 + 总篇数 |
| ⑦ 双写 Joplin | 导入「知识库收藏/分类」+ 同步 | 本地 + Joplin 双份 |
| 汇报 | 告知位置/分类/路径/模式 | 不贴全文 |
主要功能:9 大分类(技术开发 / 投资理财 / 经验沉淀 / 人工智能 / 商业科技 / 灵感创意 / 产品设计 / 生活方式 / 读书笔记)、投资理财纪律、微信重复投递兜底、文件命名规范、分类超限合并、双写同步、说明模式两阶段。
后续计划
|--------------|--------------------------|--------------|------------------------------|
| 计划 | 说明 | 难度(1--5) | 当前状态 |
| 自动化个人图书馆 | 自动抓取、分类、上传、汇总图书等功能 | 2 | 规划中 |
| 邮件汇总 | 自动转发验证码、重要信息、发票到微信 | 1 | 规划中 |
| 本地虚拟 3D 人物投屏 | 与用户实时互动、关联本地 Agent、回答问题等 | --- | 观望中: 去过 WAIC,已有硬件方案但价格五位数,暂缓 |
如果大家有什么好的想法,欢迎留言交流。
5. 其他方面
比较重要的比如 soul.md 、定时备份机制、非高峰处理程序流程、定时skill清理优化、会话清理、skill定时更新机制 不再赘述,懂的都懂
写在最后
综上所述,在使用hermes中最重要的是skill,为此我在Code 库同步中,实现了skill的多端同步与备份,这个设计思路可以借鉴下。
从一台双核 NAS 起步,到影音、健身、代码、知识库逐渐「自运转」,Hermes 帮我把过去散落在各处的手写脚本,收拢成一个个可复用、可记忆、可调度的 skill,初步实现了自动化的个人终端助手。这条路还在继续,也欢迎有同样想法的朋友一起交流。



