Hermes Agent 的三层架构是什么?

发布时间:2026/10/11 3:59:52

Hermes Agent 的三层架构是什么? 一、系统整体三层架构官方 Architecture 图对照源码hermes-agent仓库整个系统自上而下就是三层┌─────────────────────────────────────────────────────────┐ │ ① 接入层 Entry Points入口 │ │ CLI (cli.py) │ Gateway (gateway/run.py) │ ACP │ │ Batch Runner │ API Server │ Python Library │ ├─────────────────────────────────────────────────────────┤ │ ② 核心层 AIAgentrun_agent.py决策与推理 │ │ Prompt Builder → Provider Resolution → Tool Dispatch │ │ Context Compression Caching3 种 API 模式 │ ├─────────────────────────────────────────────────────────┤ │ ③ 执行与存储层 │ │ Session StorageSQLite FTS5 全文检索 │ │ Tool Backends终端(7种) │ 浏览器(5种) │ Web(4种) │ MCP │ └─────────────────────────────────────────────────────────┘各层职责层职责关键点接入层接收所有来源的请求6 个入口最终都汇聚到同一个AIAgent类平台差异只存在于入口不进核心核心层决策与推理循环Prompt 组装stable→context→volatile 三层提示词→ Provider 解析18 供应商→ 工具分发70 工具→ 上下文压缩与缓存。同步编排可中断、可观测执行与存储层落地能力SQLite 会话持久化FTS5 全文搜索、父子会话谱系追踪 可插拔工具后端Local/Docker/SSH/Modal 等 7 种终端后端核心设计理念平台无关的核心Platform-agnostic core——AIAgent一个类服务所有入口这就是三层分层的灵魂。二、另一个流传的三层说法Agent → Gateway → Connector市面上有些教程会写成Agent 核心决策与推理Gateway消息路由与平台适配gateway/目录25 平台适配器Connector平台加密与身份边界gateway/platforms/下的信号、微信、QQBot、飞书等 adapter这其实和上面的官方三层是同一架构的不同切法它把接入层里的 Gateway 单独拎出来细讲了。在代码里对应gateway/run.py消息分发→gateway/session.py会话持久化→gateway/platforms/各平台加密与协议适配比如飞书网关就把异步重投、限流、加密、token 刷新全部收敛进平台无关的抽象里。三、容易被混淆的其他三层Hermes 文档里还有两种三层别搞混记忆三层解决跨会话遗忘的核心工作记忆当前会话上下文语义长期记忆MEMORY.md / USER.md事实与偏好有字符硬上限情节记忆SQLite FTS5全部历史对话可全文检索召回Prompt 三层系统提示词组装顺序stable身份/工具指南/技能→context上下文文件→volatile记忆/Profile/时间戳。这个分层是为了保持 prompt 缓存稳定stable 部分不随对话变化Anthropic 缓存断点命中率最高。小结如果你问的是对外 → 核心 → 执行这层宏观结构接入层CLI/Gateway/ACP/API→ Agent 核心层AIAgent 推理循环→ 执行与存储层工具后端 SQLite层层解耦、每层可独立扩展替换——这正是 Hermes 能任意部署 自我进化的架构基础。
延伸阅读

更多相关文章

2026/10/10 14:52:26

SpringBoot集成数据库连接池的配置要点与性能考量

数据库连接池从来不是SpringBoot的附属品。当你的服务在压测中突然出现“Connection is not available”的异常,当数据库CPU飙升而应用线程却集体阻塞,问题往往不在SQL,而在那个被默认参数掩盖的连接池。连接池的配置,本质上是将数…

2026/10/6 21:29:06

Java面试官最看重的几个能力,你具备了吗

面试桌对面坐着的考官,翻完简历后抬头看你。那瞬间的迟疑,往往不是因为你学历不够亮眼,也不是项目经历有硬伤,而是短短几轮问答里,他没能从你身上嗅到“能干活、扛得住事、聊得来”的混合气息。Java岗位的竞争早已从“…

2026/10/11 3:57:38

Cursor 20美元订阅在Agent时代为何成了亏本生意?

我先理清这篇文章要表达的核心观点:Cursor 的 20 美元包月订阅,放在 agent 时代越来越像一门亏本生意。用户侧的亏,是活儿越来越多、额度越来越不够用;厂商侧的亏,是每个 agent 任务背后都在烧真金白银的算力。这篇文章…

2026/10/11 3:57:38

ViT小数据微调猫狗分类实战:避开5大参数坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑