Hermes Agent 是 Nous Research(Hermes 模型和 Nomos 模型的研究团队)推出的一款开源自主 AI 代理,其最大亮点是「内置学习循环」——它不只会执行任务,还会从每次交互中积累经验、自动生成技能并持续自我改进。
目录
一、Hermes Agent 是什么?
大多数 AI 工具本质上是「聪明的工具箱」:你提问,它回答,对话结束,下次重新开始。
Hermes Agent 的定位截然不同——它是一个持续进化的自主代理。
“The only agent with a built-in learning loop.” ——Nous Research 官方描述
具体来说,Hermes 能做到:
- 自主创建技能(Skills):从每次使用中归纳出可复用的操作模式
- 跨会话记忆:用 SQLite + 全文搜索跨所有对话保留上下文
- 多平台统一接入:Telegram、Discord、Slack、WhatsApp、Signal、Matrix……15+ 平台通过同一个网关进程管理
- 灵活的模型切换:无需改代码,
hermes model一条命令切换 OpenRouter、Anthropic、OpenAI、NVIDIA NIM、Hugging Face 等任意后端 - 多代理并行:可以派生隔离子代理同时处理多个工作流
二、Hermes vs 其他 AI 代理工具
| 能力维度 | 传统 AI 助手 | IDE Copilot | Hermes Agent |
|---|---|---|---|
| 会话持久化 | ❌ 无状态 | 部分支持 | ✅ SQLite 全文存储 |
| 自动学习 | ❌ | ❌ | ✅ 自动生成/改进 Skills |
| 跨平台接入 | 有限 | 仅 IDE | ✅ 15+ 平台 |
| 模型自由切换 | ❌ | 受限 | ✅ 任意 LLM 后端 |
| 并行子代理 | ❌ | ❌ | ✅ 隔离工作流 |
| 定时自动化 | ❌ | ❌ | ✅ 内置 Cron 调度 |
| 安全沙箱 | 无 | 无 | ✅ 七层防御模型 |
| 版本回滚 | ❌ | ❌ | ✅ Shadow Git 快照 |
核心差异在于:Hermes 不依赖任何单一 IDE 或 API 封装,它运行在你自己的基础设施上(从几美元/月的 VPS 到 serverless 云环境),通过统一网关对外提供服务。
三、安装:5 分钟跑起来
前置要求
唯一的硬依赖是 Git,其他所有依赖(Python 3.11、Node.js v22、uv、ripgrep、ffmpeg)由安装脚本自动处理。
一行安装命令
Linux / macOS / WSL2:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Android / Termux:
同样的命令,脚本会自动检测环境并使用适配路径。
安装完成后重载 Shell:
source ~/.bashrc
诊断工具
安装遇到问题?运行诊断命令:
hermes doctor
它会列出缺失的组件和修复建议。
四、快速上手:4 步建立基础工作流
Hermes 官方文档强调一个原则:先让一次干净的对话跑通,再叠加高级功能。
第 1 步:选择 LLM 提供商
hermes model
交互式菜单会列出所有可用后端,官方推荐从 Nous Portal 或 OpenRouter 开始(摩擦最小)。
第 2 步:测试基础对话
hermes
# 或者启用 TUI 界面
hermes --tui
试一个具体任务,比如让它总结一个 GitHub 仓库。
第 3 步:验证会话持久化
# 继续上次对话
hermes --continue
# 或简写
hermes -c
看到上次对话的摘要面板出现,说明持久化正常工作。
第 4 步:按需叠加功能
基础流程通畅后,再逐步添加:
- 机器人平台(Telegram、Discord、Slack)
- 语音模式
- 自定义 Skills
- 定时自动化任务
五、核心功能深度解析
5.1 CLI 命令体系
Hermes 的命令设计遵循一致的层次结构:
# 基础对话
hermes # 进入交互模式
hermes chat -q "帮我分析这个项目" # 单次查询模式
# 会话管理
hermes --continue # 继续最近的会话
hermes -c "我的项目" # 按名称恢复会话
hermes --resume <session_id> # 按 ID 恢复特定会话
# 模型控制
hermes chat --model "anthropic/claude-sonnet-4" # 指定模型
hermes chat --provider openrouter # 指定提供商
# 工具与技能
hermes chat --toolsets "web,terminal,skills" # 启用工具集
hermes -s github-auth,code-review # 预加载技能
# 高级选项
hermes -w # 在隔离 git worktree 中运行
hermes chat --verbose # 开启调试输出
会话内斜杠命令(Slash Commands):
在对话中可以使用的常用命令:
| 命令 | 功能 |
|---|---|
/help | 显示所有可用命令 |
/model | 切换 LLM 模型 |
/tools | 查看/切换工具集 |
/skills browse | 浏览可用技能库 |
/background <prompt> | 在后台运行任务 |
/voice on | 开启语音模式 |
/title | 为当前会话命名 |
/rollback | 查看可回滚的快照 |
斜杠命令大小写不敏感,安装的 Skills 会自动成为新的斜杠命令。
5.2 TUI 终端界面
hermes --tui 启动一个功能完整的终端 UI,提供:
- 多行编辑支持
- 实时流式输出
- 会话历史浏览
- 工具执行进度可视化
适合需要更丰富视觉反馈的场景。
5.3 配置系统
所有配置存储在 ~/.hermes/ 目录下:
~/.hermes/
├── config.yaml # 主配置(模型、终端后端、内存、显示)
├── .env # API 密钥和 Secrets
└── auth.json # OAuth 凭证
配置管理命令:
hermes config # 查看当前配置
hermes config edit # 用编辑器打开配置文件
hermes config set KEY VAL # 设置单个配置项
hermes config check # 检查缺失的配置项
主要配置区域:
| 配置区 | 说明 |
|---|---|
| 终端后端 | 本地、Docker、SSH、Modal、Daytona、Singularity |
| 模型设置 | 主 LLM、视觉分析、上下文压缩的独立模型 |
| 内存与上下文 | 对话记忆限制、文件读取安全阈值、自动压缩触发点 |
| 安全配置 | 密钥脱敏、Tirith 命令扫描、网站黑名单 |
| 显示与交互 | 工具进度详细程度、TTS、STT、语音模式 |
| 集成配置 | Discord 行为、Web 搜索后端、浏览器自动化 |
配置优先级(高到低):
CLI 参数 → config.yaml → .env → 内置默认值
5.4 会话管理
Hermes 的会话系统是其「持续进化」能力的基础。
存储架构:
~/.hermes/
├── state.db # SQLite 数据库(支持 FTS5 全文检索)
└── sessions/ # JSONL 原始对话记录
每个会话记录:会话 ID、来源平台、用户 ID、标题、模型配置快照、完整消息历史、Token 用量、时间戳。
智能特性:
- 自动命名:首次交互后自动生成 3-7 词的描述性标题
- 会话谱系:压缩时自动生成编号,保持对话脉络
- 全文检索:支持布尔运算符和短语查询,代理在需要时自动检索历史上下文
- 跨平台隔离:群聊中按用户独立管理会话,可配置隔离策略
会话管理操作:
# 列出所有会话
hermes sessions list
# 搜索历史会话
hermes sessions search "上周的项目"
# 删除旧会话(清理超过 30 天的)
hermes sessions prune --older-than 30d
# 导出会话
hermes sessions export <session_id>
5.5 Profiles(多代理配置)
Profiles 允许在同一台机器上运行多个完全独立的 Hermes 实例,每个实例有自己的:
- 配置文件(
config.yaml、.env) - 个性设定(
SOUL.md) - 独立的记忆和会话历史
- 独立的 Skills 和网关配置
创建 Profile:
# 创建空白 Profile
hermes profile create coder
# 克隆配置(保持新记忆)
hermes profile create --clone researcher
# 完整克隆(包含所有历史和记忆)
hermes profile create --clone-all backup
创建后,Profile 名称自动成为命令别名:
coder chat "帮我 review 这段代码"
researcher chat "查找最新的机器学习论文"
注意:Profiles 提供独立的状态目录,但不沙箱文件系统访问权限。如需限制工作目录,需显式设置 terminal.cwd。
5.6 Git Worktrees 隔离
-w 标志让 Hermes 自动在隔离的 Git Worktree 中工作:
# 自动创建临时 worktree
hermes -w
# 在特定 worktree 继续会话
hermes -w --continue
工作原理:
- Hermes 在
.worktrees/下创建新的工作树 - 自动 checkout 隔离分支
- 该分支有独立的 Checkpoint Manager 历史,可以独立回滚
适用场景:
- 同时进行多个实验性修改
- 并行运行多个代理处理不同功能
- 保持主分支干净,实验在隔离环境中进行
最佳实践:
- 每个实验创建独立的 worktree
- 频繁 commit,保持小粒度变更
- 不要直接在裸仓库根目录运行 Hermes
5.7 七层安全防御
Hermes 构建了一套深度防御安全模型,这在开源 AI 代理工具中较为罕见:
层 1: 用户授权 —— 白名单 + DM 配对码
层 2: 危险命令审批 —— 人工确认破坏性操作
层 3: 容器隔离 —— Docker/Singularity/Modal 沙箱
层 4: 凭证过滤 —— 子进程执行时剥离环境变量
层 5: 上下文文件扫描 —— 检测提示词注入
层 6: 跨会话隔离 —— 会话间数据不可互访
层 7: 输入消毒 —— 工作目录参数防 Shell 注入
关键安全机制:
危险命令检测:自动识别并要求确认以下模式:
- 递归删除(
rm -rf) - 权限修改(
chmod 777) - SQL DROP 语句
- 管道到解释器(
curl | bash)
支持三种审批模式:manual(手动)、smart(智能判断)、off(关闭)。
DM 配对系统:用 8 字符加密码进行身份绑定,1 小时过期,5 次失败后锁定。
SSRF 防护:验证所有 URL 防止访问内网、loopback 和云元数据端点,DNS 失败默认拒绝(fail-closed)。
Tirith 集成:执行前扫描同形字欺骗、管道到解释器模式和终端注入。
5.8 Checkpoints 与回滚
Hermes 使用 Shadow Git 仓库在后台自动创建检查点快照:
~/.hermes/checkpoints/ # 影子 Git 仓库(不影响项目的 .git)
自动触发场景:
- 文件写入(
write_file、patch) - 破坏性命令(
rm、mv、sed -i) - Git 操作(
reset、clean)
回滚命令:
/rollback # 查看所有快照(含变更统计)
/rollback 3 # 恢复到快照 3(同时撤销对应的对话轮次)
/rollback diff 3 # 预览快照 3 之后的所有变更
/rollback 3 src/main.py # 只恢复单个文件
设计亮点:
- 默认开启,零成本:没有文件修改时不消耗任何资源
- 非侵入式:完全不修改项目自己的
.git目录 - 与 Worktree 配合:每个 worktree 有独立的快照历史
六、Skills 生态:让代理真正「学会」你的业务
Skills 是 Hermes 最核心的差异化能力。
Skills 的本质:可以被代理调用的、可复用的操作模式,类似于「岗位 SOP」。
三种 Skills 来源:
- 内置 Skills:随 Hermes 预装的通用能力
- 社区 Skills:通过 agentskills.io 生态获取的社区贡献技能
- 自动生成 Skills:Hermes 从你的使用模式中自主归纳并创建
Skills 管理:
# 浏览可用技能
/skills browse
# 安装技能
/skills install github-auth
# 预加载技能启动
hermes -s github-auth,code-review
# 查看已安装技能
/skills list
已安装的 Skills 会自动成为斜杠命令,在对话中直接调用。
七、多平台接入:统一网关
Hermes 通过单一网关进程支持 15+ 消息平台:
| 平台 | 接入方式 |
|---|---|
| Telegram | Bot API |
| Discord | Bot Token |
| Slack | App Token |
| 第三方 API | |
| Signal | Signal CLI |
| Matrix | Matrix SDK |
| 更多… | 配置网关 |
优势:无论从哪个平台发消息,都访问同一个代理实例、同一份记忆和技能库。
八、六种终端后端
Hermes 支持六种执行环境,适应不同的安全和部署需求:
| 后端 | 特点 | 适用场景 |
|---|---|---|
| 本地(Local) | 直接在当前机器执行 | 开发环境 |
| Docker | 容器隔离,安全 | 生产环境、不信任代码 |
| SSH | 远程服务器执行 | 云端代理 |
| Daytona | Serverless,闲置时休眠 | 降低运营成本 |
| Modal | Serverless 云执行 | 弹性扩展 |
| Singularity | HPC 容器运行时 | 学术/研究集群 |
serverless 后端(Daytona、Modal)在不活跃时自动休眠,特别适合间歇性使用场景。
九、定时自动化:内置 Cron 调度
无需外部工具,Hermes 内置了任务调度系统:
# 设置定时任务
hermes schedule "每天早上 9 点总结昨天的 GitHub 活动"
# 查看定时任务
hermes schedule list
# 删除定时任务
hermes schedule remove <task_id>
典型用例:
- 每日代码库健康检查
- 定时拉取和分析外部数据源
- 周期性生成报告并推送到 Slack
十、适合谁用?
Hermes Agent 的理想用户:
- 独立开发者:需要一个懂自己工作流的 AI 助理,而不是每次都从零开始
- 研究人员:需要批量轨迹生成(Trajectory Generation)用于模型训练的 ML 研究者
- DevOps / SRE:需要将 AI 能力嵌入到自动化运维流程中
- 开源 AI 爱好者:希望在自己控制的基础设施上运行 AI 代理
可能不适合的场景:
- 只需要偶尔问答的轻量用户(Claude.ai 直接用更简单)
- 企业合规环境中对数据主权有严格要求但又没有私有化部署能力的团队
十一、与 Claude Code 的关系
如果你同时使用 Claude Code(Anthropic 官方 CLI),Hermes 可以作为补充工具而不是替代品:
| 维度 | Claude Code | Hermes Agent |
|---|---|---|
| 主要定位 | IDE 级别代码助手 | 自主代理平台 |
| 模型绑定 | Anthropic Claude | 任意 LLM |
| 多平台接入 | 否 | 是(15+) |
| 自动 Skills | 否 | 是 |
| 跨会话学习 | 否 | 是 |
| 安全沙箱 | 依赖工具权限 | 七层防御 |
建议组合:用 Claude Code 做深度代码生成和重构,用 Hermes 做跨会话的知识积累、多平台通知和自动化调度。
十二、总结
Hermes Agent 代表了一种新的 AI 助手设计范式:
- 从工具到代理:不只是回答问题,而是持续积累上下文、自主生成可复用的技能
- 从绑定到开放:不锁定任何单一 LLM 提供商,基础设施完全自主
- 从单次到持续:通过 Sessions、Skills、Profiles 构建真正的「个人 AI 员工」
与其说 Hermes 是一个工具,不如说它是一个可以在你的基础设施上运行的、会随时间进化的 AI 代理操作系统。
对于想要构建「懂自己业务、会自我迭代」的 AI 助手的开发者来说,Hermes 值得深度探索。
资源链接:
- GitHub: NousResearch/hermes-agent
- 官方文档: hermes-agent.nousresearch.com/docs
- 技能生态: agentskills.io
- Nous Research: nousresearch.com