一个会自我进化的 AI :Hermes Agent 部署教程|NAS+AI+微信Bot
Hermes Agent:
一款开源、可本地部署、自带持久记忆与工具调用的自主 AI 智能体,能自主执行任务并持续自我进化。它不是拴在 IDE 上的编程助手,也不是套了个聊天壳的单一 API 封装。它是一个自主 Agent,运行越久能力越强。

核心特性:
- • 闭环学习 —— Agent 自主管理的记忆,配合周期性提醒;自主创建技能、使用过程中自我优化;基于 FTS5 的跨会话召回结合 LLM 摘要;以及 Honcho 辩证式用户建模
- • 随处运行,不限于笔记本 —— 6 种终端后端:本地、Docker、SSH、Daytona、Singularity、Modal。Daytona 和 Modal 提供无服务器持久化 —— 空闲时环境休眠,几乎不产生费用
- • 在你常驻的地方待命 —— CLI、Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、邮件、短信、钉钉、飞书、企业微信、BlueBubbles、Home Assistant —— 一个网关覆盖 15+ 平台
- • 模型训练者打造 —— 由 Nous Research 创建,这家实验室打造了 Hermes、Nomos 和 Psyche。兼容 Nous Portal、OpenRouter、OpenAI 或任意端点
- • 定时自动化 —— 内置 cron,可向任意平台推送
- • 委派与并行 —— 生成隔离的 sub-agent 实现并行工作流。通过 execute_code 进行程序化工具调用,将多步流水线压缩为单次推理调用
- • 开放标准技能 —— 兼容 agentskills.io。技能可移植、可分享,通过 Skills Hub 由社区贡献
- • 完整的网页操控 —— 搜索、提取、浏览、视觉、图像生成、TTS
- • MCP 支持 —— 连接任意 MCP 服务器以扩展工具能力
- • 为研究而生 —— 批处理、轨迹导出、使用 Atropos 进行 RL 训练。由 Nous Research 打造 —— Hermes、Nomos 和 Psyche 模型的幕后实验室
安装
Hermes Agent 部署过程中坑比较多,下面提供的模版也只会在原版基础上微调不会大幅度修改,所以部分系统部署有可能会遇到问题,可以跳转到“问题&解决”内容参考修改。
Docker Compose
1 | services: |
为什么要同时部署两个容器:
同一个镜像包含两个功能,一个容器当核心服务用,一个容器当网页面板用,分别启动,实现功能分离、资源独立、互不影响更加稳定。
网络模式选择:
默认好像是用 bridge 的,但如果可以建议用 host。如果 AI 创建启动项目,需要用到其他端口,使用 host 就不用再映射其他端口号了。虽然这里设置了 host 模式,但是为了 NAS 系统 Docker 里有跳转连接,所以也将端口号写出来。
参数说明(更多参数建议去看文档)
:::
8642(端口):API 网关端口
9119(端口):Web 面板端口
/opt/data(路径):存放配置数据
GATEWAY_HEALTH_URL(环境变量):网关地址
:::
使用
浏览器中输入 http://NAS的IP:9119 就能看到界面

打开面板以后,先点击左下角切换为中文

如果提示网关未运行,可以点击“重启网关”按钮

点击之后就会重启了(不过不知道为什么一直转圈圈,直接刷新网页就好了)

TIP:虽然有 UI 面板可以图形化操作,不过我个人是建议使用 CLI 进行配置,因为一开始不清楚需要先设置什么。自带面板的我更多是作为辅助,比如查看会话,日志和简单的图形配置。
接下来,进入终端进行初始化配置,使用“/bin/bash”命令连接

TIP:这里有一个坑点,直接用 root 权限,会导致后面修改后的文件权限有问题,但是如果切换为 hermes 账号又不能正常启动命令,属于两头堵。所以后面设置以后,会遇到权限问题。(我看 GitHub 上也有人提这个问题,应该后面会修好吧)
Hermes 的核心命令:
1 | hermes — 交互式命令行,开启对话 |
开始配置,输入“hermes setup”,选择第一个快速设置就行

选择模型提供商,根据实际情况选择(我是买了 MinMax 的 29 元套餐,用起来还行)

输入平台的密钥(这里输入是看不到的,回车确认就行)

如果不是第三方平台,Base URL 默认回车确认就行

选择默认使用模型,自行选择就行

接下来就是配置消息平台

目前基本支持国内常见的消息平台,根据实际情况输入编号选择(选 14 微信官方机器人是最简单的)

如果不再选其他,回车就行

输入“Y”,使用手机扫码登录(注意别超时了)

TIP:下面设置的感觉没什么作用,毕竟目前微信机器人只能自己账号使用
私信授权方式:
1 | Use DM pairing approval (recommended)使用私聊配对验证(推荐) |
设置私信授权方式,为了方便测试我就都放开先(不折腾了,先试试行不行,之后没问题再来重新设置)

群聊权限默认禁用就行,避免在群里乱回复(有需要后面再来开启)

微信连接成功,输入“Y”,设置为主频道

配置完成就可以输入“Y”,重启网关(这时候机器人是还不能工作的)

下面输入“Y”,在终端界面聊天测试一下

进入会话界面,输入对话内容回车即可

TIP:这里我出现报错,因为之前密钥设置错了

可以在 UI 界面直接修改

在会话页面,可以看到前面在终端输入的聊天内容

重新连接,输入“hermes”进入交互式对话

回答前面熟悉对话界面,可以正常回复了

回到面板界面,应该能注意到当前网关状态已停止,需要重启一下网关

重启之后,有可能看到报权限有问题

用 SSH 工具连接,也可以看到改过的文件权限不一样了

遍历直接给 777 是不行的,需要重新设置用户组,参考下面命令
1 | chown -R 10000:10000 ./data |

重新启动容器和网关,之前提示权限问题没有了

也能看到微信机器人已经连接

找到微信机器人,就可以聊天了

下面简单看看面板其他页面,我就不一一介绍了
分析

日志

定时任务

技能

示例

配置

密钥

文档

问题&解决
Permission denied
容器不断重启,查看日志会提示 Permission denied。这是因为权限问题,映射路径大概率没有自动生成文件,就算生成了也有可能会因为手动修改配置出现这种情况。

最简单直接就是设置指定用户,参考添加 user: “root:root”(默认用户是 user: “10000:10000”)
1 | services: |
Command not found
使用终端连接进入,输入“hermes”启动交互式会话,会提示找不到

设置进入指定环境,环境变量设置 PATH ,参考下面(也可以手动输入“./setup-hermes.sh”,不过每次要重新创建不方便)
1 | services: |
No messaging platforms enabled
这个是允许访问的用户白名单,因为还没有设置对接机器人(Telegram / 钉钉 / 飞书),还不需要打开可以先忽略。

总结
Hermes Agent 是由 Nous Research 打造的一款具备闭环学习能力的开源自主 AI 智能体,它能通过持久记忆与工具调用实现自我进化。和龙虾最大区别就是可以自我进化,能自己总结 skill 而不是找各种 skill 作为“插件”武装起来。部署 Hermes 前前后后折腾了好几天了,要想真的跑起来真的有点难度,大部分都是项目开发者留下的坑。如果没有耐心好好研究,甚至稍微改动一点东西,都会因为各种权限问题导致容器不断重启。
目前 Hermes 特别火,但说实话还不成熟,虽然迭代速度也很快能解决,也是很折腾人的。但如果你想体验 AI 自主进化的未来感,或打造跨平台的数字分身,Hermes 依然值得一试。





