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用户输入
2 ↓
3读取会话历史和上下文
4 ↓
5组装 system prompt 与工具 schema
6 ↓
7调用模型
8 ↓
9模型返回文本或 tool call
10 ↓
11执行工具并写回结果
12 ↓
13继续循环,直到得到最终回答
14 ↓
15持久化会话、记忆和任务状态这个循环让 Hermes Agent 不只是“生成文本”,而是可以连续思考、调用工具、读取结果、修正计划,再继续执行。
五个基础模块
1. Prompt 组装
Hermes 会把多个来源的上下文组装成最终提示词,包括:
SOUL.md:agent 的身份和默认行为MEMORY.md:跨会话长期记忆USER.md:用户画像- 项目上下文:
.hermes.md、AGENTS.md、CLAUDE.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 的成长来自三件事:
- 它会保存跨会话记忆
- 它会从复杂任务中沉淀 Skill
- 它能通过会话搜索复用过去经验
普通聊天机器人通常只依赖当前上下文。Hermes Agent 则试图把经验变成可检索、可复用、可改进的系统状态。
这也是它和很多一次性 agent demo 最大的区别。
初学者应该抓住的主线
理解 Hermes Agent,不要从所有工具和命令开始背。先抓住这条主线:
1入口负责接收任务
2AIAgent 负责循环编排
3Prompt Builder 负责上下文
4Provider 负责模型
5Tools 负责行动
6Storage 负责记忆
7Gateway 负责多平台
8Skills 负责经验复用只要这条线清楚,后面的 MCP、cron、subagent、profile、plugin 都能放到正确位置。
参考资料: