Hermes Agent 从零开始使用指南

Hermes Agent 从零开始使用指南

作者: CaoZH
版本: 2026-05-29
适用平台: Linux / macOS / WSL2


一、什么是 Hermes Agent?

Hermes Agent 是由 Nous Research 开发的开源 AI 智能体框架。它不仅仅是一个聊天机器人,而是一个能够自主执行任务的 AI 助手——可以在终端执行命令、编写代码、管理文件、搜索网页、发送消息,并且能记住你和它的每次对话。

与其他 AI 工具的区别

对比 Hermes Agent Claude Code ChatGPT
开源 ✅ 完全开源 ❌ 闭源 ❌ 闭源
本地运行 ✅ 可在自己服务器运行 ❌ 云端 ❌ 云端
多平台接入 ✅ Telegram/Discord/QQ等10+平台 ❌ 仅终端 ✅ Web/App
技能记忆 ✅ 自动学习、跨会话积累 ❌ 有限 ❌ 有限
模型自由 ✅ 支持20+提供商,可随时切换 ❌ 仅Claude ❌ 仅GPT系列
定时任务 ✅ 支持 cron 调度 ❌ 不支持 ❌ 不支持

核心特性

  • 🛠️ 自主工具调用 — 读文件、写代码、搜索网页、执行命令
  • 🧠 持久记忆 — 跨会话记住你的偏好和项目上下文
  • 💡 技能系统 — 从经验中学习,自动积累可复用的工作流
  • 🌐 多平台网关 — 同一智能体同时运行在 QQ、Telegram、Discord 等平台
  • 🎛️ 模型无关 — 随时切换 GPT、Claude、DeepSeek 等模型
  • 📅 定时任务 — 像 cron 一样自动执行任务
  • 📦 MCP 协议 — 支持 Model Context Protocol 扩展
  • 👤 多配置文件 — 工作/个人分不同的配置文件

二、环境要求

系统要求

项目 要求
操作系统 Ubuntu 22.04+ / macOS 13+ / WSL2
Python 3.11 或更高版本
内存 至少 512MB(建议 2GB+)
磁盘 至少 500MB 可用空间
网络 需要访问 LLM API(OpenRouter、OpenAI 等)

终端依赖

1
2
3
4
5
# Ubuntu / Debian
sudo apt update && sudo apt install -y curl git python3 python3-pip python3-venv

# macOS (需安装 Homebrew)
brew install python git curl

三、安装

3.1 一键安装

Hermes 提供一键安装脚本,兼容 Linux 和 macOS:

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

安装过程会自动:

  1. 检测系统环境
  2. 创建 Python 虚拟环境
  3. 安装 Python 依赖
  4. 创建配置文件模板
  5. 添加到 PATH

3.2 验证安装

安装完成后,重新加载 shell 并验证:

1
2
source ~/.bashrc
hermes doctor

如果一切正常,会显示类似输出:

1
2
3
4
[✓] Python 3.12.3 found
[✓] Config exists
[✓] .env exists
[✓] All required tools available

3.3 常用命令提示

1
2
hermes           # 启动交互式聊天(默认命令)
hermes --help # 查看所有命令

3.4 文件结构

安装后会在 ~/.hermes/ 下创建以下目录结构:

1
2
3
4
5
6
7
8
9
10
11
~/.hermes/
├── config.yaml # 主配置文件
├── .env # API 密钥(切勿提交到 git)
├── state.db # 会话数据库(SQLite)
├── skills/ # 技能目录
├── logs/ # 日志目录
│ ├── agent.log
│ ├── errors.log
│ └── gateway.log
├── sessions/ # 会话导出文件
└── hermes-agent/ # 源代码(仅 git 安装方式)

四、初始配置

4.1 运行设置向导

1
hermes setup

设置向导会带你一步步完成以下配置:

  1. 模型选择 — 选择 LLM 提供商和模型
  2. 终端设置 — 配置终端后端(本地、Docker、SSH)
  3. 网关设置 — 配置消息平台(可选)
  4. 工具设置 — 启用/禁用工具集
  5. Agent 设置 — 配置最大对话轮次等

4.2 选择模型提供商

1
hermes model

这个交互式命令会列出所有支持的模型提供商,按类别分组。常用提供商:

提供商 API 密钥环境变量 推荐模型 费用
OpenRouter OPENROUTER_API_KEY 任意模型 按量付费
Anthropic ANTHROPIC_API_KEY claude-sonnet-4 按量付费
DeepSeek DEEPSEEK_API_KEY deepseek-chat 极低价
Google Gemini GOOGLE_API_KEY gemini-2.5-flash 免费额度
OpenAI OPENAI_API_KEY gpt-4o 按量付费
xAI Grok XAI_API_KEY grok-3 需订阅

💡 新手推荐: 先注册 OpenRouter(https://openrouter.ai),充值少量金额即可使用几乎所有主流模型,无需为每个提供商单独注册。

配置 API 密钥

安装脚本已在 ~/.hermes/.env 中创建了模板,编辑该文件填入你的密钥:

1
2
3
# 编辑 .env 文件
hermes config env-path # 查看 .env 文件路径
nano ~/.hermes/.env # 或用你喜欢的编辑器

填入密钥后,保存即可生效:

1
OPENROUTER_API_KEY=sk-or-...

4.3 验证配置

1
2
hermes doctor
hermes chat -q "你好,请确认工作正常"

五、基本使用

5.1 交互式聊天

1
hermes

这是最常用的模式。启动后进入交互式终端,你可以:

  • 直接输入文字提问或下达任务
  • 使用 / 开头的斜杠命令控制会话
  • Ctrl+C 中断当前操作
  • 输入 /quit 退出

示例对话:

1
2
3
4
5
6
7
8
9
10
$ hermes
━━━ Hermes Agent ━━━
Models: openrouter/anthropic/claude-sonnet-4

> 帮我统计当前目录下的文件数量
[执行 ls -la | wc -l]
当前目录共有 42 个文件和目录。

> /model deepseek/deepseek-chat
[已切换模型]

5.2 单次查询模式

适合脚本调用或快速提问:

1
2
3
4
hermes chat -q "Python 中如何读取 JSON 文件?"

# 带模型指定
hermes chat -q "解释 Kubernetes 的 Pod 概念" -m deepseek/deepseek-chat

5.3 恢复上次会话

1
2
3
hermes --continue        # 恢复最近一次会话
hermes --continue work # 恢复名为 "work" 的会话
hermes -r SESSION_ID # 按 ID 恢复指定会话

5.4 查看历史会话

1
2
hermes sessions list     # 列出近期会话
hermes sessions browse # 交互式会话浏览器

六、斜杠命令速查

在交互式聊天中输入 / 开头的命令控制会话。以下是常用命令:

会话控制

命令 作用
/new/reset 开始新会话
/retry 重新发送上一条消息
/undo 撤销上一轮对话
/title 名称 给会话命名
/compress 手动压缩上下文
/stop 终止后台进程

模型和配置

命令 作用
/model 模型名 切换模型
/verbose 切换详细输出模式
/yolo 跳过危险命令确认
/voice on/off 语音模式开关

技能和工具

命令 作用
/skills 搜索和安装技能
/skill 名称 加载技能到当前会话
/tools 管理工具(CLI 模式)
/reload 重新加载环境变量

信息查询

命令 作用
/help 查看所有命令
/usage 查看 Token 用量
/status 会话状态信息
/profile 当前配置文件信息

七、核心功能详解

7.1 🛠️ 工具系统

Hermes 可以调用各种工具来完成任务。每个工具集可以单独启用或禁用。

查看可用工具:

1
hermes tools list

常用工具集:

工具集 作用
web 网页搜索和内容提取
terminal 执行 Shell 命令
file 读、写、编辑文件
vision 图片分析和识别
memory 跨会话记忆存储
session_search 搜索历史对话
delegation 任务委派给子代理
cronjob 定时任务管理
browser 浏览器自动化

启用/禁用工具:

1
2
3
hermes tools           # 交互式管理界面
hermes tools enable web # 启用网页工具
hermes tools disable terminal # 禁用终端工具

⚠️ 工具变更需要新会话才能生效:输入 /reset 或重新启动 Hermes。

7.2 🧠 记忆系统

记忆是 Hermes 区别于普通聊天机器人的核心功能。它能在跨会话之间记住关于你的信息。

工作原理:

  • 用户档案(User Profile) — 记录你是谁、你的偏好、习惯
  • 环境记忆(Memory) — 记录项目结构、环境配置、使用技巧

查看和管理记忆:

1
2
3
4
5
# 查看记忆状态
hermes memory status

# 记忆在对话中会自动保存
# 当你告诉 Hermes "记住这个" 或主动纠正它时

记忆的保存原则:

  • ✅ 用户偏好、环境事实、项目约定
  • ✅ API 用法、工具技巧、常见错误
  • ❌ 临时任务状态、已完成的日志
  • ❌ 会话中已解决的问题细节

7.3 💡 技能系统

技能是 Hermes 的程序性记忆——记录特定任务的完整工作流。

技能解决什么问题:

当你让 Hermes 完成一个复杂的任务(例如部署博客、设置 CI/CD),它会记录下成功的步骤。下次遇到相同类型的任务,它可以直接加载之前的经验,不需要从头摸索。

管理技能:

1
2
3
4
hermes skills list               # 查看已安装技能
hermes skills browse # 浏览在线技能库
hermes skills search "hexo" # 搜索技能
hermes skills install 技能ID # 安装技能

在对话中使用技能:

1
2
3
4
5
> /skill hexo-blog-workflow
[已加载技能 hexo-blog-workflow]

> 帮我发布一篇新博客文章
[使用技能中的工作流开始操作]

💡 最佳实践: 让 Hermes 帮你解决一个复杂问题后,可以问它”要不要把这个过程保存为技能”,方便以后重复使用。

7.4 🎯 任务委派

Hermes 可以将子任务委派给独立的子代理并行执行,每个子代理有自己的对话环境和工具。

使用场景:

  • 同时调研多个技术方案
  • 并行修复多个 Bug
  • 独立编写多个模块的代码

委派方式:

在对话中直接描述需要并行完成的任务即可,Hermes 会自动判断是否需要委派。例如:

1
2
3
4
> 同时做三件事:
> 1. 调研 Vue 3 和 React 的优缺点
> 2. 检查当前项目的 package.json 依赖版本
> 3. 在 README.md 中添加安装说明

7.5 📅 定时任务(Cron)

Hermes 可以定时执行任务,就像 Linux 的 cron 一样。

常用定时任务命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建定时任务
hermes cron create "每天上午9点查看服务器状态" --schedule "0 9 * * *"

# 每30分钟检查一次
hermes cron create "每30分钟" --schedule "30m"

# 列出所有任务
hermes cron list

# 暂停/恢复
hermes cron pause 任务ID
hermes cron resume 任务ID

# 删除任务
hermes cron remove 任务ID

💡 定时任务会在后台运行,完成后主动向你汇报结果。

7.6 🔌 MCP(Model Context Protocol)

Hermes 支持 MCP 协议,可以连接外部 MCP 服务器扩展能力。

1
2
3
4
5
6
7
8
# 添加 MCP 服务器
hermes mcp add my-server --command "python mcp-server.py"

# 列出已配置的服务器
hermes mcp list

# 测试连接
hermes mcp test my-server

八、多平台网关

8.1 什么是网关

网关是 Hermes 连接到消息平台(QQ、Telegram、Discord 等)的桥梁。配置后,你可以通过日常使用的聊天软件与 Hermes 交互,而不仅仅是终端。

8.2 支持的平台

平台 配置难度 功能
Telegram ⭐ 简单 文字/图片/语音/文件
Discord ⭐ 简单 文字/图片
QQ ⭐⭐ 中等 文字/图片
Slack ⭐ 简单 文字
WhatsApp ⭐⭐ 中等 文字/图片
Signal ⭐⭐ 中等 文字
邮件 (Email) ⭐ 简单 文字
钉钉 / 飞书 ⭐⭐ 中等 文字/图片
企业微信 ⭐⭐ 中等 文字

8.3 配置步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 运行网关设置向导
hermes gateway setup

# 2. 选择要配置的平台
# 3. 按照提示输入 Bot Token 等凭据

# 4. 启动网关
hermes gateway start

# 5. 查看状态
hermes gateway status

# 6. 查看日志排查问题
cat ~/.hermes/logs/gateway.log | tail -50

8.4 Telegram 配置示例

  1. 在 Telegram 中搜索 @BotFather,创建新 Bot,获取 Token
  2. 运行 hermes gateway setup,选择 Telegram
  3. 输入 Token,保存配置
  4. 启动网关:hermes gateway start
  5. 在 Telegram 中向你的 Bot 发送 /start

⚠️ 重要: Telegram Bot 必须启用 Inline ModeMessage Content Intent 才能正常工作。


九、配置文件详解

9.1 config.yaml 核心配置

主配置文件位于 ~/.hermes/config.yaml,用 YAML 格式编写。

1
2
3
4
5
6
7
8
9
# 编辑配置
hermes config edit

# 查看配置
hermes config

# 设置特定值
hermes config set model.default "anthropic/claude-sonnet-4"
hermes config set agent.max_turns 120

配置文件主要段落:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 模型配置
model:
default: "anthropic/claude-sonnet-4"
provider: "openrouter"
base_url: "" # 自定义 API 地址

# 智能体行为
agent:
max_turns: 90 # 最大对话轮次
tool_use_enforcement: true # 强制使用工具

# 终端
terminal:
backend: "local" # local / docker / ssh
timeout: 180 # 命令超时(秒)

# 记忆
memory:
memory_enabled: true # 启用记忆
user_profile_enabled: true # 启用用户档案

# 安全
security:
tirith_enabled: true # 启用安全检查

# 任务委派
delegation:
model: "" # 委派使用的模型
max_iterations: 50 # 最大迭代次数

9.2 .env 环境变量

敏感信息(API 密钥)放在 ~/.hermes/.env不应提交到版本控制

1
2
3
4
5
6
7
8
# LLM 提供商 API 密钥
OPENROUTER_API_KEY=sk-or-...

# 消息平台凭据
TELEGRAM_BOT_TOKEN=123456:ABC...

# 其他服务
GROQ_API_KEY=gsk_... # 语音转录

9.3 关键路径速查

内容 路径
主配置 ~/.hermes/config.yaml
API 密钥 ~/.hermes/.env
技能目录 ~/.hermes/skills/
日志 ~/.hermes/logs/
会话数据库 ~/.hermes/state.db
认证凭据 ~/.hermes/auth.json
网关服务 systemctl --user ... hermes-gateway
安装目录 ~/.hermes/hermes-agent/

十、高级功能

10.1 多配置文件(Profiles)

使用 profiles 可以运行多个完全独立的 Hermes 实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建工作 profile
hermes profile create work

# 创建个人 profile
hermes profile create personal

# 以指定 profile 启动
hermes --profile work

# 列出所有 profile
hermes profile list

# 切换默认 profile
hermes profile use work

# 删除 profile
hermes profile delete personal

不同 profiles 拥有独立的:

  • 配置文件(config.yaml
  • 密钥(.env
  • 会话记录
  • 技能和记忆
  • 模型设置

💡 使用场景: 工作 profile 使用 Claude,接入公司 Slack;个人 profile 使用 DeepSeek,接入 Telegram。

10.2 工作树模式(Worktree)

使用 -w--worktree 标志可以启动独立的 git 工作树,避免多智能体并行工作时发生 git 冲突:

1
hermes -w     # 在隔离的 git worktree 中启动

10.3 技能维护(Curator)

Curator 是 Hermes 的技能自动维护系统。它会自动跟踪技能的使用情况,将长期未用的技能归档,保持技能目录整洁。

1
2
3
4
5
6
7
8
9
10
11
# 查看 curator 状态
hermes curator status

# 手动运行一次维护
hermes curator run

# 暂停自动维护
hermes curator pause

# 恢复自动维护
hermes curator resume

10.4 任务看板(Kanban)

Kanban 是 Hermes 的多智能体任务协作看板,用于在多配置文件之间分配和跟踪任务。

1
2
3
hermes kanban init       # 初始化看板
hermes kanban list # 查看任务列表
hermes kanban create "任务描述" # 创建新任务

十一、安全与隐私

11.1 命令审批

默认情况下,Hermes 在执行危险命令前会请求你的批准:

1
2
3
4
5
6
7
8
# 默认模式 — 每条危险命令都询问
# 智能模式 — 自动批准低风险命令
hermes config set approvals.mode smart

# 完全跳过审批(不推荐)
hermes config set approvals.mode off
# 或使用 --yolo 标志临时跳过
hermes --yolo

11.2 密钥脱敏

启用在工具输出中自动脱敏 API 密钥和令牌:

1
hermes config set security.redact_secrets true

11.3 隐私保护

网关消息中的个人信息脱敏:

1
hermes config set privacy.redact_pii true

11.4 禁用特定工具

如果需要限制 Hermes 的能力范围(例如禁止访问网络),可以禁用相关工具:

1
2
3
hermes tools disable web      # 禁用网页工具
hermes tools disable browser # 禁用浏览器
hermes tools disable image_gen # 禁用图片生成

记得输入 /reset 重启会话使工具变更生效。


十二、常见问题

Q1: 安装后 hermes 命令找不到?

1
2
3
4
5
# 重新加载 shell 配置
source ~/.bashrc

# 或手动添加到 PATH
export PATH="$HOME/.hermes/hermes-agent/venv/bin:$PATH"

Q2: 模型调用报错 “Unauthorized”?

检查 API 密钥是否正确设置:

1
2
3
hermes config env-path   # 确认 .env 文件路径
cat ~/.hermes/.env # 检查密钥是否正确
hermes auth # 重新配置认证

Q3: 如何切换模型?

1
2
3
hermes model                      # 交互式选择
# 或在对话中直接:
/model deepseek/deepseek-chat # 切换为 DeepSeek

Q4: 技能和工具变更不生效?

1
2
/reset          # 在对话中输入 /reset 开始新会话
# 或退出后重新启动 hermes

Q5: 网关无法启动?

1
2
3
4
5
6
7
8
# 查看日志
cat ~/.hermes/logs/gateway.log | tail -50

# 检查依赖
hermes doctor

# 重启网关
hermes gateway restart

Q6: SSH 退出后网关被杀死?

1
2
# 启用 linger,防止用户服务在 SSH 断开后被终止
sudo loginctl enable-linger $USER

Q7: WSL2 用户注意事项?

/etc/wsl.conf 中启用 systemd,然后重启 WSL:

1
2
[boot]
systemd=true

Q8: 如何更新 Hermes?

1
hermes update

十三、完整工作流示例

以下是一个完整的使用流程,从安装到完成第一个任务:

场景:部署一篇博客文章

步骤 1 — 安装 Hermes

1
2
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc

步骤 2 — 配置

1
2
3
4
5
6
7
8
# 设置向导
hermes setup

# 选择模型(如 OpenRouter + Claude)
hermes model

# 验证配置
hermes doctor

步骤 3 — 启动聊天

1
hermes

步骤 4 — 下达任务

1
> 帮我写一篇关于 Hermes Agent 的博客文章,保存在 ~/blog-draft.md

步骤 5 — Hermes 会向你展示它的操作

1
2
3
4
5
[读文件] 读取博客配置
[写文件] 创建草稿文件 ~/blog-draft.md
[终端] hexo generate
[终端] rsync ... (部署到服务器)
[终端] git add && git commit && git push

步骤 6 — 查看结果

文章已经发布成功,并且代码已推送到远程仓库。


十四、总结

适合这样的你

  • 开发者: 需要一个能理解代码、操作终端的 AI 助手
  • 运维人员: 需要定时执行任务、监控服务器状态
  • 内容创作者: 需要自动发布博客、管理内容
  • 效率追求者: 想把重复工作自动化

不适合这样的你

  • ❌ 只需简单问答 ➜ 直接使用 ChatGPT 网页版更简单
  • ❌ 没有自己的服务器 ➜ 云端服务可能更适合
  • ❌ 不习惯命令行的新手 ➜ 建议先熟悉 Linux 基础

下一步

  • 📖 官方文档
  • 🌐 GitHub 仓库
  • 💬 加入社区 Discord 获取帮助
  • 🔧 尝试为 Hermes 贡献代码或编写技能

📚 参考资料: