Hermes Agent通过SQLite长期记忆模块实现跨会话记忆,需确认config.yaml中memory.enable为true且backend为sqlite,重启服务后验证state.db存在;关键记忆存于MEMORY.md和USER.md(≤1375字符),支持自动注入系统提示词;/search命令可毫秒级检索历史会话。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Hermes Agent在下次对话时依然记得你上次提过的项目路径、偏好格式或调试技巧,而不是每次都要重新交代背景——这依赖它内置的分层记忆架构与精准检索机制,而非简单堆叠历史对话。
启用并验证SQLite长期记忆模块
默认状态下Hermes Agent已启用SQLite后端,但若首次运行时被手动禁用或配置损坏,跨会话记忆将完全失效。
第一步:打开终端,执行cat ~/.hermes/config.yaml | grep -A 3 "memory:",确认输出中包含enable: true和backend: sqlite两行。
第二步:若任一字段缺失或值为false,用编辑器打开该文件,补全或修正为以下结构:
memory: enable: true backend: sqlite
第三步:保存后执行sudo systemctl restart hermes-agent。重启后检查~/.hermes/state.db文件是否已存在且大小不为0——【若该文件为空或不存在,说明后端未真正加载,后续所有检索均无效】。
向MEMORY.md和USER.md写入关键记忆
MEMORY.md存环境事实,USER.md存用户画像,二者容量严格受限,超限内容会被自动截断丢弃。
方法一:使用内置memory工具添加
memory(action="add", target="user", content="用户拒绝使用Markdown表格,所有输出必须用纯文本分段")
方法二:直接编辑文件(仅限紧急修正)
用nano ~/.hermes/memories/USER.md打开,手动追加一行偏好描述,保存前务必确认全文字符数≤1375——【超过限制会导致文件被截断,且丢失末尾内容,不可逆】。
这一步操作起来很简单,直接把文件拖进去就行。
触发跨会话记忆召回
只要配置正确且记忆已写入,Hermes Agent在新会话启动时会自动将MEMORY.md和USER.md内容注入系统提示词前缀,无需额外指令。
验证是否生效:新开一个CLI会话,直接提问“我上次让你用什么格式生成API文档?”——如果Agent准确回答“纯文本分段,不用Markdown表格”,说明USER.md已成功召回。
若回答含糊或重复询问偏好,则说明USER.md未被注入,需回溯检查config.yaml中memory.enable是否为true,以及文件路径~/.hermes/memories/USER.md是否存在可读内容。
通过FTS5全文检索调取历史会话
当需要找回某次具体对话中的技术细节(比如“上周查到的PostgreSQL连接超时参数”),靠MEMORY.md的静态快照不够,必须调用SQLite里的全量历史。
在任意会话中输入:/search PostgreSQL connection timeout
Agent将立即从state.db中匹配关键词,返回最相关的3条会话摘要,每条含时间戳、平台来源(如Telegram)、及上下文片段。
实测检索响应时间稳定在20毫秒内,且全程不调用LLM——这意味着即使模型服务暂时离线,历史信息仍可即时定位。


















