必须正确配置 memory.md 文件以实现 hermes agent 的长期记忆功能,该文件作为“温记忆”层在每次会话开始时注入系统提示词,内容需符合格式规范、字符限制及同步策略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望 Hermes Agent 在多次会话中持续记住项目信息、技术约定或操作偏好,则必须正确配置 MEMORY.md 文件。该文件在每次对话开始时被注入系统提示词,构成 Agent 的“温记忆”层。以下是实现长期记忆的具体配置方法:
一、理解 MEMORY.md 的作用与约束
MEMORY.md 是 Hermes Agent 记忆系统的轻量级核心组件,用于存储稳定、低频变更的环境事实与行为约定。它不记录对话历史,也不承载临时状态,仅保存跨会话一致的上下文锚点。其内容受配置项 memory_char_limit: 2200 严格限制(约 800 tokens),超出部分将被截断,导致关键信息丢失。
1、打开终端,进入 Hermes 配置目录:cd ~/.hermes
2、确认 MEMORY.md 是否已存在:ls -l MEMORY.md
3、若不存在,创建空文件:touch MEMORY.md
二、编写符合规范的 MEMORY.md 内容
MEMORY.md 必须使用纯文本格式,避免 Markdown 复杂语法;每条记录应以“§”符号起始,保持语义原子性与可解析性。Hermes 在加载时按行提取,不支持嵌套结构或注释块。内容需聚焦于事实性、指令性、约束性三类信息。
1、用编辑器打开文件:nano MEMORY.md
2、写入项目基础事实,例如:§ 当前主力模型为 Qwen-Max,用于 Newsletter 生成任务
3、添加格式约束,例如:§ 输出禁用破折号与分号;公司名必须加粗;严禁出现“本周”“最近”等相对时间表述
4、声明来源规范,例如:§ 所有引用必须以 Sources: 开头,后接标题与超链接,如 Sources: [Hermes 官方文档](https://github.com/nousresearch/hermes-agent)
5、保存并退出编辑器(Nano 中按 Ctrl+O 回车,Ctrl+X 退出)
三、验证 MEMORY.md 是否被正确加载
Hermes 在启动新会话时会将 MEMORY.md 全文拼入系统提示词。若未生效,通常因文件路径错误、编码异常或配置中 memory_enabled 被设为 false。可通过诊断命令直接观测注入内容。
1、运行诊断命令:hermes doctor
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
2、在输出中查找 “Memory loaded” 字段,确认其后显示的字符数 ≤ 2200
3、手动触发一次会话并输入:请复述你从 MEMORY.md 中读取的第一条约定
4、比对 Agent 返回内容与 MEMORY.md 首行是否完全一致(含“§”符号)
四、多设备协同下的 MEMORY.md 同步策略
当在多个设备上编辑 MEMORY.md 时,缺乏同步机制将引发内容覆盖与逻辑冲突。Git 是最轻量且可靠的版本控制方案,可保留修改痕迹并支持人工合并,避免无感知覆盖。
1、初始化 Git 仓库:git init && git add MEMORY.md && git commit -m "init MEMORY.md"
2、添加远程仓库(如 GitHub 或私有 Git 服务):git remote add origin https://your-git-server.com/user/hermes-memory.git
3、每次修改后执行提交与推送:git add MEMORY.md && git commit -m "update model preference" && git push
4、在其他设备上拉取更新:git pull origin main
五、MEMORY.md 冲突排查与修复流程
当 Agent 行为突然偏离预期,或返回内容中缺失已写入的约定时,极可能由 MEMORY.md 内容损坏、编码不可读或被意外清空导致。需逐层定位问题源,而非直接重写文件。
1、检查文件权限与所有者:ls -l ~/.hermes/MEMORY.md,确保当前用户具有读权限
2、检测文件编码:file -i ~/.hermes/MEMORY.md,确认输出含 charset=utf-8
3、查看文件是否为空或含非法控制字符:cat -v ~/.hermes/MEMORY.md,若出现 ^M、^@ 等符号需清理
4、临时备份原文件:cp MEMORY.md MEMORY.md.bak,再新建最小可行版本进行测试










