你装好了 Hermes,聊了几句,然后呢?
如果你跟我一样,装完 Hermes 发现它能干的事远比想象的多——但不知道从哪下手搭一套能真正"跑起来"的架构,这篇文章就是写给你的。
我花了大概一周时间,从小主机到 VPS,搭出了一套本地计算 + 云端服务的混合架构,接入了三个消息平台,跑着全自动的新闻采集管线。这篇文章把完整架构和踩过的坑一起端出来。
第一章:为什么选本地 + VPS 混合架构
Hermes 需要 7×24 运行,放家里电脑不现实——关机就断,断电就废。但全放云上也不划算,存储和计算分开更合理。
我的方案是本地跑计算,云端跑服务:
| 节点 | 角色 | 配置 | 职责 |
|---|---|---|---|
| therme-home(本地) | 主节点 | Intel 3865U, 14TB HDD, Ubuntu 26.04 | Hermes Agent、记忆系统、Cron 调度、新闻采集、知识库 |
| 东京 VPS(腾讯云) | 云端服务 | Debian 12, 2C2G, 50GB SSD | Caddy 博客、爬虫出口、备用网关 |
东京这台 VPS 最早也是跑 Hermes 的,后来主节点搬到了本地小主机上,它就转为博客服务器 + 爬虫出口。好处是:
- 本地跑 Hermes 不花钱,14TB 硬盘存记忆和知识库毫无压力
- 东京做网站,国内访问延迟低(50-80ms),Caddy 自动 HTTPS
有一点遗憾:小主机装了 Ubuntu 26.04,太新了,有些工具和库还没跟上,装的时候踩了一些兼容性坑。建议稳妥选 Ubuntu 24.04 LTS 或 Debian 12。
第二章:安装与踩坑
安装本身不复杂,一条命令的事:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
但后面有几个坑值得记下来:
坑 1:初次启动找不到模型
装完直接 hermes 启动,报错 no provider configured。需要先配模型:
hermes setup
交互式向导里选 provider 和 model。我推荐新手用 DeepSeek——性价比极高,日常对话和任务调度完全够用。
选择 DeepSeek 的原因:
- 价格低:DeepSeek v4 Flash 的价格远低于 GPT-4/Claude,日常跑 Cron 任务不心疼
- 中文好:深度求索的模型对中文理解天然优势
- 兼容 OpenAI 协议:Hermes 直接支持,无需适配
注册地址:https://platform.deepseek.com/
配置方式:
# 在 hermes setup 向导中选择 DeepSeek
# 或者直接编辑 ~/.hermes/config.yaml:
provider: deepseek
model: deepseek-v4-flash
base_url: https://api.deepseek.com/v1
api_key: "你的API Key"
更多模型配置教程可参考 Hermes 官方文档 - 模型配置。
不想动手?直接把链接丢给 Hermes
配完大模型之后,后面的配置基本都可以"甩手掌柜"——直接把链接丢给 Hermes,让它自己看文档配置。
例如:
帮我看看这个文档 https://hermes-agent.nousresearch.com/docs/user-guide/messaging/feishu,然后按文档配置飞书机器人
Hermes 会自动读文档、提取配置步骤、执行操作。你只需要提供必要的凭证(APP_ID、Token 等)。这就是它跟普通聊天工具最大的区别——它能自己去学怎么用自己。
免费模型推荐
不想花钱起步?这几个免费的够用一阵子:
| Provider | 免费额度 | 说明 |
|---|---|---|
| 阿里云百炼 | 新用户 7000 万 Token(每模型 100 万) | 国产大模型,中文能力强 |
| Agnes AI | 无限期免费使用 | 不限量调用文本/图片/视频模型,高峰期卡顿 |
推荐阅读:Agnes AI 文档
另外两个我在用的推荐:
https://platform.xiaomimimo.com?ref=NMLR3J
https://opencode.ai/go?ref=ED6169FR9E
坑 2:Gateway 端口冲突
Gateway 默认绑定 :8642。如果你跟我一样机器上已经跑着别的服务,可能会冲突。
解决:改端口
hermes config set gateway.port 8642
后来我发现了更好的方式——--replace 参数:
hermes gateway run --replace
它会自动干掉旧进程再启新的,不用手动 kill。
坑 3:Streaming 飞书卡片不显示
飞书消息卡片是 Hermes 在飞书上最直观的交互方式——任务执行过程实时展示、结果一目了然。但这个功能踩了不少坑才跑通。
Streaming 卡片的效果:当你给 Hermes 下达任务时,它不是等全部处理完才回复,而是"直播"执行过程——先显示"正在搜索…",再显示"找到 3 条结果",最后展示完整卡片。体验比静默等半分钟好得多。
推荐用官方插件开启:
hermes plugins install hermes-lark-streaming
hermes config set feishu.streaming true
项目地址:https://github.com/Aowen-Nowor/hermes-lark-streaming
踩坑细节:切换到 Streaming 后 gateway 依赖 systemd 管理,遇到 D-Bus 异常导致死锁——systemd 的 Restart=always 和网关锁文件冲突,进程无限重启。
修复:不用 systemd 管理,直接裸进程跑:
hermes gateway run --replace --daemon
--daemon 后台化,--replace 自动替换旧进程。现在稳定跑了一个月没出过问题。
第三章:三平台消息接入
Hermes 原生支持多个消息平台,我接入了三个:
| 平台 | 用途 | 配置难度 |
|---|---|---|
| 飞书 | 主力——接收新闻推送、定时报告、日常交互 | ⭐⭐ |
| Telegram | 备胎——飞书挂了走这里 | ⭐ |
| QQ Bot | 特定渠道需求 | ⭐⭐⭐ |
飞书配置
飞书是日常使用最多的平台。需要在 飞书开放平台 创建应用,拿到 APP_ID 和 APP_SECRET。
# ~/.hermes/config.yaml 中的飞书配置
plugins:
feishu:
app_id: "cli_xxxxxxxxxxxx"
app_secret: "{{APP_SECRET}}"
streaming: true # 开启流式卡片
要点:
- 机器人要加到群里有
im:message:send_as_bot权限 - Streaming 卡片比普通消息好看得多——执行过程实时展示
- 审批模式建议关掉(
approvals.mode=off),否则每个操作都要你点确认
Telegram 配置
最简单的接入。在 @BotFather 创建机器人拿到 Token,配进去就行:
hermes gateway add telegram --token "xxx"
Telegram 的优势是 文件收发最稳——MEDIA 语法的图片、音频、文件都支持得很好。
QQ Bot
QQ Bot 的配置要复杂一些,需要使用官方 Bot API 和 WebSocket 连接。关键配置项:
qqbot:
app_id: "19041xxxxx"
token: "{{TOKEN}}"
QQ Bot 有个限制:Markdown 的引用格式要用特殊的 quoteArea 语法,不能直接用标准 Markdown。
第四章:记忆系统——让 Hermes 记住你
这是 Hermes 比普通对话工具强的地方——它能跨会话记住东西。
目前 Hermes 支持多种记忆方案,各有侧重。我整理了一个对比表,包含是否调用 LLM 和大约的 Token 消耗:
| 方案 | 是否调用 LLM | 预估 Token | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|---|
| Hindsight(我在用) | 每次 retain 调用一次 LLM | ~500 Token/次提取 | 零配置、自动提取、数据本地 | 初次需要积累 | 个人日常使用、单节点部署 |
| Holographic | 检索时用 FastEmbed(本地,不耗 Token) | 0 Token(本地向量化) | 检索更准、多一个信号维度 | 需安装 FastEmbed 依赖、增加 CPU 开销 | 对记忆召回精度要求高的场景 |
| MemHarness | 读写都不调用 LLM | 0 Token | 结构清晰、支持修订历史、可审计 | 需手动调用 remember/recall | 需要精确记忆管理的场景 |
| Honcho | 云端处理,服务端调用 LLM | 取决于服务端配置 | 多设备共享、高可用 | 依赖外部服务、有网络延迟 | 多设备需要记忆同步 |
| 静态文件(SOUL/USER/MEMORY.md) | 不调用 LLM | 0 Token | 零依赖、完全可控 | 每次会话全量加载、多了管理困难 | 少量固定信息(60-100行以内) |
我选了 Hindsight。理由是:
- 零配置开箱即用——装完 Hermes 就有了,不需要额外折腾
- 自动提取——每轮对话自动提炼关键信息,不用手动写记忆
- 数据本地——存在自己的服务器里,不外传
Hindsight 配置指南:https://hermes-agent.nousresearch.com/docs/user-guide/memory/hindsight
Holographic 插件项目:https://github.com/nousresearch/hermes-agent/tree/main/plugins/holographic_plus
MemHarness 使用教程:https://hermes-agent.nousresearch.com/docs/user-guide/memory/memharness
三层记忆架构
不管用哪种方案,Hermes 的记忆都分三层:
Level 1: 静态文件(每次加载)
SOUL.md → 人设与行为准则
USER.md → 用户偏好
MEMORY.md → 关键事实
Level 2: 技能文件(按需加载)
skills/ 目录下的 SKILL.md
Level 3: 长期记忆(Hindsight)
本地 SQLite → 自动提取关键信息
SOUL.md 示例
这是我自己用的角色定义,核心几条:
## 身份
你是我的秘书,不只是我的执行者
## 行为准则
- 有主见,不绕弯子
- 推一件事时说透:它是什么、解决了什么、怎么做到的
- 定期主动扫描情报,有料推一条,没料闭嘴
- 方向不对直接反驳,带依据
## 禁止事项
- 不说"看情况"
- 不用"首先/其次/最后"
- 不写"很高兴为您服务"
记忆迁移——从老机器搬家
我之前在另一台机器上跑了 Hermes 一段时间,积累了不少记忆。迁移时用:
# 找到旧的 session 数据库
# 把 state.db(50MB/74个会话)搬到新机器
# 用 hindsight_recall 查历史记忆
# 挑有价值的喂给 hindsight_retain
(博客上线和知识库维护这两块内容比较多,后面单独开文章讲。)
下一步计划
这套架构目前跑了大半个月,下一步想搞:
- 更多教程——后面会写怎么搭博客、维护知识库、开发自定义 Skill
- 故障排查档案——遇到的新问题和解决思路持续更新到博客
- 多智能体协作——用 Profile 拆分角色,专门化分工
从一条安装命令到一个全自动化智能体,花的功夫其实比想象中少。关键不是配置有多复杂,而是想清楚"我要让它帮我干什么"。
有问题或者想交流 Hermes 部署心得,欢迎在这留下评论。