Hermes Persistent Memory
Hermes Agent 的持久化记忆系统由 MEMORY.md 和 USER.md 两个文件组成,容量有界且由 agent 自行管理。记忆在会话开始时注入系统提示,跨会话持久保存。
记忆架构
| 文件 | 用途 | 字符限制 |
|---|---|---|
| MEMORY.md | Agent 个人笔记——环境事实、约定、经验教训 | 2,200 字符 (~800 tokens) |
| USER.md | 用户画像——偏好、沟通风格、期望 | 1,375 字符 (~500 tokens) |
存储位置:~/.hermes/memories/
工作机制
- 冻结快照模式:记忆在会话开始时作为冻结块注入系统提示,会话内不变
- 即时持久化:Agent 在会话中修改记忆时立即写入磁盘,但下次会话才在系统提示中生效
- 容量管理:超过 80% 容量时,Agent 应合并/精简条目后再添加新条目
记忆工具操作
- add — 添加新条目
- replace — 替换现有条目(通过子串匹配)
- remove — 移除不再相关的条目
无 read 操作——记忆内容自动注入系统提示。
应该记住 vs 应该跳过
✅ 主动保存
- 用户偏好(“偏好 TypeScript”)
- 环境事实(“服务器运行 Debian 12”)
- 纠正(“不要用 sudo 运行 Docker”)
- 项目约定(“项目用 tabs, 120 字符行宽”)
- 已完成的工作记录
- 显式请求(“记住我的 API key 每月轮换”)
❌ 不保存
- 显而易见的信息
- 可轻松重查的事实
- 大段数据/代码/日志
- 会话级临时信息
- 已在上下文文件中的内容
会话搜索
除持久化记忆外,Hermes 还提供 session_search 工具:
- 所有会话存储在 SQLite (
~/.hermes/state.db) 中,支持 FTS5 全文搜索 - 返回相关历史对话,用 Gemini Flash 进行摘要
- 适合"上周我们讨论过 X 吗?“类型的查询
| 特性 | 持久化记忆 | 会话搜索 |
|---|---|---|
| 容量 | ~1,300 tokens | 无限 |
| 速度 | 即时(在系统提示中) | 需搜索 + LLM 摘要 |
| 用途 | 关键事实,始终可用 | 查找特定历史对话 |
外部记忆提供者
Hermes 还支持 8 个外部记忆插件(Honcho、OpenViking、Mem0、Hindsight 等),与内置记忆并行运行,提供知识图谱、语义搜索、自动事实提取等增强能力。
安全
记忆条目在保存前经过安全扫描,检测注入和泄露模式(prompt injection、凭证泄露、SSH 后门、不可见 Unicode 字符等)。
Timeline
- 2026-04-13: 初始整理自 Hermes Agent 官方文档 - Persistent Memory