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