首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >别再盲目安装了:深度拆解 Hermes Agent 的“脑回路”

别再盲目安装了:深度拆解 Hermes Agent 的“脑回路”

作者头像
HELLO程序员
发布2026-06-26 21:20:34
发布2026-06-26 21:20:34
2620
举报

你有没有过这种感觉:装某个开源软件纯粹是因为“大伙都说好”,至于它引擎盖下面到底怎么跑的,你一头雾水?当初我刚上手开源 AI Agent(智能体)时,心里也直打鼓。

这些框架的复杂程度绝对不是闹着玩的,哪怕是资深老兵也得掉层皮。为了让 Agent 既能像老司机一样自主运转,又不至于把用户体验搞砸,它们的仓库架构设计得极其精妙。

最核心的一点是:Agent 的记忆并不是一个随着时间无脑增长的“流水账”。 相反,它是一套依赖交互逻辑和硬核架构支撑的聪明系统。

Hermes Agent 有个招牌功能——“持久化记忆”。很多人一听这词,立马提鞋就从 OpenClaw 阵营投奔到了 Hermes。但这玩意儿到底在说啥?它凭啥比 OpenClaw 强?它还有进步空间吗?

Hermes 试图通过五层过滤机制来模拟人类的记忆行为:

1. 记忆商店 (Memory Store)

这是最轻量的一层,由 Agent 文件夹里的两个小文件组成:

  • MEMORY.md:关于环境事实、工具癖好和经验教训的笔记。
  • USER.md:Agent 对你的了解(人设档案)。

这些文件非常精简,总共也就 3500 字符左右。因为它们在每次对话开始时,都会被注入到系统提示词(System Prompt)中

配置示例 (~/.hermes/config.yaml):

代码语言:javascript
复制
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200   # 约 800 tokens
  user_char_limit: 1375     # 约 500 tokens

MEMORY.md 内容示例:

代码语言:javascript
复制
切换至 Qwen-Max 进行 Newsletter 生成。
§ 格式偏好:遵循 'writer' 技能流(禁用破折号/分号,加粗公司名)。
§ 严禁使用“本周/最近”等时间词汇。§ 严禁署名(如 Marco 等)。
§ 来源格式严格执行:Sources: + 标题超链接。

这种“冻结快照模式”确保了 Agent 在当前会话中逻辑的一致性,同时保护了你的钱包。

2. 会话数据库 (Sessions Database)

不管你是在 Telegram 还是终端聊天,每条消息都会存入 SQLite 数据库 (state.db)。

数据库架构:

代码语言:javascript
复制
~/.hermes/state.db (SQLite, WAL mode)
├── sessions          — 会话元数据(Token 计数、开销等)
├── messages          — 完整的消息历史(包含思考过程)
├── messages_fts      — FTS5 虚拟表,支持毫秒级全文本搜索
└── schema_version    — 版本控制

当你问“上周咱们聊啥了?”,Agent 会调用 session_search 工具,在数据库里翻旧账。它不会把所有原文丢回去,而是提取相关片段,让小模型给你做个总结

3. 压缩机制 (Compression Mechanism)

当对话太长(达到模型上下文 50% 时),ContextCompressor 就会强行介入,防止模型由于“脑载荷”过重而变傻。

核心逻辑四步走:

  1. 清理旧工具输出:把中间层庞大的原始数据替换为短占位符。
  2. 保护头尾:保留对话开头的指令和最新的对话。
  3. 结构化总结:用 LLM 压缩中间层。
  4. 孤儿清理:修补因删除消息导致的逻辑断层。

配置示例:

代码语言:javascript
复制
compression:
  enabled:true
threshold:0.85             # 达到 85% 触发
target_ratio:0.2           # 压缩目标比例
protect_last_n:20          # 保留最近 20 条消息
summary_model:qwen-max

4. 程序化记忆 (Procedural Memory)

这代表 Agent “会做什么”。MEMORY.md 存事实,而技能文件 (Skills) 存操作流程。这些技能存储在 ~/.hermes/skills/ 下的 Markdown 文件中。

这种设计让 Agent 像个“专业工匠”:它平时不需要记住所有细节,只有在用到某个特定技能(比如写代码或查 Wiki)时,才会翻开对应的“操作手册”。

5. 外部记忆供应商 (External Memory Providers)

如果内置记忆还不够打,你可以通过外挂升级:

  • Mem0ZepLettaSupermemory 等等。

集成指令:

代码语言:javascript
复制
hermes memory setup      # 挑选并配置第三方供应商
hermes memory status     # 查看当前哪个“外挂脑”在线

总结

Hermes Agent 的记忆系统在召回率、效率和自主性之间找到了完美的平衡。它不像某些笨拙的 AI 试图记住一切,它更像人:

  • 重要的贴在床头(Prompt)。
  • 专业的翻阅手册(Skills)。
  • 冗长的进行总结(Compression)。
  • 尘封的去查档案(SQLite)。

这套系统让 Agent 既能陪你长聊,又不会让你在看到月底账单时心惊胆战。

本文基于对 Hermes Agent 架构的深度调研。开源界是否有新对手能打破这种五层记忆范式?咱们拭目以待。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HELLO程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 记忆商店 (Memory Store)
  • 2. 会话数据库 (Sessions Database)
  • 3. 压缩机制 (Compression Mechanism)
  • 4. 程序化记忆 (Procedural Memory)
  • 5. 外部记忆供应商 (External Memory Providers)
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档