Hermes Agent 是什么?一个会越用越聪明的 AI Agent

封面图
Hermes Agent 是一个开源的、能自学的 AI Agent。不是绑在 IDE 里的编码助手,也不是套了一层 API 的聊天机器人——而是一个运行在你自己服务器上的自主 Agent,会从每次任务中积累经验,运行时间越长越强大。它由 Nous Research 开发,MIT 许可证,2026 年 2 月发布后两个月内获得 143,000 GitHub 星标、937 位贡献者,是 2026 年增长最快的 AI Agent 框架。

它最不一样的地方:闭环学习系统

这是 Hermes 和市面上几乎所有 Agent 框架的根本区别。

传统 Agent 的工作循环是:接收任务 → 规划 → 执行 → 返回结果。会话结束,什么都没留下。你让它处理第 100 个同类任务,它和第 1 次的处理方式完全一样——没有进步。

Hermes 在执行之后多走了一步——它会学习。

具体来说,闭环学习分四个阶段:

  1. 任务执行:分解任务,选择工具,执行操作。这一步和其他 Agent 没区别。
  2. 结果评估:任务完成后,Hermes 会判断——成功了没有?用户接受了还是修改了?它同时捕捉两种信号:显式反馈(你纠正了输出)和隐式信号(你直接接受了,没改)。
  3. 技能提取:当结果是成功的、且解决方法不是显而易见的,Hermes 会把推理模式提取成一个"技能"——本质上是"当遇到这类情况时,这样做有效"的结构化模板。技能可以简单到一个输出格式偏好,也可以复杂到一套多步骤推理策略。
  4. 技能精炼:下次遇到类似任务,Hermes 会从技能库中检索相关技能,和新结果对比。如果新方法持续表现更好,技能会被更新。这不是一次性的学习事件,而是持续优化。

这个设计有学术基础——arXiv 上关于开放式 Agent 系统的研究表明,LLM 驱动的 Agent 能够构建和复用程序化技能库,逐步解决更难的问题。

闭环学习系统四阶段循环

一个类比:想象一个实习生,每完成一个非平凡任务都会写一篇"怎么做"的笔记,下次遇到类似问题先查笔记。笔记不是简单复制粘贴,而是总结方法。如果发现更好的方法,还会更新笔记。Hermes 就是这个实习生——只不过它永远不会离职,笔记也不会丢。

持久记忆:它怎么记住你

学习系统需要记忆来支撑。Hermes 用两个核心文件维护跨会话上下文:

  • MEMORY.md:记录环境信息、过往经验教训、系统状态。相当于 Agent 的"工作笔记"。
  • USER.md:记录你的偏好、工作风格、自定义设置。相当于 Agent 对你的"了解"。

背后是 SQLite 数据库,支持 FTS5 全文搜索——这意味着 Agent 可以搜索自己过去的所有对话,找到相关经验。v0.7.0 进一步把记忆后端做成了可插拔架构,开箱即用 6 个第三方存储提供商。

用户建模是另一个容易被忽略但很重要的特性。Hermes 跨会话追踪四类信息:

追踪维度 具体内容 实际效果
任务偏好 输出格式、结构、风格 不用每次都说"用列表格式"
决策历史 过去相似情况中的选择 遇到类似决策时,参考你之前的判断
任务模式 常做哪些任务、什么频率 主动建议相关定时任务
反馈信号 显式纠正和隐式接受 持续对齐你的期望

时间长了,你会感觉到它不再问那些已经知道答案的问题。一个总是要列点式摘要的用户,不需要每次都指定格式。一个对代码审查有明确偏好的开发者,不需要每次都写长段指令。

五个核心能力速览

除了学习系统,Hermes 还有这些关键能力:

1. 多平台消息网关

不是只能终端使用。通过统一的网关进程,支持 7+ 消息平台:Telegram、Discord、Slack、WhatsApp、Signal、飞书/Lark、企业微信。你可以在 Telegram 上开始一个对话,到 Slack 上继续。支持语音备忘录转录。

2. 七种终端后端

本地、Docker、SSH、Singularity、Modal、Daytona、Vercel Sandbox。Daytona 和 Modal 提供无服务器持久化——环境空闲时休眠,需要时唤醒,空闲期间几乎零成本。可以跑在 5 美元的 VPS 上,也可以跑在 GPU 集群上。

3. 定时自动化

内置 cron 调度器,用自然语言设定。每日报告、夜间备份、周度审计——自动运行,结果推送到你指定的平台。

4. 委派与并行化

可以生成隔离子 Agent 处理并行工作流,也可以编写 Python 脚本通过 RPC 调用工具,把多步管道压缩成零上下文开销的单次操作。

5. MCP 原生支持

既可作为 MCP 客户端连接 GitHub、数据库等外部服务,也可作为 MCP 服务器暴露自身能力(hermes mcp serve)。内置 40+ 工具,覆盖 Web 搜索、浏览器自动化、视觉、图像生成、文本转语音等。

和 OpenClaw、Claude Code 有什么区别?

直接看对比:

维度 Hermes Agent OpenClaw Claude Code
定位 通用自主 Agent 广谱工具链 Agent IDE 集成编码 Agent
许可证 MIT(完全开源) 开源 商业(订阅制)
LLM 支持 200+ 模型,无锁定 多供应商 仅 Claude
学习能力 自动技能创建 + 精炼 无原生学习系统 CLAUDE.md + 规则
消息平台 7+ 平台网关 终端 终端
部署方式 自托管 自托管 Anthropic 云
用户建模 跨会话偏好学习 有限 有限
多 Agent 支持 支持 不支持
设置复杂度 中等

谁该选 OpenClaw:需要广泛工具覆盖、快速部署,不优先考虑跨会话学习。就像一把瑞士军刀——什么都能做,但不会因为用了 100 次就变锋利。

谁该选 Claude Code:主要工作在 IDE 里,核心需求是编码辅助。它在这个场景下体验最好。

谁该选 Hermes:有重复性工作流,同一个 Agent 长期使用,希望它随时间变得更好。不是要一个什么都能做的工具,而是要一个越用越懂你的助手。

还有一个实用信息:如果你之前用 OpenClaw,Hermes 提供完整的自动迁移工具——hermes claw migrate,可以导入 SOUL.md、记忆、技能、命令白名单、API 密钥、消息设置等。

三方框架对比

什么时候该用?什么时候别用?

适合的场景

  • 重复性、结构化的任务。技能系统在相似问题反复出现时才有价值——处理同类文档、执行同类代码审查、生成同类报告。重复越多,积累越深。
  • 同一个用户或团队长期使用。用户建模需要持续的交互来观察。内部工具每天被同一团队使用,远比面向数千不同用户的场景更受益。
  • 需要自托管。数据不能离开本地、合规要求需要自主部署。Hermes 完全自托管,MIT 许可,无追踪。
  • 需要模型灵活性。支持 OpenAI、Anthropic、OpenRouter(200+ 模型)、NVIDIA NIM、小米 MiMo、GLM、Kimi/Moonshot 等所有主流供应商,一行配置切换。还有回退链——主供应商挂了自动切换备用。
  • 需要多平台触达。在 Telegram 上和 Agent 聊两句,到 Discord 上继续,不丢失上下文。

不适合的场景

  • 广泛、一次性的任务。Agent 处理的任务类型五花八门且从不重复时,技能库增长但几乎不被调用。一个更简单的框架可能就够了。
  • 基础设施资源有限。Hermes 需要管理技能存储、用户模型持久化、学习循环——这是实际的运维工作。如果团队没有这个能力,托管平台可能是更好的选择。
  • 期望即时效果。学习循环需要时间积累。前几次使用,Hermes 和普通 Agent 的表现没有显著差异。价值在几十次、上百次使用后才会明显体现。

判断检查清单

  • 你的任务中有 30% 以上是重复类型的?→ 技能系统会有价值
  • 同一个人/团队会持续使用超过 1 个月?→ 用户建模会起作用
  • 你能衡量 Agent 的表现变化(完成速度、接受率、纠正次数)?→ 可以验证学习效果
  • 你有资源做基本的自托管运维?→ 基础设施要求可以满足

如果以上至少满足两项,Hermes 值得考虑。

安装与配置

一键安装

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

# 配置 LLM 供应商
hermes model

# 启动对话
hermes

安装器自动处理 uv、Python 3.11、Node.js、ripgrep、ffmpeg、便携式 Git Bash(MinGit),无需管理员权限。

Docker 方式

# CLI 模式
docker run -it nousresearch/hermes-agent

# 网关模式(支持 Telegram/Discord 等)
docker run -d nousresearch/hermes-agent gateway

Windows

# PowerShell(Early Beta)
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

原生 Windows 支持目前是早期测试版。如需最稳定的 Windows 体验,建议在 WSL2 中运行 Linux 安装命令。

模型选择与切换

首次安装后通过 hermes model 选择 LLM 供应商和模型。这不是一次性的——之后随时可以切换:

# 交互式切换(在 CLI 或消息平台中)
hermes model

# 在对话中切换
/model openai:gpt-4o

# 在 Telegram 中切换——会弹出交互式模型选择器
/model

# 设为全局默认(跨会话持久化)
/model openai:gpt-4o --global

支持的供应商包括:OpenAI、Anthropic、OpenRouter(200+ 模型)、NVIDIA NIM(Nemotron)、小米 MiMo、GLM、Kimi/Moonshot、MiniMax、Hugging Face,以及自托管的 Ollama、vLLM、SGLang。还有回退供应商链——主供应商出错时自动切换备用。

连接 Telegram

Hermes 通过 Telegram Bot 集成,支持文本、语音、图片、文件附件。设置步骤:

1. 创建 Telegram Bot

在 Telegram 中找 @BotFather,发送 /newbot,选择名称和用户名(必须以 bot 结尾),获取 API Token(格式如 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ)。

2. 获取你的 User ID

给 @userinfobot 发消息,它会回复你的数字 ID(如 123456789)。这不是你的用户名,是一个纯数字。

3. 配置 Hermes

推荐用交互式向导:

hermes gateway setup

选择 Telegram,输入 Bot Token 和你的 User ID,向导自动写入配置。

手动配置的话,在 ~/.hermes/.env 中添加:

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789

4. 启动网关

hermes gateway

Bot 会在几秒内上线。发条消息验证即可。

群聊注意:Telegram Bot 默认开启隐私模式,只能看到 / 命令和直接回复。要在群里看到所有消息,需要在 BotFather 中关闭隐私模式,或者把 Bot 设为群管理员。改完隐私设置后必须把 Bot 移出群再重新加入

语音消息:发语音给 Bot 会自动转录为文字。支持本地 faster-whisper(无需 API Key)、Groq Whisper、OpenAI Whisper。

Webhook 模式(适合云部署):如果部署在 Fly.io、Railway 等平台,可以设 TELEGRAM_WEBHOOK_URL 切换到 Webhook 模式,空闲时机器可以休眠,节省费用。

国内网络:如需代理,在 config.yaml 中配置 telegram.proxy_url: "socks5://127.0.0.1:1080" 或设环境变量 TELEGRAM_PROXY

连接企业微信

Hermes 通过企业微信的 AI Bot WebSocket 网关实现实时双向通信,无需公网端点或 Webhook。

1. 创建 AI Bot

推荐方式(一条命令):

hermes gateway setup

选择 WeCom,用企业微信手机 App 扫描终端中的二维码,Hermes 自动创建 Bot 应用并获取凭证。

手动方式:登录企业微信管理后台,进入 应用管理 → 创建应用 → AI 机器人,获取 Bot ID 和 Secret。

2. 启动网关

hermes gateway

企业微信功能支持

功能 说明
WebSocket 传输 持久连接,无需公网端点
私聊和群聊 可配置访问策略
群内人员白名单 精细控制每个群谁能和 Bot 交互
媒体支持 图片、文件、语音、视频上传下载
AES 加密媒体 自动解密(需 pip install cryptography
Markdown 渲染 富文本响应
自动重连 指数退避策略(2s → 5s → 10s → 30s → 60s)

访问控制:支持四种私聊策略(open/allowlist/disabled/pairing)和群聊策略,可以在 config.yaml 中按群配置不同的人员白名单。

连接其他平台

飞书/Lark 的配置类似,hermes gateway setup 中选择对应平台即可。WhatsApp、Signal、Slack 同理,所有平台通过同一个网关进程运行。

版本升级

Hermes 的更新非常简单:

# 一键更新(自动拉取代码、更新依赖、重启网关)
hermes update

# 预览是否有更新(不执行任何修改)
hermes update --check

# 带完整备份的更新(适合生产环境)
hermes update --backup

更新过程自动执行:状态快照 → Git 拉取 → 依赖安装 → 配置迁移 → 网关重启。如果在 SSH 中更新时终端断开,更新不会中断——进程忽略 SIGHUP 信号,所有输出同步到 ~/.hermes/logs/update.log

从 Telegram、Discord 等消息平台也可以直接发送 /update 命令更新。Bot 会短暂离线(通常 5-15 秒),然后自动恢复。

如果更新出问题,可以回滚到任意版本:

cd /path/to/hermes-agent
git log --oneline -10        # 查看历史版本
git checkout <commit-hash>   # 回到指定版本
git submodule update --init --recursive
uv pip install -e ".[all]"
hermes gateway restart

验证学习循环是否在工作

安装完成后,试试这个流程:

  1. 让 Hermes 完成一个非平凡的任务(比如"帮我分析这段代码的性能问题")
  2. 任务完成后,检查是否自动生成了技能:/skills
  3. 再给它一个类似的任务,观察它是否复用了之前的技能
  4. /usage/insights --days 7 查看使用统计

如果看到技能库在增长,且类似任务的处理速度在提升,说明学习循环正在工作。

安全吗?七层防护体系

这是很多人关心的问题——特别是从 OpenClaw 迁移过来的用户。Hermes 的安全设计是防御纵深模型,有七层安全边界:

第一层:用户授权

谁可以和 Agent 交互?通过白名单控制:

TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=111222333444555666

如果没配白名单,默认拒绝所有用户。还支持 DM 配对码系统——陌生人给 Bot 发消息会收到一个 8 位配对码,Bot 主人在 CLI 中审批后才永久授权。配对码有 1 小时有效期、速率限制(每用户每 10 分钟 1 次)、5 次失败锁定 1 小时。

第二层:危险命令审批

Hermes 维护一个危险命令模式列表(rm -rf、DROP TABLE、dd if= 等 30+ 种模式)。命中后必须用户明确批准。

三种审批模式:

  • manual(默认):所有危险命令都需要用户确认
  • smart:用辅助 LLM 评估风险,低风险自动通过,高风险自动拒绝,不确定的问用户
  • off:关闭所有审批(仅限可信环境)

在消息平台上,Bot 会发送审批请求:"这个命令可能有危险,回复 yes 批准或 no 拒绝"。

第三层:硬性黑名单

有些命令是绝对不执行的,即使在 YOLO 模式下也不行:

模式 为什么被禁
rm -rf / 擦除文件系统根
:(){ :|:& };: Bash fork 炸弹
dd if=/dev/zero of=/dev/sd* 清零物理磁盘
mkfs.* 格式化文件系统

黑名单在审批层之前拦截,没有覆盖开关。

第四层:容器隔离

使用 Docker 后端时,每个容器都运行在严格加固下:

  • 丢弃所有 Linux 能力(--cap-drop ALL),仅保留必要的文件操作能力
  • 阻止权限提升(no-new-privileges
  • 限制进程数(256 个 PIDs)
  • /tmp/var/tmp/run 使用大小受限的 tmpfs
  • 可配置 CPU、内存、磁盘限制

在容器后端中,危险命令检查被跳过——因为容器本身就是安全边界,即使删掉容器内所有文件也不影响宿主机。

第五层:MCP 凭证过滤

MCP 子进程只收到过滤后的环境变量(PATH、HOME、USER 等基础变量),所有 API Key 和密钥被自动剥离。只有你在配置中明确指定的变量才会传递。错误信息中的敏感凭证(如 ghp_...sk-...)会被替换为 [REDACTED]

第六层:上下文文件注入防护

AGENTS.md、.cursorrules 等上下文文件会被自动扫描,检测提示注入攻击——包括"忽略之前指令"模式、隐藏 HTML 注释、尝试读取密钥文件、Unicode 隐形字符等。有问题的文件直接阻断加载。

第七层:SSRF 防护

所有 URL 工具(搜索、浏览器、视觉)在请求前验证 URL,阻止访问私有网络(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)、回环地址、云元数据端点(169.254.169.254)等。重定向链在每一跳都重新验证。

七层安全防护体系

和 OpenClaw 的安全对比

安全特性 Hermes Agent OpenClaw
危险命令审批 三种模式 + LLM 辅助 基本模式
硬性黑名单 有,不可覆盖 有限
容器隔离加固 严格(能力剥离 + 资源限制) 基础
SSRF 防护 内置,默认开启 无原生支持
提示注入检测 自动扫描上下文文件
MCP 凭证隔离 自动过滤 + 脱敏 无原生 MCP 支持
DM 配对系统 密码学安全配对码
更新签名验证 SHA-256 + cosign

Hermes 的安全团队响应速度也很快——v0.7.0 修复了 168 个 PR 中的大量安全相关 Issue,包括网关竞态条件、审批路由漏洞等。

Token 消耗:实际花多少钱

先说结论:Hermes 的单次调用 Token 消耗比普通 Agent 高约 20%,但每次有用结果的成本更低。

为什么消耗更高

每次 API 调用,Hermes 除了发送你的消息和 Agent 回复外,还会携带:

  • 系统提示(技能库摘要、用户模型、记忆上下文)
  • 工具定义(40+ 工具的描述)
  • 会话历史

根据社区测试(GitHub Issue #4379),每次调用的固定开销约 13,900 个 Token(约占总消耗的 73%)。这意味着:

  • 短对话成本较高:简单问题也要支付固定开销
  • 长对话成本摊薄:多轮对话中,固定开销占比下降

技能文档采用渐进披露模式:Agent 默认只看到技能名称和描述(约 3000 Token),只有相关时才加载完整内容。

怎么控制成本

1. 选对模型

不同模型的价格差异巨大。发送 100 万输出 Token:

  • Claude Opus 4.5:约 $25
  • Gemini 2.5 Flash-Lite:约 $0.075

Hermes 支持按场景切换模型——日常对话用便宜的模型(如 Flash-Lite),复杂任务切到强力模型(如 Opus),一行命令搞定。

2. 用 MiniMax Token 方案

社区推荐 MiniMax 的 $10/月 Token 计划,在 M2.7 模型上每 5 小时窗口可发 1500 次请求。适合中高强度使用。

3. 利用子 Agent 节省 Token

通过 Python RPC 脚本把多步管道压缩成零上下文开销的单次操作——中间步骤在子 Agent 中执行,不消耗主会话的上下文窗口。

4. 后台任务自动压缩

YouTube 上的实测视频显示,Hermes 的后台任务 Token 优化可以节省 85% 以上的消耗。后台任务不携带完整技能库,只加载必要上下文。

5. 定期压缩上下文

在对话中使用 /compress 命令压缩上下文窗口,减少后续调用的 Token 数量。

费用估算

使用模式 模型 月费用估算
轻度使用(每天 10-20 次对话) GPT-4o $5-15
中度使用(每天 50-100 次) MiniMax M2.7 $10(Token 方案)
重度使用(每天 200+ 次) Gemini Flash + Opus 混合 $20-50
团队使用(5 人,每天 500+ 次) OpenRouter 多模型 $50-150

最低要求:模型上下文窗口至少 64,000 Token。

Token 费用估算

参考资料

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。