Hermes Agent 记忆系统全景图

存储实体 · 运行机制 · 设计哲学

1 系统架构总览 v
架构总览
整体分为三层:运行实例(最上层)→ 编排层(中间)→ 存储层(底层,分为内置与外部插件)。 内置存储始终启用;外部插件同一时刻只能加载一个。
2 内置记忆 — 长期稳定的事实 v
存储位置两个文本文件:记录偏好与习惯
写入方式原子写入(先写临时文件,再替换)
容量限制一个文件约 2200 字,一个约 1375 字
并发安全文件锁,防止多进程同时写入
内置记忆读写流程

运行机制

  • 会话开始 — 从磁盘读取两个文件,生成一份"快照"锁定在系统提示中,此后不再改变
  • 会话中途写入 — 新内容通过安全扫描后直接写入磁盘,但不会更新已锁定的快照
  • 安全扫描 — 每次写入都会检查内容,拦截提示注入、角色劫持、凭证窃取等恶意内容
  • 内容规范 — 只记录跨会话的稳定事实(偏好、约定、环境),不记录临时任务、进度或短期信息
适合记录:用户沟通偏好、项目技术栈、环境路径约定、工具使用习惯
不适合记录:正在做的任务进度、已完成的 PR、7 天内过期的信息
3 会话历史 — 可检索的完整对话记录 v
存储位置一个 SQLite 数据库文件
存储内容所有历史对话、session 元数据、全文索引
索引方式全文索引(CJK 字符直接支持,无需分词)
容量无上限
会话历史生命周期

运行机制

  • 每轮对话结束 — 自动把本轮用户和助手的发言写入数据库
  • 上下文压缩时 — 创建新 session,老 session 通过链式 ID 指向旧 session,历史不丢失
  • 需要回忆时 — 通过全文搜索在所有历史中查找相关对话,直接召回
4 技能库 — 可复用的工作流程 v
存储位置skills/ 目录,每个技能一个文件夹
容量无上限
格式结构化文本(步骤 + 说明 + 示例)
三种记忆机制对比

运行机制

  • 会话启动 — 自动扫描 skills/ 目录,列出所有可用技能索引
  • 触发条件 — 当任务匹配某个技能的触发条件时,自动加载完整步骤
  • 人工创建 — 发现可复用的工作流程或错误修复方案时,可将其保存为新技能
技能 vs 记忆:记忆存事实,技能存流程。比如"用户偏好用中文回答"是记忆,"如何部署到 Cloudflare"的步骤是技能。
5 旧版会话文件(已废弃) v
存储位置sessions/ 目录下多个 JSON 文件
状态已废弃,不再写入新数据
这是早期的会话存储格式,已被 SQLite 数据库完全替代。仅保留用于兼容旧数据,不再写入。
6 项目级上下文 — 仓库根目录的配置文件 v
存储位置每个项目仓库根目录的一个 Markdown 文件
发现方式从当前工作目录向上自动搜索,无需配置
注入时机每次组装系统提示时自动读取

运行机制

  • 自动发现 — 启动会话时,从当前目录向上逐级查找,找到即加载
  • 安全扫描 — 内容同样经过恶意注入检测,可疑内容会被拦截
  • 用途 — 为每个项目单独配置上下文(如特殊构建命令、项目约定等)
7 外部记忆插件 — 可替换的后端存储 v
接口方式标准化插件接口,可自由切换后端
数量限制同一时刻只能加载一个外部插件
配置位置配置文件指定插件名称

支持的外部插件

Honcho

对话历史管理

Mem0

AI 原生记忆服务

Hindsight

结构化经验记忆

SuperMemory

超长上下文记忆

RetainDB

持久化向量存储

Holographic

全息记忆检索

ByteRover

企业级记忆管理

OpenViking

开源记忆方案

外部插件生命周期

运行机制

  • 启动时 — 插件初始化连接后端,注册自身能力
  • 每轮对话前 — 插件根据当前话题主动召回相关记忆,注入上下文
  • 每轮对话后 — 插件异步将本轮对话写入外部后端
  • 内置写入时 — 插件同步收到通知,可选择镜像到自身后端
  • 会话结束/切换 — 插件收到通知,可执行清理或汇总操作
8 设计哲学 v

快照而非流式

写入立即落盘,但不改变已注入的系统提示。保护语言模型的缓存稳定性,避免运行时内容跳变。

内外一体,接口统一

内置记忆和外部插件共用同一套接口规范,新插件接入无需改动核心代码。

安全写在写入层

恶意内容检测在落盘时执行,而非在注入时临时检查。防止多次小写入叠加绕过检测。

一个坏了不影响另一个

每个插件的调用都有独立的错误处理。一个插件崩溃不会传导到其他插件或主程序。

插件感知生命周期

插件不只是被动存储,它知道会话的开始与结束、话题切换、上下文压缩等关键节点。

事实 / 流程 / 历史三分

三种机制各司其职:记忆存事实,技能存流程,会话历史存原始记录。触发规则和容量限制各不相同。

9 总览对照表 v
存储实体 存放内容 何时写入 何时读取 容量
内置记忆 用户偏好、项目约定、环境常量 主动添加时 会话启动生成快照 有限(~3500字)
会话历史 所有历史对话原文 每轮对话结束后 主动搜索召回 无上限
技能库 可复用工作流程、错误修复方案 发现可复用流程时 任务匹配触发条件时 无上限
旧版文件 早期会话记录 不再写入 兼容旧数据 无上限
项目配置文件 项目级上下文碎片 用户手动编辑文件 会话启动时 无上限
外部插件 由插件后端自行决定 对话结束 / 主动写入 每轮对话前召回 由后端决定