Hermes Agent 是由 Nous Research 开发的一款自进化 AI 编程助手,越用越懂你。本文覆盖从零安装到生产可用的完整流程。

Hermes Agent 是由 Nous Research 开发的一款自进化 AI 编程助手,最大的特点是「越用越懂你」——它能从对话中建立记忆、创建技能、记住你的偏好,在多次使用后逐步成为真正了解你的智能体。它可以运行在 5 美元的 VPS 上,也支持 Telegram、Discord 等平台随时接入。

本文覆盖从零安装到生产可用的完整流程,适合想认真用好这个工具的读者。

安装前的准备

系统要求

Hermes 支持以下环境:

  • Linux(主流发行版均可)
  • macOS
  • WSL2(Windows 用户)
  • Android / Termux(需要参考专门指南)

不支持原生 Windows,需先装 WSL2。

前置条件

  • Python 3.11 或更高版本
  • 网络连接(用于下载安装脚本和拉取模型)

可以用以下命令确认 Python 版本:

python3 --version

输出 Python 3.11.x 或更高即可。如果显示没有 python3,需要先通过系统包管理器安装。

一键安装

Hermes 提供了一个傻瓜式安装脚本,一行命令搞定所有事情。

运行安装脚本

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

⚠️ 校书核实有效:上述 URL 已通过 HTTP 200 验证(2026-04-16 校书确认),若后续失效可前往 GitHub 仓库 查看最新安装方式。

脚本会自动检测你的系统环境,安装依赖、配置路径、添加命令行工具。整个过程通常不超过两分钟。

安装完成后,需要重新加载 shell 环境才能识别新装的命令:

source ~/.bashrc   # 如果你用的是 bash
source ~/.zshrc    # 如果你用的是 zsh

验证安装

hermes --version

输出版本号说明安装成功。如果提示找不到命令,先确认刚才的 source 命令执行过,然后重新打开终端窗口再试。

初始配置:选择模型提供商

安装完成后,下一步是告诉 Hermes 你想用哪个大模型。运行配置向导:

hermes setup

这个向导会一步步引导你完成所有核心配置。如果只想先设置模型,可以用:

hermes model

主要模型提供商一览

提供商说明配置难度
Nous Portal订阅制,零配置,OAuth 登录⭐ 最简单
OpenRouter汇聚 200+ 模型,按量付费⭐ 简单
Anthropic (Claude)直连 Claude,需要 API Key⭐⭐ 简单
OpenAICodex / GPT 系列⭐⭐ 简单
MiniMax国际版 / 国内版均有⭐⭐ 简单
阿里云百炼 (DashScope)Qwen 系列⭐⭐ 简单
自定义端点Ollama、vLLM、SGLang 等⭐⭐⭐ 需了解
Kimi / Moonshot国内用户常用⭐⭐ 简单

务必要注意:Hermes 要求模型上下文窗口至少 64K tokens。上下文太小的模型会在启动时被拒绝。如果用 Ollama 等本地模型,需要确保启动了足够大的上下文窗口(比如 ollama run qwen:32b -c 65536)。

以 OpenRouter 为例配置

hermes model
# 选择 OpenRouter
# 输入你的 OpenRouter API Key(从 https://openrouter.ai/keys 获取)
# 选择具体模型,比如 google/gemini-3-flash(性价比高)

配置完成后,API Key 会自动保存到 ~/.hermes/.env,不会出现在配置文件中。

启动你的第一次对话

配置好模型之后,直接运行:

hermes

小提示hermeshermes chat 的别名,两者完全等价,均可使用。

你会看到欢迎横幅,上面显示当前使用的模型、已启用的工具和技能列表。然后就可以开始聊天了。

可以试着问它:

「帮我看看当前目录的磁盘占用情况」

它会调用终端命令执行并返回结果。

几个实用操作

多行输入:按 Alt+EnterCtrl+J 换行,适合粘贴代码或写长 prompt。

中断任务:如果它在处理一个耗时较长的任务,直接输入新消息按回车即可中断切换。Ctrl+C 同样有效。

保存对话:输入 /save 可以保存当前会话,便于之后回顾。

查看所有命令:输入 /help 列出所有可用命令。

配置消息网关:从 Telegram 和 Discord 接入

Hermes 最实用的功能之一是消息网关——你可以从手机上的 Telegram 或 Discord 向它发消息,它在云端运行并回复,不依赖你的电脑一直开着。

运行网关设置向导

hermes gateway setup

按提示选择平台(Telegram / Discord / Slack / WhatsApp / Signal / Email / Home Assistant),填入对应的 Bot Token 或应用凭证即可。

以 Telegram 为例,你需要:

  1. 在 Telegram 通过 @BotFather 创建一个 Bot,获得 BOT_TOKEN
  2. hermes gateway setup 中选择 Telegram 并粘贴 Token
  3. 设置允许接收消息的用户 ID(白名单)

完成后,启动网关:

hermes gateway start

现在在 Telegram 给你的 Bot 发消息,它会像在终端一样响应。

WSL 用户注意:在 WSL 环境下推荐使用 hermes gateway run(前台运行)而非 hermes gateway start,因为 WSL 的 systemd 支持不够稳定。建议配合 tmux 使用:

这样即使关闭终端,Gateway 也能持续运行。

定时任务:用自然语言安排自动化

一个实用的例子:每天早上九点抓取 Hacker News AI 新闻摘要发到 Telegram。

在对话中直接说:

「Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.」

Hermes 会自动创建对应的 cron 任务,之后每天准时推送。

终端后端配置:本地、Docker 还是远程

默认情况下,Hermes 在你的本地机器上执行命令。如果你想增强隔离性或者使用远程服务器,可以配置不同的终端后端。

查看当前后端

hermes config

切换到 Docker 后端(推荐安全场景)

hermes config set terminal.backend docker
hermes config set docker_image "nikolaik/python-nodejs:python3.11-nodejs20"

Docker 后端会启动一个加固容器来执行命令——文件系统隔离、网络受限、不允许特权提升。适合让 Hermes 操作不受信任的代码或执行删除等高危操作。

容器资源限制(完整参数):

# ~/.hermes/config.yaml
terminal:
  backend: docker
  docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
  
  # 资源限制
  container_cpu: 1          # CPU 核心数(默认 1,0=不限制)
  container_memory: 5120     # 内存上限 MB(默认 5GB,0=不限制)
  container_disk: 51200     # 磁盘上限 MB(默认 50GB)
  container_persistent: true  # 文件系统持久化(默认开启)

安全加固措施(默认全部启用,无需额外配置):

  • 根文件系统只读(无法修改系统文件)
  • 所有 Linux capabilities 全部移除(--cap-drop ALL
  • 禁止特权提升(no-new-privileges
  • PID 进程数限制(最多 256 个进程)
  • 完整命名空间隔离
  • 临时文件目录容量限制(/tmp 512MB、/var/tmp 256MB)

目录挂载(按需配置):

hermes config set docker_volumes '["/home/user/projects:/workspace/projects"]'

可以将本地目录映射进容器,实现「容器内操作、本地查看」的工作流。冒号后加 :ro 表示只读挂载。

安全提醒:通过 docker_forward_env 传入容器的环境变量(如 GitHub Token、NPM Token)对容器内命令可见。只_forward 那些你愿意让容器 session 看到的凭证。

切换到 SSH 后端(远程开发)

如果你的开发环境在远程服务器上:

hermes config set terminal.backend ssh
export TERMINAL_SSH_HOST=your-server.com
export TERMINAL_SSH_USER=ubuntu

SSH 后端通过 ControlMaster 复用连接,每次命令执行不会重新建立连接,体验流畅。

其他后端

  • modal:云端临时 VM,按使用计费,闲置几乎不收费
  • daytona:托管式云开发环境,支持停止/恢复
  • singularity:HPC 集群专用,Docker 不可用时的选择

技能系统:让 Hermes 自己学会新能力

Hermes 有一个独特的技能系统——它不只调用预设工具,还能在使用过程中自己创建技能。

安装现成技能

hermes skills search react
hermes skills install skills-sh/vercel-labs/json-render/json-render-react

也可以在对话中直接说「搜索并安装一个 Kubernetes 技能」,它会帮你完成。

技能来源

  • Skills Hub(agentskills.io):社区技能市场
  • ClawHub(clawhub.ai):OpenClaw 生态的技能库
  • 任意 URL:支持从文档网站自动发现技能

技能自进化

这是 Hermes 和其他编程助手最大的不同。它会在完成复杂任务后自动反思:「这个问题下次可以用一个技能来解决」,然后创建出来。随着使用时间增长,它会积累越来越多针对你个人工作流程的专属技能。

记忆系统:跨会话记住你的偏好

Hermes 有几层记忆:

  • 会话记忆:当前对话的上下文,自动管理
  • 长期记忆:存储在 ~/.hermes/memories/ 目录下的 MEMORY.mdUSER.md,跨会话保留
  • 用户画像:由 Honcho 驱动的 dialectic 用户建模,会逐步建立对你的了解

每次对话结束时,Hermes 会自动决定是否将重要信息写入长期记忆。你也可以手动触发:

「记住我习惯用中文交流」

从 OpenClaw 迁移过来

如果你已经在用 OpenClaw,Hermes 提供了一键迁移工具:

hermes claw migrate

这个命令会导入:

  • SOUL.md(人格配置)
  • 记忆文件(MEMORY.md、USER.md)
  • 自定义技能
  • 消息平台配置和 API Keys
  • TTS 音频文件

如果你想先看看会迁移什么内容(不实际执行):

hermes claw migrate --dry-run

密钥与安全提示

在使用 Hermes 的过程中,你会接触到多个 API Key 和 Token,以下几点值得特别注意:

不要把密钥写在命令里

错误做法

hermes config set OPENROUTER_API_KEY sk-or-v1-xxxxx  # 密钥会在 shell 历史中暴露
export ANTHROPIC_API_KEY=sk-ant-xxxxx

正确做法

# 通过交互式命令输入(不会记录到历史)
hermes auth add openrouter --api-key

# 或者直接编辑 .env 文件
hermes config edit   # 打开配置编辑器,手动填入 .env 中的密钥

敏感文件不要提交到 Git

~/.hermes/ 目录包含你的密钥和记忆文件,如果你是开源项目作者或者在团队环境中使用 Hermes,务必检查 .gitignore 是否包含以下内容:

# ~/.hermes/.gitignore 参考
.env
auth.json
*.log
sessions/
memories/

如果你的项目根目录有 Git 仓库,在项目级别也加一份排除规则。

Docker 容器中的凭证

使用 Docker 后端时,通过 docker_forward_env 传入的任何环境变量对容器内命令可见。如果容器被攻击者访问,这些变量也会暴露。请仅_forward 必要且可接受暴露的凭证。

最小权限原则

创建用于 Hermes 的 API Key 时,尽量选择只授权必要权限的密钥。例如只读权限的 GitHub Token、限定 IP 范围的 API Key 等,减少密钥泄露后的影响面。

卸载与重装

卸载 Hermes

如果想完全清除:

hermes uninstall

这会移除 Hermes 二进制文件和命令行工具,但不会删除 ~/.hermes/ 目录(包含你的配置、记忆和技能)。如需彻底清除:

rm -rf ~/.hermes

⚠️ 执行前请确认已备份重要数据,尤其是 memories/ 目录下的记忆文件。

重装

重装流程与全新安装完全相同:

# 1. 卸载旧版本
hermes uninstall

# 2. 重新运行安装脚本
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc

# 3. 恢复配置(如果你备份了 ~/.hermes 目录)
# 将之前备份的 ~/.hermes 恢复到原位置
# Hermes 会自动识别现有配置,无需重新 setup

如果重装后想保留原有记忆和技能但重置配置:

# 进入 Hermes 目录,手动删除需要重置的部分
rm ~/.hermes/config.yaml    # 重置配置,保留记忆和技能
rm ~/.hermes/.env          # 清除 API Keys,需要重新配置

常见问题排查

启动时报错「context window too small」

模型上下文窗口不足 64K。切换到更大上下文的模型,或者检查 Ollama 等本地模型的启动参数是否设置了足够大的 -c 值。

终端命令没有执行

hermes doctor

这个诊断命令会检查 Docker 是否在运行、SSH 配置是否完整、各个 API Key 是否有效。按输出逐项修复即可。

想更新到最新版本

hermes update

写在最后

Hermes Agent 不是一个「装好就能完全上手」的工具——它的价值在于持续使用。随着对话积累,它会越来越懂你的工作方式、代码风格和偏好。建议先从日常的小问题开始用起,慢慢把更大块的任务交给它,让它的记忆和技能库一起成长。

如果遇到问题,官方文档(hermes-agent.nousresearch.com/docs)有更详细的各模块说明,也欢迎在 GitHub Issues 或 Discord 社区提问。