手把手教你安装「爱马仕龙虾」——Hermes Agent 完整部署指南

https://mdnice.com/writing/e10cc1bd944d44d7b0da30815a8ae404 

Hermes Agent,江湖人称「爱马仕龙虾」,是 Nous Research 出品、目前最受关注的开源自托管 AI Agent。本文带你从零开始,用 Docker Compose 把它跑起来,并接入 Telegram,打造一个 7×24 小时在线的私人 AI 助手。


一、Hermes Agent 是什么?

1.1 出身名门:Nous Research

Hermes Agent 由 Nous Research 打造。这家实验室并不是做产品起家的,而是正经的模型训练机构——Hermes 系列模型、Nomos、Psyche 都出自他们之手,Hermes 4 更是引入了混合推理和大规模合成数据生成能力。

Hermes Agent,就是这条模型血脉在「Agent 化」方向上的集大成之作。

1.2 核心定位:一个会「自我成长」的 Agent

大多数 AI 工具是用完即走——每次对话都要重新交代背景,工作流靠你手动维护,模型本身什么也不记得。

Hermes Agent 的设计哲学截然不同,它的 Slogan 是 **"The agent that grows with you"**——一个随你成长的 Agent。

它有一套完整的闭环学习机制

  • 持久记忆(Persistent Memory):通过 MEMORY.mdUSER.md 跨会话保存你的偏好、项目背景、工作习惯,下次打开不用再重头介绍自己。
  • 自动生成技能(Autonomous Skill Creation):完成复杂任务后,Agent 会主动把这套流程封装成可复用的 Skill,下次遇到类似任务直接调用,不用重新摸索。
  • 技能自我优化:已有的 Skill 在使用过程中会持续迭代改进,不是一次性的。
  • 跨会话检索(FTS5 Session Search):所有历史对话以 SQLite 存储,配合 LLM 摘要索引,能跨会话搜索「上次我怎么解决这个问题的」。
  • 用户建模(Honcho Dialectic User Modeling):持续构建对你这个人的深度模型,越用越懂你。

1.3 丰富的工具能力

Hermes Agent 内置 29 个工具集,包括:

工具类型具体能力
🌐 浏览器自动化点击、输入、滚动、截图,支持本地 Chrome/Chromium 或云端 Browserbase
💻 终端执行运行 Shell 命令,支持 6 种后端(本地、Docker、SSH、Daytona、Singularity、Modal)
📁 文件操作读写、搜索、打补丁
🔍 网页搜索与抓取支持 Firecrawl、Exa、Tavily、DuckDuckGo(免费)等多种后端
👁️ 视觉分析图片识别与分析
🎨 图像生成支持 FAL.ai 的 FLUX、GPT-Image 等 8 个模型
🔊 语音合成Edge TTS(免费)、ElevenLabs、OpenAI TTS、MiniMax 等
⏰ 定时任务自然语言描述 Cron 任务,结果推送到任意平台
📨 跨平台消息一个 Gateway 连通 15+ 平台:Telegram、Discord、Slack、WhatsApp、微信、钉钉、飞书……
🧠 子 Agent 委托隔离子进程并行执行任务,零上下文成本
📚 技能系统兼容 agentskills.io 开放标准,69 个官方技能,社区持续贡献
🔌 MCP 集成连接任意 MCP Server 扩展能力

1.4 模型无关,完全自托管

Hermes Agent 不锁定任何模型或云服务,支持:

  • Nous Portal(官方,附带 Tool Gateway 托管工具 API)
  • OpenRouter(200+ 模型)
  • OpenAI / Anthropic / Google
  • MiniMax、Kimi/Moonshot、z.ai/GLM、Xiaomi MiMo
  • 任何 OpenAI 兼容接口(包括本地 Ollama、LM Studio 等)

切换模型只需 hermes model,无需改任何代码。


二、Hermes Agent vs OpenClaw:到底有什么区别?

这是社区里最常被问到的问题。两者都是开源自托管 Personal Agent,都支持多平台 Messaging,都支持自定义模型,但设计哲学有本质差异。

值得一提的是:Hermes 官方提供了 hermes claw migrate 命令,可以一键从 OpenClaw 迁移配置、记忆、技能和 API Key,充分说明两者的定位交集有多深。

核心差异对比

维度Hermes AgentOpenClaw

核心哲学

自我成长的长驻 Agent,越用越强生态优先,人工管控,工作区原生

记忆系统

分层记忆架构(MEMORY.md + USER.md + SQLite 全文检索),跨会话学习有记忆功能,但机制相对简单

技能系统

自动从任务经验中生成并优化 Skill以人工编写 Skill 为主

学习闭环

内置完整闭环:记忆 → 技能生成 → 技能优化 → 用户建模无内置自动学习闭环

执行后端

6 种终端后端(含 Modal 无服务器持久化)相对单一

RL 训练框架

✅ 内置 Atropos RL 环境、批量轨迹生成与压缩导出,可直接用于模型训练❌ 无

研究属性

与模型训练深度绑定,支持 Atropos RL 轨迹生成侧重产品化和生态

适用场景

长期运行、自动化、复合研究任务需要精细人工控制、工作区集成

Claude 订阅套餐

✅ 支持(通过 Anthropic API 接入,兼容订阅额度)❌ 不再支持

一句话总结:如果你想要一个部署之后越来越懂你、能自己进化的 Agent,选 Hermes;如果你更看重精细人工控制和生态广度,OpenClaw 也是好选择。


三、为什么推荐用 Docker Compose 安装?

Hermes 官方提供了多种安装方式:一键脚本(支持 Linux/macOS/WSL2/Android Termux)、pip 安装、Docker。

那为什么我推荐 Docker Compose?

3.1 环境隔离,干净彻底

Hermes 依赖 Python 3、Node.js(浏览器自动化)、Playwright + Chromium,安装链比较长。Docker 把所有依赖打包在一个官方镜像里(基于 Debian 13.4),不污染宿主机环境,出问题随时销毁重建。

3.2 数据持久化有保障

所有用户数据(配置文件、API Key、会话历史、技能、记忆)都挂载在宿主机的 ~/.hermes/(或你自定义的目录)。镜像本身是无状态的——升级时直接 pull 新镜像,你的记忆和技能一点不丢。

3.3 一条命令管理全生命周期

docker compose up -d      # 后台启动
docker compose down       # 停止
docker compose logs -f    # 实时日志
docker compose pull       # 拉取最新镜像

比手动管理 systemd 服务、pip 版本、进程 PID 要省心得多。

3.4 自动重启,7×24 小时在线

加一行 restart: unless-stopped,宿主机重启或容器崩溃后会自动拉起,配合 Telegram Bot 就能实现真正的全天候 AI 助手。

3.5 资源限制更可控

可以在 compose 文件里直接限制内存和 CPU,防止浏览器自动化把 VPS 资源吃满。


四、安装前准备

硬件要求:

  • 不用浏览器自动化工具:1 GB 内存足够
  • 开启浏览器自动化(Playwright/Chromium):至少 2 GB,推荐 4 GB

软件要求:

  • Docker + Docker Compose(建议 Docker Desktop 或 docker compose v2)
  • 一个 LLM API Key(OpenRouter、OpenAI、Anthropic、MiniMax 等均可)

可选但推荐:

  • Telegram 账号,用于创建 Bot

五、实战安装:Docker Compose 完整流程

Step 1:创建项目目录和数据目录

cd ~/service
mkdir hermes
cd hermes
mkdir -p data/data
sudo chown -R 10000:10000 data

这里把项目放在 ~/service/hermes/ 下,数据目录统一放在 ./data/data,与 compose 文件同级,便于管理和备份。chown 是为了和容器内用户权限对齐,避免挂载卷时出现权限报错。

Step 2:编写 docker-compose.yml

~/service/hermes/ 下创建 docker-compose.yml

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes
    restart: unless-stopped
    command: gateway run
    ports:
      - "8642:8642"
    volumes:
      - ./data/data:/opt/data
    networks:
      - hermes-net
    # 如需直接传入 API Key,取消注释:
    # environment:
    #   - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    #   - OPENAI_API_KEY=${OPENAI_API_KEY}
    #   - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
    deploy:
      resources:
        limits:
          memory: 4G
          cpus: "2.0"

  dashboard:
    image: nousresearch/hermes-agent:latest
    container_name: hermes-dashboard
    restart: unless-stopped
    command: dashboard --host 0.0.0.0 --port 9119 --insecure --no-open
    ports:
      - "9119:9119"
    volumes:
      - ./data/data:/opt/data
    environment:
      - GATEWAY_HEALTH_URL=http://hermes:8642
    networks:
      - hermes-net
    depends_on:
      - hermes
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: "0.5"

networks:
  hermes-net:
    driver: bridge

几点说明:

  • hermes:核心 Gateway 进程,负责处理所有对话和工具调用,暴露 8642 端口
  • dashboard:Web 管理面板,端口 9119,通过 GATEWAY_HEALTH_URL 指向 Gateway 容器
  • 两个容器挂载同一个 ./data/data 数据卷,共享所有配置、记忆和技能
  • --insecure --no-open:Dashboard 以无鉴权模式启动,且不尝试在服务器端打开浏览器
  • 资源限制写在 deploy.resources.limits 里,Gateway 给 4G/2核,Dashboard 给 512M/0.5核

Step 3:启动容器

docker compose up -d

正常输出如下:

[+] up 3/3
 ✔ Network docker-hermes_hermes-net  Created
 ✔ Container hermes                  Created
 ✔ Container hermes-dashboard        Created

Step 4:进入容器运行配置向导

容器启动后,进入 hermes-dashboard 容器执行 Setup 向导:

docker exec -ti hermes-dashboard bash
# 进入容器后执行:
/opt/hermes/.venv/bin/python3 /opt/hermes/.venv/bin/hermes setup

┌─────────────────────────────────────────────────────────┐
│             ⚕ Hermes Agent Setup Wizard                │
├─────────────────────────────────────────────────────────┤
│  Let's configure your Hermes Agent installation.       │
│  Press Ctrl+C at any time to exit.                     │
└─────────────────────────────────────────────────────────┘

◆ Configuration Location
  Config file:  /opt/data/config.yaml
  Secrets file: /opt/data/.env
  Data folder:  /opt/data
  Install dir:  /opt/hermes

  You can edit these files directly or use 'hermes config edit'

接下来会进入一个交互式配置界面,下面是完整的配置过程详解。


六、配置向导详解

主要有两个配置需要注意,一个是选择模型,一个是消息接入方式。其他的配置,我选择的是默认。

6.1 配置推理模型(Inference Provider)

这是最重要的一步——选择驱动 Hermes 的大脑。

Hermes 支持所有主流提供商。我这里用的是一个 OpenAI 兼容的自定义接口(MiniMax),所以选择了「Custom OpenAI-compatible endpoint」:

API base URL: http://model.ai.yuxiaor.com/v1
API key: (留空或填入你的 key)

验证通过后,会列出该接口可用的模型,选择你想要的即可:

Available models:
  1. MiniMax-M2.7-highspeed
  2. MiniMax-M2.5-highspeed
  3. MiniMax-M2.1-highspeed
Select model [1-3]: 1

提示:如果你有 OpenRouter API Key,可以直接填入 OPENROUTER_API_KEY,一次解锁 200+ 模型,非常推荐。

6.2 为什么选 Telegram 作为 Agent 的「入口」?

[✓]  1. Telegram
  [ ]  2. Discord
  [ ]  3. Slack
  [ ]  4. Signal
  [ ]  5. Email
  [ ]  6. SMS (Twilio)
  [ ]  7. Matrix
  [ ]  8. Mattermost
  [ ]  9. WhatsApp
  [ ] 10. DingTalk
  [ ] 11. Feishu / Lark
  [ ] 12. WeCom (Enterprise WeChat)
  [ ] 13. WeCom Callback (Self-Built App)
  [ ] 14. Weixin (WeChat)
  [ ] 15. BlueBubbles (iMessage)
  [ ] 16. QQ Bot
  [ ] 17. Webhooks (GitHub, GitLab, etc.)

Hermes 支持 15+ 消息平台,为什么我首推 Telegram?

先说说 Telegram 这个平台本身。

Telegram 是一款以隐私和速度著称的即时通讯应用,目前月活超过 10 亿。它在技术圈之所以广受欢迎,除了端对端加密和无广告,最重要的原因是:它有一套极其开放和强大的 Bot API,允许开发者构建功能完整的自动化机器人,而且免费、无限制。

更关键的是,Telegram Bot 的聊天界面本身支持原生动态交互,这在其他 IM 里并不常见:

Inline Keyboard(内联键盘)

Bot 发出的每条消息,都可以在消息气泡正下方附加一排按钮——这就是 Inline Keyboard。和普通键盘不同,点击这些按钮不会向聊天框发送任何文字,而是静默触发后端逻辑,然后直接原地编辑那条消息的内容。

这意味着什么?一条消息可以变成一个活的交互组件,而不是一次性的文字输出。以 Hermes 为例:

  • 发送 /model 命令,Bot 立刻返回一条带按钮的消息,列出所有已配置的模型提供商(如 OpenAI (15)✓ Anthropic (12))。点击某个提供商,这条消息就地变成该提供商的模型列表,还有翻页的 Prev/Next 按钮。整个过程聊天记录里只有一条消息,没有任何噪音。

  • 当 Agent 要执行危险命令时(比如递归删除),不是让你打 yes 确认,而是直接弹出 [确认] [取消] 两个按钮供你点击,更直观也更安全。

  • 澄清提问(Clarify)时,Agent 会把几个可选方向做成按钮,你一键选择,不用手打回复。

这种「消息即界面」的设计,让 Telegram Bot 的体验远远超过普通聊天——它更接近一个嵌入消息流的轻量 App

其次,Telegram 的 Bot 能力在 Hermes 场景下几乎没有对手:

  • 全媒体支持:发语音消息,Hermes 自动转录成文字处理;发图片,Hermes 直接调用视觉分析;发文档或代码文件,Hermes 读取后执行任务——所有这些都在一个对话窗口里完成。
  • 跨设备无缝衔接:手机、平板、电脑都装 Telegram,随时随地切换设备继续和 Agent 对话,上下文不中断。
  • 群聊支持:在团队群里 @机器人,所有成员共享同一个 Agent,但各自保留独立的对话历史。
  • 定时任务推送:Cron 任务跑完,结果直接推送到你的 Telegram,不用盯着服务器日志。
  • 访问不受限:对于国内用户,Telegram 不依赖微信生态,不需要申请企业账号,个人即可创建 Bot,几分钟内上线。

相比之下,微信/企业微信 Bot 申请门槛高、审核慢、限制多;WhatsApp 国内访问需要代理;Discord 在移动端体验不如 Telegram 轻便。对个人开发者和技术用户而言,Telegram 是目前接入 AI Agent 最省力、体验最完整的选择。


具体配置步骤:

第一步:创建 Telegram Bot

  1. 打开 Telegram,搜索 @BotFather(Telegram 官方的 Bot 管理机器人)
  2. 发送 /newbot
  3. 按提示设置 Bot 的显示名称(如 我的 Hermes 助手)和用户名(必须以 bot 结尾,如 myhermes_bot
  4. BotFather 会返回一个形如 7xxxxxxxxx:AAxxxxxxxx 的 Token,复制保存好

第二步:获取你的 Telegram User ID

  1. 搜索 @userinfobot
  2. 发送任意消息
  3. 它会立即回复你的数字 ID(如 123456789),这是你在 Telegram 的唯一标识

第三步:在填写token和user id

◆ Telegram
  Create a bot via @BotFather on Telegram
Telegram bot token: 
✓ Telegram token saved

  🔒 Security: Restrict who can use your bot
     To find your Telegram user ID:
     1. Message @userinfobot on Telegram
     2. It will reply with your numeric ID (e.g., 123456789)

Allowed user IDs (comma-separated, leave empty for open access): 8610xxxxxx
✓ Telegram allowlist configured - only listed users can use the bot

  📬 Home Channel: where Hermes delivers cron job results,
     cross-platform messages, and notifications.
     For Telegram DMs, this is your user ID (same as above).
Use your user ID (8610196175) as the home channel? [Y/n]: y
✓ Telegram home channel set to 86xxxxxxxx

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Messaging platforms configured!

  Start the gateway to bring your bots online:
     hermes gateway run          # Run as container main process
  
  For automatic restarts, use a Docker restart policy:
     docker run --restart unless-stopped ...
     docker restart <container>  # Manual restart

提示 :配置好Telegram,之后,你发送消息可能没有反应,需要重启docker才生效。

安全提示:一定要设置白名单!Bot Token 一旦泄露,任何人都能通过你的 Bot 控制整个 Agent,包括执行命令、读取文件。如果 Token 泄露,立即在 BotFather 发送 /revoke 撤销。


七、启动!

配置完成后会引导你自动启动:

也可以重启完整的 Docker Compose 服务:

# 进入 compose 文件所在目录
cd ~/hermes

# 后台启动
docker compose up -d

# 查看日志,确认 Gateway 正常运行
docker compose logs -f hermes-gateway

看到类似这样的日志就说明成功了:

[gateway] Telegram bot connected: @你的BotName
[gateway] Ready. Listening for messages...

此时打开 Telegram,找到你的 Bot,发一条消息试试。🎉 也可以浏览器访问:

但是这个UI有点阅读不友好。


八、常用命令速查

进入容器交互式 CLI

docker exec -ti hermes-dashboard bash
# 进入容器后:
hermes          # 启动命令行对话
hermes doctor   # 诊断配置问题
hermes config   # 查看当前配置

修改配置

# 方式一:重新运行设置
docker exec -ti hermes-dashboard /opt/hermes/.venv/bin/python3 /opt/hermes/.venv/bin/hermes setup

# 方式二:直接编辑文件
vim ~/.hermes/config.yaml
vim ~/.hermes/.env

# 方式三:命令行设置
hermes config set <key> <value>

常用管理命令

hermes setup model           # 切换模型/提供商
hermes setup tools           # 管理工具集配置

十、小结

Hermes Agent 是目前开源自托管 Agent 中学习闭环设计最完整的一个。和 OpenClaw 相比,它更适合长期运行、想让 Agent 随时间越来越懂自己的用户。

用 Docker Compose 部署的好处是:环境隔离干净、数据持久安全、升级简单、运维成本低。轻松就能拥有一个真正属于自己、7×24 小时在线、越用越聪明的私人 AI 助手。

部署过程如果有任何问题,欢迎留言交流。Hermes 的官方文档也非常详细:

📖 hermes-agent.nousresearch.com/docs

🐙 github.com/NousResearch/hermes-agent