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 | # Ubuntu / Debian |
三、安装
3.1 一键安装
Hermes 提供一键安装脚本,兼容 Linux 和 macOS:
1 | curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash |
安装过程会自动:
- 检测系统环境
- 创建 Python 虚拟环境
- 安装 Python 依赖
- 创建配置文件模板
- 添加到 PATH
3.2 验证安装
安装完成后,重新加载 shell 并验证:
1 | source ~/.bashrc |
如果一切正常,会显示类似输出:
1 | [✓] Python 3.12.3 found |
3.3 常用命令提示
1 | hermes # 启动交互式聊天(默认命令) |
3.4 文件结构
安装后会在 ~/.hermes/ 下创建以下目录结构:
1 | ~/.hermes/ |
四、初始配置
4.1 运行设置向导
1 | hermes setup |
设置向导会带你一步步完成以下配置:
- 模型选择 — 选择 LLM 提供商和模型
- 终端设置 — 配置终端后端(本地、Docker、SSH)
- 网关设置 — 配置消息平台(可选)
- 工具设置 — 启用/禁用工具集
- 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 | # 编辑 .env 文件 |
填入密钥后,保存即可生效:
1 | OPENROUTER_API_KEY=sk-or-... |
4.3 验证配置
1 | hermes doctor |
五、基本使用
5.1 交互式聊天
1 | hermes |
这是最常用的模式。启动后进入交互式终端,你可以:
- 直接输入文字提问或下达任务
- 使用
/开头的斜杠命令控制会话 - 按
Ctrl+C中断当前操作 - 输入
/quit退出
示例对话:
1 | $ hermes |
5.2 单次查询模式
适合脚本调用或快速提问:
1 | hermes chat -q "Python 中如何读取 JSON 文件?" |
5.3 恢复上次会话
1 | hermes --continue # 恢复最近一次会话 |
5.4 查看历史会话
1 | hermes sessions list # 列出近期会话 |
六、斜杠命令速查
在交互式聊天中输入 / 开头的命令控制会话。以下是常用命令:
会话控制
| 命令 | 作用 |
|---|---|
/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 | hermes tools # 交互式管理界面 |
⚠️ 工具变更需要新会话才能生效:输入
/reset或重新启动 Hermes。
7.2 🧠 记忆系统
记忆是 Hermes 区别于普通聊天机器人的核心功能。它能在跨会话之间记住关于你的信息。
工作原理:
- 用户档案(User Profile) — 记录你是谁、你的偏好、习惯
- 环境记忆(Memory) — 记录项目结构、环境配置、使用技巧
查看和管理记忆:
1 | # 查看记忆状态 |
记忆的保存原则:
- ✅ 用户偏好、环境事实、项目约定
- ✅ API 用法、工具技巧、常见错误
- ❌ 临时任务状态、已完成的日志
- ❌ 会话中已解决的问题细节
7.3 💡 技能系统
技能是 Hermes 的程序性记忆——记录特定任务的完整工作流。
技能解决什么问题:
当你让 Hermes 完成一个复杂的任务(例如部署博客、设置 CI/CD),它会记录下成功的步骤。下次遇到相同类型的任务,它可以直接加载之前的经验,不需要从头摸索。
管理技能:
1 | hermes skills list # 查看已安装技能 |
在对话中使用技能:
1 | > /skill hexo-blog-workflow |
💡 最佳实践: 让 Hermes 帮你解决一个复杂问题后,可以问它”要不要把这个过程保存为技能”,方便以后重复使用。
7.4 🎯 任务委派
Hermes 可以将子任务委派给独立的子代理并行执行,每个子代理有自己的对话环境和工具。
使用场景:
- 同时调研多个技术方案
- 并行修复多个 Bug
- 独立编写多个模块的代码
委派方式:
在对话中直接描述需要并行完成的任务即可,Hermes 会自动判断是否需要委派。例如:
1 | > 同时做三件事: |
7.5 📅 定时任务(Cron)
Hermes 可以定时执行任务,就像 Linux 的 cron 一样。
常用定时任务命令:
1 | # 创建定时任务 |
💡 定时任务会在后台运行,完成后主动向你汇报结果。
7.6 🔌 MCP(Model Context Protocol)
Hermes 支持 MCP 协议,可以连接外部 MCP 服务器扩展能力。
1 | # 添加 MCP 服务器 |
八、多平台网关
8.1 什么是网关
网关是 Hermes 连接到消息平台(QQ、Telegram、Discord 等)的桥梁。配置后,你可以通过日常使用的聊天软件与 Hermes 交互,而不仅仅是终端。
8.2 支持的平台
| 平台 | 配置难度 | 功能 |
|---|---|---|
| Telegram | ⭐ 简单 | 文字/图片/语音/文件 |
| Discord | ⭐ 简单 | 文字/图片 |
| ⭐⭐ 中等 | 文字/图片 | |
| Slack | ⭐ 简单 | 文字 |
| ⭐⭐ 中等 | 文字/图片 | |
| Signal | ⭐⭐ 中等 | 文字 |
| 邮件 (Email) | ⭐ 简单 | 文字 |
| 钉钉 / 飞书 | ⭐⭐ 中等 | 文字/图片 |
| 企业微信 | ⭐⭐ 中等 | 文字 |
8.3 配置步骤
1 | # 1. 运行网关设置向导 |
8.4 Telegram 配置示例
- 在 Telegram 中搜索
@BotFather,创建新 Bot,获取 Token - 运行
hermes gateway setup,选择 Telegram - 输入 Token,保存配置
- 启动网关:
hermes gateway start - 在 Telegram 中向你的 Bot 发送
/start
⚠️ 重要: Telegram Bot 必须启用 Inline Mode 和 Message Content Intent 才能正常工作。
九、配置文件详解
9.1 config.yaml 核心配置
主配置文件位于 ~/.hermes/config.yaml,用 YAML 格式编写。
1 | # 编辑配置 |
配置文件主要段落:
1 | # 模型配置 |
9.2 .env 环境变量
敏感信息(API 密钥)放在 ~/.hermes/.env,不应提交到版本控制。
1 | # LLM 提供商 API 密钥 |
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 | # 创建工作 profile |
不同 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 | # 查看 curator 状态 |
10.4 任务看板(Kanban)
Kanban 是 Hermes 的多智能体任务协作看板,用于在多配置文件之间分配和跟踪任务。
1 | hermes kanban init # 初始化看板 |
十一、安全与隐私
11.1 命令审批
默认情况下,Hermes 在执行危险命令前会请求你的批准:
1 | # 默认模式 — 每条危险命令都询问 |
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 | hermes tools disable web # 禁用网页工具 |
记得输入
/reset重启会话使工具变更生效。
十二、常见问题
Q1: 安装后 hermes 命令找不到?
1 | # 重新加载 shell 配置 |
Q2: 模型调用报错 “Unauthorized”?
检查 API 密钥是否正确设置:
1 | hermes config env-path # 确认 .env 文件路径 |
Q3: 如何切换模型?
1 | hermes model # 交互式选择 |
Q4: 技能和工具变更不生效?
1 | /reset # 在对话中输入 /reset 开始新会话 |
Q5: 网关无法启动?
1 | # 查看日志 |
Q6: SSH 退出后网关被杀死?
1 | # 启用 linger,防止用户服务在 SSH 断开后被终止 |
Q7: WSL2 用户注意事项?
在 /etc/wsl.conf 中启用 systemd,然后重启 WSL:
1 | [boot] |
Q8: 如何更新 Hermes?
1 | hermes update |
十三、完整工作流示例
以下是一个完整的使用流程,从安装到完成第一个任务:
场景:部署一篇博客文章
步骤 1 — 安装 Hermes
1 | curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash |
步骤 2 — 配置
1 | # 设置向导 |
步骤 3 — 启动聊天
1 | hermes |
步骤 4 — 下达任务
1 | > 帮我写一篇关于 Hermes Agent 的博客文章,保存在 ~/blog-draft.md |
步骤 5 — Hermes 会向你展示它的操作
1 | [读文件] 读取博客配置 |
步骤 6 — 查看结果
文章已经发布成功,并且代码已推送到远程仓库。
十四、总结
适合这样的你
- 开发者: 需要一个能理解代码、操作终端的 AI 助手
- 运维人员: 需要定时执行任务、监控服务器状态
- 内容创作者: 需要自动发布博客、管理内容
- 效率追求者: 想把重复工作自动化
不适合这样的你
- ❌ 只需简单问答 ➜ 直接使用 ChatGPT 网页版更简单
- ❌ 没有自己的服务器 ➜ 云端服务可能更适合
- ❌ 不习惯命令行的新手 ➜ 建议先熟悉 Linux 基础
下一步
📚 参考资料:
- Hermes Agent 官方文档
- Hermes Agent GitHub
- OpenRouter — 多模型 API 聚合
- Hexo 博客框架 — 静态博客生成器