OpenClaw 企业定制 私人订制工作流 优化运维 openclaw记忆优化 问题咨询解决 请加微信交流
微信: aixbwz
了解Hermes Agent的内部架构,能帮你更好地配置和使用它。Hermes的设计非常模块化,核心组件各司其职,通过标准接口通信。这篇用通俗的语言讲清楚Hermes是怎么工作的、各组件之间什么关系、以及这种设计的好处。
整体架构图
Hermes Agent由以下核心组件构成:
- Honcho:运行环境管理器
- Gateway:消息网关
- Agent Core:AI推理核心
- Memory System:记忆系统
- Skills Engine:技能引擎
- Tools Manager:工具管理器
- MCP Client:MCP客户端
┌─────────────┐
│ Gateway │ ← Telegram/Discord/Slack...
└──────┬──────┘
│
┌──────▼──────┐
│ Agent Core │
└──────┬──────┘
│
┌───────────┼───────────┐
│ │ │
┌───▼───┐ ┌────▼────┐ ┌───▼───┐
│Memory │ │ Skills │ │Tools │
│System │ │ Engine │ │Manager│
└───┬───┘ └─────────┘ └───┬───┘
│ │
└─────────┬───────────┘
│
┌──────▼──────┐
│ Honcho │
│ (Runtime) │
└─────────────┘
各组件详解
Honcho:运行环境管理器
Honcho负责代码执行的环境:
- 管理6种后端:local、docker、ssh、daytona、singularity、modal
- 处理代码的沙箱隔离
- 管理环境休眠和恢复
- 处理serverless冷启动
当AI需要执行代码时,Honcho负责启动环境、执行代码、返回结果。
Gateway:消息网关
Gateway负责和外部世界通信:
- 接收来自各平台的消息(Telegram、Discord、Slack等)
- 把消息转发给Agent Core
- 把AI回复发送回对应平台
- 处理多平台并发会话
Gateway支持的平台:
Telegram、Discord、Slack、WhatsApp、Signal、
Matrix、Mattermost、Email、SMS、
DingTalk、Feishu、WeCom...
Agent Core:AI推理核心
这是Hermes的大脑:
- 管理对话上下文
- 决定调用哪些工具
- 调用LLM生成回复
- 协调各组件工作
Agent Core不直接执行代码,只做决策和协调。
Memory System:记忆系统
Hermes的记忆系统让AI能跨会话记住信息:
- FTS5索引:全文搜索跨会话记忆
- LLM摘要:自动压缩长记忆
- 记忆nudge:AI主动提醒重要信息
- 用户建模:了解用户偏好
对话 → 提取事实 → FTS5索引存储 → 需要时召回
Skills Engine:技能引擎
Skills是Hermes的”学习到的经验”:
- 从经验中创建Skill
- Skill自我改进
- Skill被复用和完善
- 跨会话持久化
Skill文件格式:SKILL.md + 脚本 + 配置文件。
Tools Manager:工具管理器
管理47个内置工具:
- 文件操作:read_file、write_file、patch
- 代码执行:execute_code、jupyter
- 网页操作:browser_navigate等
- Git操作:git系列
- 系统操作:terminal等
工具通过标准化接口接入,可扩展自定义工具。
MCP Client:MCP客户端
连接MCP服务器:
- 和MCP服务器通信
- 调用远程工具
- 处理工具结果
- 管理MCP连接生命周期
消息流转过程
当你在Telegram上给Bot发消息时,发生了什么:
1. Telegram服务器推送消息到Gateway
2. Gateway解析消息,提取发送者、频道、内容
3. Gateway检查用户白名单,确认有权限
4. Gateway把消息转发给Agent Core
5. Agent Core加载用户会话上下文(Memory)
6. Agent Core调用LLM,传入用户消息+上下文
7. LLM决定需要调用哪些工具
8. Agent Core通过Tools Manager执行工具
9. 工具执行结果返回给Agent Core
10. Agent Core再次调用LLM,生成最终回复
11. 回复通过Gateway发回Telegram
12. 这次对话被存入Memory System
整个过程在几秒内完成。
会话管理机制
会话隔离
每个平台的每个用户有独立会话:
Telegram用户A ←→ 会话A(独立上下文)
Discord用户B ←→ 会话B(独立上下文)
Slack用户C ←→ 会话C(独立上下文)
上下文压缩
当对话太长时,Memory System会自动压缩:
原始对话(100条消息)
↓ LLM摘要
压缩后的关键信息(10条)
↓ 保留核心
继续对话
跨会话记忆
重要信息被存入长期记忆:
用户A说:"我最近在学Python"
↓ 提取
存储到Memory:用户A正在学Python
↓ 需要时
后续对话中自动想起
安全架构
安全是分层设计的:
Layer 1: 用户白名单(谁可以用)
Layer 2: 命令审批(危险操作要批准)
Layer 3: 容器隔离(代码在沙箱跑)
Layer 4: 工具过滤(限制可用工具)
Layer 5: API密钥过滤(敏感信息不透传)
配置加载顺序
Hermes按以下顺序加载配置(后面的覆盖前面的):
- 默认配置(内置)
- 全局配置:~/.hermes/config.yaml
- 项目配置:.hermes/config.yaml
- 环境变量
- 命令行参数
~/.hermes/config.yaml ← 全局
./.hermes/config.yaml ← 项目级
HERMES_MODEL=claude-3-opus ← 环境变量
--model claude-3-opus ← 命令行
扩展机制
Hermes支持多种扩展:
- Custom Tools:在Skills中定义新工具
- MCP Servers:通过MCP接入外部能力
- Custom Skins:自定义界面主题
- Custom Soul:自定义AI人格
为什么这样设计
模块化好处
- 可以单独升级某个组件
- 方便调试和排查问题
- 可以替换实现(如换不同的LLM)
Gateway模式好处
- 一个AI服务所有平台
- 新增平台只需要写一个Gateway适配器
- 统一管理和监控
Memory设计好处
- 真正的个性化AI
- 越用越好用
- 不需要每次重新介绍自己
性能优化点
如果想优化性能,关注这些地方:
- Honcho后端:local最快,docker有开销
- 上下文长度:对话太长会影响速度
- 工具选择:不必要的工具调用拖慢速度
- 模型选择:快的模型(haiku)vs强的模型(opus)
常见架构问题
Gateway挂了怎么办?
Gateway是无状态的,重启即可恢复。会话数据在Memory中,不丢。
工具执行超时?
检查Honcho后端是否正常,工具是否有死循环。
记忆乱了?
可以用/reset重置会话,或清空Memory目录重新开始。
总结
Hermes的架构设计非常清晰:
- Gateway负责对外通信
- Agent Core负责决策
- Memory负责记忆
- Skills负责学习
- Tools负责执行
- Honcho负责运行环境
理解架构能帮你更好地配置和排查问题。
相关文章
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容