Hermes Agent 架构基础:一个会成长的 Agent 如何组成

这里说的 Hermes,不是 React Native 的 Hermes JavaScript 引擎,而是 Nous Research 的 Hermes Agent。

Hermes Agent 的核心定位是“会随使用成长的 AI agent”。它不是只在一次对话里回答问题,而是把模型调用、工具执行、长期记忆、技能沉淀、会话搜索、消息网关和定时任务组合成一个长期运行的系统。

如果只把它看成一个聊天机器人,很容易看错重点。Hermes Agent 真正有意思的地方,在于它把一次次任务沉淀成可复用的上下文和能力。

一张简化架构图

官方架构里,Hermes Agent 的入口很多,但最终都会落到核心的 AIAgent

1CLI / Gateway / API / Batch / Python Library 2 | 3 v 4 AIAgent 5 | 6 |-- Prompt Builder 7 |-- Provider Resolution 8 |-- Tool Dispatch 9 |-- Compression & Caching 10 | 11 |-- Session Storage 12 |-- Tool Backends

换成更直观的话:

  • CLI、Telegram、Discord、Slack 等都是入口
  • AIAgent 是核心编排器
  • Prompt Builder 负责把身份、项目上下文、记忆、技能组装进提示词
  • Provider Resolution 负责选择模型和 API 模式
  • Tool Dispatch 负责把模型选择的工具真正执行起来
  • Session Storage 负责保存会话和搜索历史
  • Gateway 负责多平台消息接入

核心不是模型,而是循环

Hermes Agent 的中心不是某一个大模型,而是 agent loop。

一个典型回合大概是:

1用户输入 23读取会话历史和上下文 45组装 system prompt 与工具 schema 67调用模型 89模型返回文本或 tool call 1011执行工具并写回结果 1213继续循环,直到得到最终回答 1415持久化会话、记忆和任务状态

这个循环让 Hermes Agent 不只是“生成文本”,而是可以连续思考、调用工具、读取结果、修正计划,再继续执行。

五个基础模块

1. Prompt 组装

Hermes 会把多个来源的上下文组装成最终提示词,包括:

  • SOUL.md:agent 的身份和默认行为
  • MEMORY.md:跨会话长期记忆
  • USER.md:用户画像
  • 项目上下文:.hermes.mdAGENTS.mdCLAUDE.md.cursorrules
  • Skills index:可用技能列表
  • 平台提示:CLI、Telegram、Slack 等不同入口的表达约束

这一步很关键,因为 Agent 能不能稳定工作,取决于它每一轮到底看到了什么上下文。

2. Provider Runtime

Hermes Agent 不绑定单一模型。它可以接入 OpenRouter、Nous Portal、OpenAI Codex、Anthropic、Gemini、DeepSeek、Kimi、Ollama、LM Studio 以及自定义 OpenAI-compatible endpoint。

这层的意义是:上层 Agent Loop 不需要关心具体模型来自哪里。模型供应商、API 模式、base URL、API key 和 fallback 都由 runtime resolver 处理。

3. Tool Runtime

Agent 要能做事,就必须能调用工具。

Hermes 的工具系统使用注册表模式:工具模块在加载时注册自己的名称、schema、handler、可用性检查和所属 toolset。模型看到的是工具 schema,真正执行时由 registry dispatch 到对应 handler。

这使得工具可以被分组、过滤、动态启用,也方便 MCP 和插件扩展。

4. Session Storage

Hermes 使用 SQLite 存储会话元数据、消息历史、模型配置和全文搜索索引。它不是只保留当前窗口里的上下文,而是把历史沉淀下来。

这让 session_search 成为可能:当用户提到过去的任务时,Agent 可以搜索旧会话,而不是要求用户重新解释。

5. Gateway

Gateway 让 Hermes 不只存在于终端里。Telegram、Discord、Slack、WhatsApp 等平台的消息会先被 adapter 标准化,再交给 GatewayRunner,最后进入 AIAgent

这就是为什么 Hermes 可以“住在你常用的聊天工具里”,而不是必须一直开着某个 IDE。

为什么它会“成长”

Hermes Agent 的成长来自三件事:

  1. 它会保存跨会话记忆
  2. 它会从复杂任务中沉淀 Skill
  3. 它能通过会话搜索复用过去经验

普通聊天机器人通常只依赖当前上下文。Hermes Agent 则试图把经验变成可检索、可复用、可改进的系统状态。

这也是它和很多一次性 agent demo 最大的区别。

初学者应该抓住的主线

理解 Hermes Agent,不要从所有工具和命令开始背。先抓住这条主线:

1入口负责接收任务 2AIAgent 负责循环编排 3Prompt Builder 负责上下文 4Provider 负责模型 5Tools 负责行动 6Storage 负责记忆 7Gateway 负责多平台 8Skills 负责经验复用

只要这条线清楚,后面的 MCP、cron、subagent、profile、plugin 都能放到正确位置。

参考资料: