Hermes Agent 原理与实战——第1章 Hermes Agent 简介与核心理念
1.1 Hermes Agent 介绍
1.1.1 Hermes Agent是什么
Hermes Agent(以下简称 Hermes)是由 Nous Research 构建的开源、自进化通用型 AI 智能体(Self-Improving AI Agent)。它并非某个大语言模型的简单封装,也不是传统意义上的 IDE 插件,而是一套完整的 Agent Harness(智能体 Harness)——一个赋予 AI 模型自主思考、调用工具、记忆持久化、自我迭代进化、跨平台交互的底层运行时系统。
官方对其的定义:
“The self-improving AI agent built by Nous Research. It’s the only agent with a built-in learning loop — it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions.”
翻译过来就是:**Hermes **是由Nous Research打造的可自我迭代优化的AI 智能体。它是目前唯一内置学习闭环的Agent:会在实操经验中自主创建技能(Skill)、并在使用过程中持续优化技能;主动触发将重要事实写入持久化记忆、检索历史会话记录,并在跨会话交互中不断完善对你的深度用户画像模型。它既能在 5 美元的 VPS 上运行,也能在 GPU 集群上运行;它不限定于你的笔记本——你可以一边在 Telegram 上跟它聊天,一边让它在云端 VM 上执行复杂任务。
Hermes 采用 MIT 开源协议:
仓库地址:github.com/NousResearch/hermes-agent
官方文档:hermes-agent.nousresearch.com/docs
1.1.2 七条关键特性
官方 README 给出了 Hermes 的七条关键特性:
- 真正的终端界面:完整的 TUI(文本用户界面),支持多行编辑、斜杠命令自动补全、对话历史浏览、随时打断/重定向、流式工具输出。
- 走到哪用到哪:对接Telegram、Discord、Slack、WhatsApp、Signal、企业微信、飞书、钉钉、Email、SMS、Home Assistant 等 20+ 平台,共享同一个 Gateway 进程;语音消息可转写、跨平台对话连续性。
- 闭环的学习能力:智能代理自主维护记忆库并定期唤醒上下文;复杂任务后自主创建技能;技能在使用过程中中自我改进;基于 FTS5 全文检索会话配合 LLM 摘要实现跨会话回溯;可选接入 Honcho 实现辩证式用户建模;技能格式兼容 agentskills.io 开放标准。
- 内置定时调度:原生 Cron 调度器,结果可投递到任意平台;每日报告、夜间备份、周度审计都可以用自然语言描述、无人值守运行。
- 任务委托与并行:通过
delegate_task启动多个隔离子代理并行工作;通过execute_code工具,模型可以编写 Python 脚本通过 RPC 直接调用 Hermes 的工具集,把多步流水线压缩成一次推理。 - 随处运行:6 种终端后端——
local、docker、ssh、daytona、modal、singularity。Daytona 和 Modal 提供 Serverless 持久化——代理环境空闲时休眠、按需唤醒,空闲期间几乎零成本。 - 研究就绪:批量轨迹生成、轨迹压缩,可以直接用于训练下一代工具调用模型。
1.2 为什么会有 Hermes
1.2.1 当前 Agent 工具的结构性问题
如果你使用过 Cursor、Cline、Claude Code、Aider 等主流编程 Agent,一定会发现它们普遍存在几个结构性缺陷:
-
第一,高度绑定 IDE 环境,且多数锁定单一模型服务商。Cursor 深度依赖 Anthropic 与 OpenAI,Claude Code 绑定 Claude 模型。即便部分工具允许手动切换模型,更换后交互稳定性、代码工具调用能力往往会出现不可控的衰减,导致开发者被禁锢在厂商封闭生态中,形成厂商锁定。
-
第二,缺乏持久记忆。每个新会话都从零开始。上周花了一个小时向 Agent 解释的复杂业务逻辑、项目架构约束、个人编码偏好,在新的会话窗口中全部清零,需要反复重新灌输上下文。
-
第三,学习不闭环。即便某些工具支持"项目规则文件"或"Prompt Template",它们也都是用户手动维护的静态配置。模型本身不会从成功的经验中沉淀技能,不会主动调整行为模式,不会越用越"懂"你。
-
第四,无法远程运行。Agent 只能运行在打开 IDE 的那台电脑上,关闭电脑它就停止工作。想让 Agent 在后台持续执行任务,同时在手机上查看进度和交互,几乎是不可能的。
-
第五,多平台体验割裂。在 IDE 里是一个 Agent,在 Telegram 里是另一个 Bot,在 Slack 里又是一个 Webhook 服务。它们彼此互不知情、不共享记忆、不继承上下文,形成信息孤岛。
Hermes 的设计就是从根上解决这些问题。
1.2.2 Hermes 的核心理念
理解 Hermes 的设计哲学,最关键的就是:不要把它当作"一次性问答工具",而要把它看作一个长期运行、跨设备、跨平台、持续学习进化的智能体。
| 核心问题 | Hermes 的回答 |
|---|---|
| 怎么记住我? | 写入 MEMORY.md(环境/约定)和 USER.md(用户画像),每次启动注入系统提示;可选 Honcho 做更深层用户建模 |
| 怎么沉淀经验? | 自主创建 Skill(一段可复用的"做某事的步骤说明"),保存到 ~/.hermes/skills/,下次匹配自动加载 |
| 怎么在不同地方都能用? | Gateway 单进程同时驱动 15+ 消息平台;CLI / API 服务器 / ACP IDE 协议三个本地入口 |
| 怎么不被某个模型卡住? | 采用降级熔断链路:Provider 抽象 + Fallback 链 + Credential Pool;执行一行 hermes model命令即可快速切换 200 +模型 |
| 怎么不被某台机器卡住? | 内置6种终端后端(terminal backend),可在本地、容器、远端 SSH、Daytona、Modal、Singularity 跑命令 |
| 怎么主动干活? | Cron 调度 + 自然语言任务,例如:“每日上午 9 点抓取 Hacker News 资讯并推送至 Telegram” |
| 怎么和团队协作? | Kanban 多 Profile 协同 + Webhook + ACP协议,多个命名 Agent 通过 SQLite 共享状态 |
也就是说,Hermes 拓宽了 AI 助理的能力边界:不再局限于打开 IDE 才可用,而是做到全天候在线服务,跨设备、跨平台、跨会话上下文持续记忆与连贯执行。
1.2.3 与 OpenClaw / Claude Code / OpenCode 的关系
- OpenClaw:项目基于 TS 开发,主打多平台网关调度 + 海量社区技能生态,无自主进化能力。Hermes 是其能力升级版,内置
hermes claw migrate一键迁移命令,可完整迁移 OpenClaw 的记忆文件、人设、技能、API 密钥、多 Agent 配置等全量核心资产,生态高度兼容。 - Claude Code:Anthropic 官方闭源工具,深度绑定 Claude 系列模型,核心优势是大型代码库深度解析与工程重构,主打专业编码场景。
- OpenCode:轻量化底层 CLI 开源AI编码工具,主打极简终端代码操作,架构轻便、聚焦单一编码场景。
- Hermes Agent 核心差异化:区别于另外三款工具,完整自进化学习闭环、Honcho 动态用户画像、FTS5+LLM 跨会话记忆摘要、强隔离并行子代理、多终端后端、多 Agent 团队协同等核心能力,定位是可长期成长的通用 Agent 运行时平台。
它们之间可搭配组合使用,实操协作方案:Claude Code/OpenCode 负责专项编码工作,Hermes 承担长期记忆沉淀、自主进化、复杂任务自动化与多 Agent 团队调度,依托 MCP 协议实现互通。
1.3 五大核心特性概览
后续章节会深入剖析架构细节,这里先把 Hermes 五大最具差异化的能力做个全景预览,帮助您建立整体认知框架。
(1) 特性一:自学习闭环(Closed Learning Loop)
这是 Hermes 区别于绝大多数 Agent 的核心竞争力。它由四个互相啮合的组件构成:
- Memory:通过
memory工具读写~/.hermes/memories/MEMORY.md(约 800 token,记录环境约定与项目规范)和USER.md(约 500 token,记录用户画像与个人偏好)。系统提示在每次会话开始时将这些文件冻结成快照注入上下文,确保 Agent 始终"记得"你是谁、你们约定过什么。; - Skills:智能体在完成复杂任务后,可以把可复用的步骤、注意事项、验证方式写成
SKILL.md,保存到~/.hermes/skills/<skill-name>/目录。下次遇到同类问题时,系统会自动匹配并加载相关技能。 - Session Search:所有历史会话都存在 SQLite + FTS5 中;通过
session_search工具,Agent 可以搜索"我上周怎么处理过 GraphQL schema 迁移的"。系统会返回相关会话的摘要、关键工具调用,让结果更精炼。 - Curator + Honcho:Curator 子系统会定期"提示"Agent 整理和压缩记忆,防止记忆文件无限膨胀。Honcho 则提供更高级的辩证式用户模型(Dialectic User Modeling),通过与用户的持续对话不断修正和深化用户画像,把用户画像维护得越来越准。
(2)特性二:模型与运行环境双解耦
一行命令切换模型:
|
|
支持的供应商极其广泛:Nous Portal、OpenRouter、Anthropic、OpenAI/Codex、Z.AI/GLM、Kimi/Moonshot(含中国区)、MiniMax(含中国区)、Alibaba DashScope(Qwen)、HuggingFace、KiloCode、OpenCode Zen/Go、DeepSeek、NVIDIA NIM、GitHub Copilot、Vercel AI Gateway、自定义 OpenAI-Compatible 端点(vLLM、SGLang、Ollama、LMStudio)等。
在运行环境层面,Hermes 支持 6 种终端后端:可以让 Hermes 在local执行命令,也可以在 docker 沙箱、ssh 远端、daytona 云开发环境、modal 无服务器函数、singularity HPC 容器中跑同一组工具。
一行命令切换终端:
|
|
这种双解耦设计意味着:你可以用最强的 Claude 模型做代码审查,同时让命令在 docker 的隔离沙箱中执行;或者在国内网络环境下使用 Kimi 模型,而计算任务跑在新加坡的 Modal 实例上。
(3)特性三:多平台网关(Gateway)
hermes gateway start 启动一个进程,同时连接:Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、Email、SMS、企业微信、飞书、钉钉、QQ 机器人、Yuanbao、BlueBubbles、Webhooks、Open WebUI、Home Assistant 等。每个平台都有独立的 adapter,但共享同一个 Agent、同一份记忆、同一份技能。
国内开发者最关心的几条平台:WeCom(企业微信)、Feishu(飞书)、DingTalk(钉钉)、Weixin(个人微信,配合 HermesClaw 桥接)、QQ Bot、Yuanbao 都已经原生支持。
(4)特性四:丰富的工具集与子代理
Hermes 自带 68 个内置工具,按 toolset 逻辑组织为 52 个工具集:
| 类别 | 代表工具 | 说明 |
|---|---|---|
| 文件操作 | read_file、write_file、patch、search_files |
读写、编辑、搜索项目文件 |
| 终端执行 | terminal、process |
执行 Shell 命令和管理进程 |
| Web 搜索 | web_search、web_extract |
网络信息检索与页面内容提取 |
| 浏览器自动化 | browser_navigate、browser_click、browser_screenshot 等 10 个 |
覆盖导航、点击、表单、视觉、截图等 |
| 媒体处理 | vision_analyze、image_generate、text_to_speech |
图像分析、生成、语音合成 |
| 智能编排 | todo、clarify、execute_code、delegate_task |
任务管理、澄清、代码执行、子代理委派 |
| 记忆与检索 | memory、session_search |
记忆读写、历史会话检索 |
| 自动化与投递 | cronjob、send_message |
定时任务与消息投递 |
| 第三方集成 | ha_*(Home Assistant)、动态 mcp-<server> 工具、rl_*(RL 训练) |
智能家居、MCP 协议、RL 训练 |
特别值得关注的:
-
delegate_task工具让 Agent 可以并行启动多个子代理处理独立分支,默认并发运行 3 个子 Agent(可配置)。 -
execute_code则允许模型直接编写 Python 脚本,通过 RPC 调用 Hermes 的工具集,将多步流水线压缩为一次 LLM 推理调用——这被称为"程序化工具调用(Programmatic Tool Calling)"。
(5) 特性五:内置 Cron + Kanban + Webhook——自动化"操作系统"
-
Cron 定时任务
原生 cron 调度器,用自然语言或标准 cron 表达式安排周期/一次性任务,执行结果可投递到任意消息平台:
1 2 3 4 5# 自然语言创建定时任务 hermes cron add "每天早 9 点扫 Hacker News Top 10,发到 Telegram" # 标准 cron 表达式 hermes cron add --expression "0 2 * * 1" --task "weekly-db-backup" --platform email -
Kanban 任务板
基于 SQLite 的多 Profile 任务板系统。多个命名 Agent(如 dispatcher、researcher、writer、reviewer)可以通过任务板协作,每个任务都是一行可被人类和其它 Agent 读写的记录。这种设计使得 Hermes 可以充当一个小型"Ops 团队"的协调中枢。
-
Webhook 事件入口
Gateway 暴露 webhook 入口,你可以让 GitHub PR 事件触发"PR Review Agent",让 Stripe 支付事件触发"客户告知 Agent",让 Prometheus 告警触发"故障排查 Agent"。
1.4 Hermes 与同类项目的对比
| 维度 | Cursor / Cline | Claude Code | Aider | OpenClaw | Hermes Agent |
|---|---|---|---|---|---|
| 形态 | IDE 插件 | CLI / IDE | CLI | Gateway + CLI + 50+ 消息平台 | CLI + 多平台 Bot + API + ACP |
| 模型自由度 | 较高 | 仅 Claude | 较高 | 极高(任意 LLM + 本地 Ollama) | 极高(多提供商 + 本地 Ollama) |
| 持久记忆 | 有限 / 项目规则 | 无原生 | 无原生 | MEMORY.md分层文件记忆 | MEMORY.md + USER.md + Honcho 辩证用户建模 |
| 自创建技能 | 否 | 否 | 否 | 依赖 ClawHub 商店手动安装技能,任务完成后无自生成新技能 | 任务后自动创建、使用中迭代优化 |
| 跨会话检索 | 否 | 否 | 否 | BM25 + 向量混合检索,无 LLM 摘要压缩 | FTS5 全文检索 + LLM 会话摘要回溯 |
| 远程后端 | 否 | 否 | 否 | 本地 / Docker / 基础 SSH | local/docker/ssh/daytona/modal/ singularity 共 6 种终端后端 |
| 多消息平台 | 否 | 否 | 否 | 20 + 海外主流 IM,国内适配薄弱 | 20 + 原生海外平台 + 国内 IM 兼容适配 |
| Cron 自动化 | 否 | 否 | 否 | 原生 Cron 定时任务、Webhook 触发 | 原生 Cron + Kanban 看板调度 + Webhook 联动 |
| 子代理并行 | 有限支持 | 支持 | 否 | 单体架构为主,多 Agent 隔离性弱 | delegate_task 委派 + Kanban 多配置集并行,进程级故障隔离 |
| 协议互通 | MCP | MCP | 否(可作为 MCP Server) | MCP | **MCP + ACP(Agent Client Protocol ,智能体客户端协议) ** |
| 开源协议 | 闭源 | 闭源 | Apache | MIT | MIT |
选型建议:
- 选 Cursor / Cline:如果你 90% 的需求是在 IDE 里写代码、改 Bug,且习惯图形化界面。
- 选 Claude Code:如果你深度依赖 Claude 模型,需要企业级代码审查与 SOC2 合规,且不介意闭源生态锁定。
- 选 Aider:如果你熟悉终端工作流,需要轻量、快速的编码辅助,且偏好 Apache 开源协议。
- 选 OpenClaw:如果你需要一个简单、稳定、7×24 在线的消息网关,且以海外平台为主。
- 选 Hermes:如果你需要一个会成长、跨平台、跨设备、可自动化的长期助理——它不一定在单次编码体验上胜过 Claude Code,但它是唯一把"持久记忆 + 自学习 + 多平台 + 多后端 + 开源"作为一等公民的完整运行时。
Hermes 的差异化竞争力不在"单点 IDE 体验",而在"作为长期 Agent 运行时的整体性"。如果你的目标是:
- 想用 任意大模型(包括国内 Kimi、MiniMax、GLM、DeepSeek等)做一个 24/7 在线、跨平台、有记忆的助理;
- 希望它自己沉淀经验,下次同类问题更聪明;
- 希望它跑在云端,你的笔记本一关它依然在工作;
- 希望它对接 IM / 邮件 / SMS / Webhook / Home Assistant / 企业微信 /钉钉/飞书等;
- 同时还希望保留完整可控、可定制、开源 MIT 的底盘;
那么 Hermes 是目前开源生态中唯一的架构最完整的选项。
1.5 学完本教程你能做到什么
学完本教程后,你将能够:
- 理解 Hermes 的架构与核心组件,能根据需要在 CLI、Gateway、API、ACP、批处理等入口之间切换。
- 完成完整的安装与初始化:包括选择供应商、配置 API Key、调试
hermes doctor、迁移旧 OpenClaw。 - 熟练使用 CLI/TUI:所有重要的斜杠命令、键位、会话管理、checkpoint/rollback、profile 切换。
- 配置多模型与故障切换:理解
chat_completions/codex_responses/anthropic_messages三种 API 模式,配 fallback 链、credential pool、provider routing,掌握上下文压缩与缓存优化。 - 管理工具与终端后端:按平台启用/禁用 toolset,让 Agent 在 docker / ssh / daytona / modal 中跑命令。
- 设计 Prompt 与上下文工程:编写
SOUL.md身份文件、切换 personality 预设、使用@file/@folder/@git-diff/@url上下文引用、管理自动加载的项目上下文文件。 - 构建闭环学习:写记忆、读记忆、创建/启用/分享技能、管理 Skills Hub、用 session_search 检索过去,接入 Honcho / Mem0 等外部记忆后端。
- 接入 MCP:配置本地 stdio 与远程 HTTP MCP server ,按 server 过滤工具。
- 搭建多平台 Gateway:上线 Telegram、Discord、Slack、企业微信、飞书、钉钉、Email、Webhook。
- 设计 Cron 自动化与长期任务编排:每日简报机器人、GitHub PR Review Agent、定时巡检脚本,用
/goal设定持久目标并追踪状态。 - 使用语音、视觉、浏览器、子代理、Kanban:使用 Hermes 搭建一个"小型 ops 团队"。
- 扩展生命周期与可视化:编写 Event Hooks、启动 Web Dashboard 监控 Token 与成本、定制皮肤主题。
- 写自己的 Plugin / Memory Provider / Context Engine / Platform Adapter,并把它打包分发。
- 安全加固与生产运维:危险命令白名单、容器隔离、DM Pairing、Credential 安全透传、性能调优与生产部署。
- 结合批处理、RL 环境、Trajectory 做模型训练数据生成:把 Hermes 用作研究工具。
1.6 学习前的准备
- 基本的 Linux/macOS shell 使用( bash/zsh 基础语法,环境变量配置、文件权限、进程查看、cron 概念)
- Python 3.11+(Hermes 默认通过
uv自动装好) - 提前准备好至少一个可用的大模型服务商密钥(如 Claude、OpenAI、通义千问、DeepSeek 等),用于 Hermes 初始化对接模型。或Ollama、vLLM 等本地私有化部署大模型,实现离线调用。
- 硬件:本地 macOS/Linux/WSL2(window环境)/Termux(Android)都支持。Windows 原生也支持(除 Dashboard PTY 终端外,其余功能均可原生运行)。