乐于分享
好东西不私藏

Hermes Agent 源码解析(2026-04)

Hermes Agent 源码解析(2026-04)

本来已经对各种🦞感到厌倦了,最近 timeline 又开始不断出现 Hermes Agent,自称 self-improving AI agent。
为方便记忆,本文以爱马仕作为简称。
项目刚刚发布不久,代码量不大又是 Python 编写,所以晚上花了点时间,快速瞄了一眼源码。
各种🦞大同小异,爱马仕让人印象比较深刻的主要是它 memory 和 skills 的设计。
Memory
爱马仕提供了4层 memory:
  • Prompt Memory
  • Session
  • Skills
  • External Provider
Prompt Memory 即 MEMORY.md 和 USER.md 文件,每次会话开始都会注入到上下文中。
Session 存储在本地 SQLite 数据库中,搭配 FTS5 扩展,支持全文检索。
Skills 也可以被看作是过程记忆,使用渐进式披露的方式,先调用 skills_list tool 获取索引,然后调用 skill_view tool 获取内容。
支持第三方的 memory 实现,不过我只用过其中的 mem0 和 OpenViking。
爱马仕提供了以下 tool 操作 memory:
  • add 新的记忆
  • replace 更新记忆
  • remove 遗忘
爱马仕通过4层 memory 支持了 working memory、episodic memory、semantic memory 和 procedural memory。
Skills
这也是爱马仕比较有特色的地方,通过一个循环不断提炼 Skills:
 observe -> distill -> reuse -> refine
爱马仕提供了对 Skills CRUD 的 tool:
  • create
  • edit、patch
  • delete
当一个任务满足条件,执行至少5次 tool call,从错误中恢复,用户修正或者它认为这个工作流值得持久化的时候,就是尝试创建新的 skill,如果 skill 已经存在,就会尝试修改既存 skill。
这应该不是我第一次见过类似的设计,我不确定爱马仕是否是昙花一现,但是 self-improving 将会成为之后 AI Agent 的标配之一。