Hermes Agent 是 Nous Research 开源的通用 AI Agent。它不只在聊天框里回答问题,还可以读取文件、运行终端命令、搜索网页、调用浏览器、管理定时任务,并把反复使用的流程保存成 Skills。它既能作为 macOS、Windows 上的桌面应用使用,也能常驻在 NAS 或 Linux 服务器上,再通过 Telegram、Discord、Slack 等平台远程对话。
这篇教程按“先让一次本地对话正常工作,再增加常驻服务和远程入口”的顺序来写。内容覆盖:
- macOS 桌面版与 CLI 安装
- Windows 原生安装与 WSL2 选择
- NAS 上的 Docker Compose 常驻部署
- 模型、工具、Skills 和消息网关的基础用法
- 验证、升级、备份、安全和常见故障
本文依据 2026 年 7 月 25 日的 Hermes Agent 官方文档 整理。项目更新较快,安装前建议顺手打开官方安装页核对一次命令。
先选适合你的安装方式
| 使用场景 | 推荐方式 | 适合谁 |
|---|---|---|
| Mac 日常使用 | Hermes Desktop | 想要图形界面、文件拖放和会话管理 |
| Windows 日常使用 | Hermes Desktop | 希望原生安装、少折腾环境 |
| 只想在终端里用 | 官方 Shell / PowerShell 安装器 | 开发者、CLI 重度用户 |
| Windows 上偏好 Linux 环境 | WSL2 + Linux 安装器 | 已经在 WSL2 中开发的人 |
| 需要 24 小时在线 | NAS / Linux + Docker | 希望通过 Telegram 等平台随时调用 |
| 桌面控制 NAS 上的 Agent | Desktop + NAS 远程后端 | 本地只装界面,任务在 NAS 执行 |
官方当前的 Tier 1 支持包括 Apple Silicon macOS、Windows 10/11、Linux/WSL2,以及 x86_64、aarch64 的 Docker 容器。Intel Mac、Homebrew 安装和 PyPI 安装不在官方支持范围内,因此本文不使用 brew install 或 pip install hermes-agent。
开始前要准备什么
桌面电脑
- 能正常访问 Hermes 官方站和所选模型提供商
- 至少准备一种模型登录方式或 API Key
- macOS CLI 安装需要 Git;没有时运行
xcode-select --install - Windows 原生安装建议使用 Windows 10/11 和新版 PowerShell
官方安装器会处理 Python、uv、Node.js、ripgrep 和 ffmpeg 等依赖,不需要提前手动拼环境。
NAS
- x86_64 或 ARM64 NAS
- Docker Engine 与 Docker Compose v2
- 可以通过 SSH 执行命令,或有等价的 Compose 项目管理界面
- 一个长期保存的目录,例如
/volume1/docker/hermes - 至少约 1 GB 可用内存,推荐 2–4 GB;需要浏览器工具时至少准备 2 GB
- Telegram、Discord 等消息平台是可选入口;只使用 Dashboard 或 Desktop 远程连接也可以
WARNINGHermes 可以读写文件并执行命令。第一次使用不要直接给它挂载整个 NAS 根目录,也不要把 Docker Socket 挂进容器。先只持久化
/opt/data,等确实需要访问某个工作目录时,再按最小权限单独添加只读或读写挂载。
在 macOS 安装
方式一:Hermes Desktop(推荐)
- 打开 Hermes Agent 官网。
- 下载 macOS 安装器并完成安装。
- 首次启动后,根据向导选择模型提供商。
- 如果只想先看界面,也可以选择稍后配置 Provider。
Desktop 和 CLI 共用同一套配置、会话、Skills 与记忆。装好桌面版后,终端里同样可以运行:
hermes desktophermes doctorhermes doctor 没有报告阻断性错误,就说明核心环境已经可用。
方式二:只安装 CLI
先确认当前是 Apple Silicon:
uname -m官方 Tier 1 目标应显示 arm64。然后执行官方安装器:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash安装完成后重新载入 Shell:
source ~/.zshrchermes doctor如果提示 hermes: command not found,先关闭并重新打开终端;仍不生效时检查 ~/.local/bin 是否已经加入 PATH。
在 Windows 安装
方式一:Hermes Desktop(推荐)
从 Hermes Agent 官网 下载 Windows 安装器,按向导完成安装。它会同时准备桌面应用和 Hermes 运行时,适合大多数 Windows 10/11 用户。
首次启动建议先完成一次普通对话,不要一上来就配置网关、MCP、Cron 和很多 Skills。基础模型能稳定回复后,再逐层增加功能,排错会简单很多。
方式二:PowerShell 原生安装
打开 PowerShell,执行官方命令:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)安装完成后新开一个 PowerShell 窗口,验证:
hermes doctorhermes --tuiWindows Terminal 会截获部分按键。原生 Windows 下需要多行输入时,优先使用 Ctrl+Enter,不要依赖 Alt+Enter。
方式三:WSL2
如果日常开发已经在 Ubuntu / WSL2 中进行,可以先在管理员 PowerShell 安装 WSL2:
wsl --install -d Ubuntu重启并进入 Ubuntu 后,按 Linux 路径安装:
sudo apt updatesudo apt install -y git curl xz-utilscurl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashsource ~/.bashrchermes doctor不要把 Windows 原生安装和 WSL2 安装的配置目录混为一谈:它们是两个独立环境。选一个作为主要运行环境,能减少路径和凭据重复配置。
如果准备让 Gateway 在关闭 WSL 终端后继续运行,先在 WSL2 中启用 systemd:
sudo tee /etc/wsl.conf >/dev/null <<'EOF'[boot]systemd=trueEOF随后在 Windows PowerShell 执行 wsl --shutdown,重新进入 Ubuntu,再运行 hermes gateway setup 安装 systemd 用户服务。还要注意:没有进程使用时,WSL2 虚拟机本身可能停止;需要全天候在线时,应按官方 WSL2 指南通过 Windows 任务计划程序在登录时启动并保持 WSL 实例,或者改用 NAS / Linux 主机常驻。
完成第一次模型配置
安装好以后,最省事的路径是 Nous Portal:
hermes setup --portal它会通过 OAuth 登录并配置模型与 Tool Gateway。也可以运行交互式模型选择器,接入 OpenAI Codex、Anthropic、OpenRouter、Gemini、DeepSeek、Kimi、Qwen 或自建 OpenAI 兼容端点:
hermes model如果使用本地模型或自建 API,模型上下文至少要有 64K tokens。上下文太小会让多轮工具调用很快丢失工作状态,Hermes 也可能直接拒绝启动。
Hermes 的数据根目录因运行环境而异:
| 运行环境 | 数据根目录 |
|---|---|
| macOS、Linux、WSL2 | ~/.hermes |
| Windows 原生 Desktop / CLI | %LOCALAPPDATA%\hermes |
Windows Desktop 与原生 CLI 共用 %LOCALAPPDATA%\hermes;WSL2 则使用 Linux 内部的 ~/.hermes。根目录中的主要内容如下:
| 相对路径 | 保存内容 |
|---|---|
config.yaml | 模型、工具、终端后端等普通配置 |
.env | API Key、Token 和其他秘密 |
state.db | 会话数据库与搜索索引 |
skills/ | 已安装或自己创建的 Skills |
memories/ | 持久记忆 |
WARNING不要把数据根目录中的
.env提交到 Git,也不要把完整 API Key 粘贴进聊天记录。优先通过hermes model、hermes auth或 Setup 向导录入凭据。
跑通第一次对话
启动现代 TUI:
hermes --tui第一次不要用模糊任务,给一个容易核验的请求,例如:
检查当前目录,列出主要文件,并用 5 条说明这个项目是做什么的;不要修改文件。
成功标准是:
- 欢迎页显示了你选择的模型和 Provider
- 能正常返回文本,而不是认证或模型错误
- 在需要时能调用文件或终端工具
- 连续追问一两轮仍能保持上下文
再测试会话恢复:
hermes --continue如果可以回到刚才的会话,基础安装就完成了。
常用命令速查
| 命令 | 用途 |
|---|---|
hermes | 启动经典 CLI |
hermes --tui | 启动现代终端界面 |
hermes desktop | 启动桌面应用 |
hermes model | 选择模型和 Provider |
hermes doctor | 检查依赖和配置 |
hermes tools | 启用或关闭工具集 |
hermes skills browse | 浏览 Skills |
hermes gateway setup | 配置 Telegram 等消息平台 |
hermes gateway status | 查看网关状态 |
hermes sessions list | 查看历史会话 |
hermes --continue | 恢复最近会话 |
hermes update | 更新非 Docker 安装 |
会话中输入 / 可以查看 Slash 命令。常用的有 /help、/model、/tools、/new、/compress 和 /stop。
在 NAS 上用 Docker Compose 安装
NAS 的目标和桌面不同:它需要在重启后自动恢复、配置长期持久化,并且不能把管理界面裸露到公网。下面的示例使用官方镜像 nousresearch/hermes-agent:latest,只暴露带认证的 Dashboard 端口,不开放 OpenAI 兼容 API。
1. 创建目录
SSH 登录 NAS:
mkdir -p ~/docker/hermes/datacd ~/docker/hermes群晖、QNAP、极空间等系统可以把目录换成自己的存储路径,例如 /volume1/docker/hermes。后续所有命令都在这个目录执行。
记录当前用户 UID 和 GID:
id -uid -g2. 生成 Compose 环境文件
下面会自动生成随机 Dashboard 密码和会话签名密钥:
umask 077printf 'HERMES_UID=%s\n' "$(id -u)" > .envprintf 'HERMES_GID=%s\n' "$(id -g)" >> .envprintf 'DASHBOARD_USER=hermes\n' >> .envprintf 'DASHBOARD_PASSWORD=%s\n' "$(openssl rand -hex 24)" >> .envprintf 'DASHBOARD_SECRET=%s\n' "$(openssl rand -hex 32)" >> .envchmod 600 .env把 .env 的密码保存到密码管理器。DASHBOARD_SECRET 必须长期保持不变,否则容器重启后已有登录会话会失效。
3. 创建 compose.yml
services: hermes: image: nousresearch/hermes-agent:latest container_name: hermes restart: unless-stopped shm_size: "1gb" volumes: - ./data:/opt/data environment: HERMES_UID: ${HERMES_UID} HERMES_GID: ${HERMES_GID} HERMES_DASHBOARD: "1" HERMES_DASHBOARD_HOST: "0.0.0.0" HERMES_DASHBOARD_PORT: "9119" HERMES_DASHBOARD_BASIC_AUTH_USERNAME: ${DASHBOARD_USER} HERMES_DASHBOARD_BASIC_AUTH_PASSWORD: ${DASHBOARD_PASSWORD} HERMES_DASHBOARD_BASIC_AUTH_SECRET: ${DASHBOARD_SECRET} ports: - "9119:9119" command: ["gateway", "run"]这个部署只持久化 ./data,容器内对应 /opt/data。配置、秘密、会话、Skills、记忆、Cron 和日志都保存在这里;镜像可以随时替换。
WARNING不要为了“让 Hermes 管理容器”而挂载
/var/run/docker.sock。Docker Socket 等同于宿主机 root 权限。确有容器管理需求时,优先使用受限 SSH 账户、最小化 sudo 规则或专门的远程管理接口。
4. 首次初始化
先验证 Compose:
docker compose config --quietdocker compose pull运行一次交互式 Setup:
docker compose run --rm --no-deps hermes setup在向导里先完成模型配置,并按需要增加远程入口:
- 必须配置一个能正常对话的模型 Provider
- 可选配置 Telegram、Discord 等消息平台,或稍后运行
hermes gateway setup
Setup 写入的是 ./data,临时容器退出后配置不会丢失。
5. 启动并验证
docker compose up -ddocker compose psdocker compose logs --tail=100 hermes再运行健康检查:
docker compose exec hermes hermes doctor局域网浏览器打开:
http://NAS_IP:9119页面应该先进入登录界面。用户名是 .env 里的 DASHBOARD_USER,密码是 DASHBOARD_PASSWORD。
检查认证是否生效:
curl -s http://127.0.0.1:9119/api/status返回结果里的 auth_required 应为 true,认证提供商应包含 basic。如果页面无需登录就能看到管理内容,应立即停止对外访问并检查环境变量是否被 Compose 正确加载。
6. 让桌面应用连接 NAS(可选)
在 Mac 或 Windows 的 Hermes Desktop 中进入:
Settings → Gateway → Remote gateway在可信局域网或 VPN 内填写:
http://NAS_IP:9119然后点击 Sign in,输入 Compose 项目根目录 .env 中的用户名和密码,保存并重连。这样桌面端只是操作界面,模型调用、工具执行、会话和 Skills 都保留在 NAS 上。这里的 9119 是 Dashboard / Desktop 远程后端端口,不是 8642 的 OpenAI 兼容 API 端口。
WARNINGDashboard 能读取 API Key、修改配置并执行 Agent 任务。用户名密码方案只适合可信局域网或 VPN,不应直接暴露在公网。需要公网访问时,应使用可信 HTTPS 反向代理,并按官方文档配置 Nous Portal OAuth 或自建 OIDC;不要依赖一个裸露的 HTTP 端口。
配置消息网关
基础聊天正常后再运行:
hermes gateway setupDocker 部署则执行:
docker compose exec hermes hermes gateway setup向导可以配置 Telegram、Discord、Slack、WhatsApp 等平台。完成后检查:
hermes gateway status在 NAS 上:
docker compose exec hermes hermes gateway status不要只看容器是否 Up。真正的成功标准是:从目标聊天平台发送一条消息,Hermes 能收到、调用模型并把回复送回来。
工具与 Skills 怎么用
工具决定 Hermes 能做什么,Skills 决定它遇到特定任务时采用什么流程。
管理工具
hermes toolshermes tools list首次使用建议只打开确实需要的工具。启用高权限工具后,重新开始会话让配置生效。
浏览和安装 Skills
hermes skills browsehermes skills search dockerhermes skills listSkills 不只是 Prompt 收藏夹。一个 Skill 可以包含步骤、命令、模板、脚本和参考资料,让 Agent 在发布博客、管理 GitHub PR、分析数据等重复任务中遵循固定流程。
更新、备份与恢复
macOS / Windows / Linux 安装
Windows 原生环境更新前,应先退出 Desktop、关闭其他 Hermes CLI 会话并停止 Gateway,避免可执行文件或 .pyd 被占用;macOS 和 Linux 也建议先结束正在运行的 Hermes 任务。
hermes updatehermes doctorDesktop 也会在后台检查更新,并提供一键升级。
Docker / NAS 安装
Docker 版不使用 hermes update。应先把 compose.yml、Compose 项目根目录 .env 和整个 data/ 作为同一个部署单元备份,再拉取新镜像:
cd ~/docker/hermesumask 077docker compose stopcd ..BACKUP="hermes-backup-$(date +%Y%m%d-%H%M%S).tar.gz"tar -czf "$BACKUP" hermes/compose.yml hermes/.env hermes/datachmod 600 "$BACKUP"cd hermesdocker compose pulldocker compose up -ddocker compose psdocker compose logs --tail=100 hermes这里有两个不同的秘密文件:项目根目录 .env 保存 Compose、Dashboard 与 UID/GID 参数;data/.env 对应容器内 Hermes 的 Provider Key 和 Token。二者都必须纳入备份。归档文件包含 API Key、OAuth Token、Dashboard 密码和会话,应限制权限,最好加密后再复制到另一块磁盘或另一台设备;只放在同一存储池不能防范磁盘故障。
需要恢复时,先停掉当前部署并保留故障现场,再解压完整归档:
cd ~/docker/hermesdocker compose downcd ..mv hermes "hermes.failed-$(date +%Y%m%d-%H%M%S)"tar -xzf hermes-backup-YYYYMMDD-HHMMSS.tar.gzcd hermeschmod 600 .envchown -R "$(id -u):$(id -g)" datadocker compose config --quietdocker compose up -ddocker compose pscurl -s http://127.0.0.1:9119/api/status如果 chown 提示权限不足,在确认目录路径无误后使用 sudo chown。恢复后应确认 Dashboard 仍要求登录、模型可正常回复,并从真实 Telegram / Discord 消息验证 Gateway,而不是只看容器状态。
常见故障
hermes: command not found
重新打开终端,或载入 Shell 配置:
source ~/.bashrc# macOS 常见为:source ~/.zshrc仍有问题时检查 ~/.local/bin 是否在 PATH。
安装完成,但模型不回复
按这个顺序检查:
hermes doctorhermes modelhermes --tui常见原因是 OAuth 过期、API Key 错误、模型名称不匹配,或自建模型上下文小于 64K。先修好普通对话,再排查网关和工具。
NAS 容器反复重启
docker compose ps -adocker compose logs --tail=200 hermes重点检查:
./data是否可写.env中 UID / GID 是否正确- YAML 缩进和变量名是否正确
- NAS 架构是否有对应镜像
- 磁盘空间是否充足
不要先删除 data 目录重装。它是唯一持久数据源,排错时应先备份并保留。
Dashboard 打不开或无法登录
先在 NAS 本机验证:
curl -s http://127.0.0.1:9119/api/statusdocker compose logs --tail=100 hermes- 本机也不通:检查容器和 Dashboard 进程
- 本机可达、其他设备不通:检查端口映射和 NAS 防火墙
- 返回 401:核对用户名密码
- 每次重启都掉登录:确认
HERMES_DASHBOARD_BASIC_AUTH_SECRET没有变化
消息平台没有回复
hermes gateway status然后检查对应平台的 Bot Token、允许用户列表和权限。容器运行中不等于平台已经连接成功,最终要以真实消息往返为准。
一套稳妥的使用顺序
- 安装 Desktop 或 CLI
- 用
hermes model配好一个 Provider - 用
hermes --tui跑通普通对话 - 用
hermes --continue验证会话恢复 - 再按需要启用工具和 Skills
- 最后配置 Gateway、Cron、远程 Dashboard
- 在 NAS 上定期备份 Compose 配置、项目
.env和整个/opt/data对应目录,并保留异盘副本
Hermes 的功能很多,但第一次安装不需要全部打开。先建立一个可验证、可恢复、权限清楚的最小环境,再逐层增加自动化,长期维护会轻松得多。