这个AI会“记仇“,还会自己写笔记——Hermes Agent 记忆系统深度拆解
你有没有想过一个问题:
你每天用的 ChatGPT、Kimi、豆包……每次打开新对话,它们都不认识你了。
你上次说了什么?你喜欢什么风格?你之前踩过什么坑?全忘了。
就像一个失忆的同事,每次见面都要重新自我介绍。
但最近 GitHub 上有一个项目火了——一周暴涨 1.5 万 Star——它做了一个看起来很简单、却让所有人大受震撼的事:
它会把每次对话的经验写成笔记,下次遇到类似的事直接翻笔记照做。
它叫 Hermes Agent。
先看效果:一个有记忆的AI是什么体验?
没有记忆的普通 AI
第1天 用户: 帮我打包Docker镜像
AI: 好的...(摸索中)...完成了
第3天 用户: 再帮我打包一下
AI: 好的...(重新摸索一遍)...完成了
第7天 用户: 还是那个Docker打包
AI: (完全不知道你之前做过)
每次都从零开始。
有记忆的 Hermes
第1天 用户: 帮我打包Docker镜像
Hermes: 完成!这是第一次做这个任务。
第3天 用户: 再帮我打包一下
Hermes: 检测到与之前的任务模式相似。
调用已有技能 "docker-build-push"...完成!
第7天 用户: 还是那个Docker打包
Hermes: 直接用 "docker-build-push" 技能处理,
这次我还优化了构建步骤...完成!
越用越快,越用越好。
这就是 Hermes 和其他所有 AI 助手的根本区别。
它是怎么做到的?三层记忆体系
Hermes 的秘密武器是它的持久化记忆架构。我们一层层拆开来看:
第一层:代理记忆(MEMORY.md)
相当于AI自己的"工作笔记本"
每次完成任务后,它会把自己学到的环境信息、工具用法、项目配置写到一个文件里:
# Hermes 代理记忆
## 项目信息
- 当前项目:ai-agent-tutorial
- Python版本:3.11
- 使用模型:qwen2.5:7b(通过 Ollama 本地运行)
## 工具使用经验
- Docker打包:需要先检查 requirements.txt,再生成 Dockerfile
- Ollama服务默认端口11434
- qwen2.5:7b 至少需要8GB内存
下次启动时,这些内容会被自动注入到对话上下文中。它不需要你再告诉它一次。
第二层:用户画像(USER.md)
相当于它对你的"了解档案"
# 用户画像
## 基本信息
- 偏好语言:中文
- 技术栈:Python、Ollama、本地大模型
- 风格偏好:喜欢简洁直接的回答,不要废话
## 沟通习惯
- 不喜欢长篇大论,希望有代码示例
- 关注实操性,少讲理论
- 喜欢表格和结构化内容
你不用每次都说"请用中文回复"、"给我代码示例"了。 它记得你的偏好。
第三层:历史检索(全文搜索)
相当于它的"大脑回忆能力"
前两层是"摘要式记忆"。但如果某条具体信息没被写进摘要怎么办?
Hermes 用 FTS5 全文搜索引擎索引了所有历史对话:
# 用户问:"上次那个Docker Compose怎么写的?"
session_search(query="Docker Compose 配置")
# → 从历史对话中搜索相关片段
# → 返回精确匹配的内容 + LLM 生成的摘要
不管过了多久,只要说过一次,它就能搜出来。
更厉害的:不只是记住,还能自己学习
记忆只是基础。Hermes 真正厉害的地方在于它的学习闭环:
学习循环(完整流程图)
┌──────────────────────────────────────┐
│ │
▼ │
用户下达任务 │
│ │
▼ │
执行任务(调用工具、写代码等) │
│ │
▼ │
★ 检测任务模式 │
"这个任务以前做过类似的吗?" │
│ │
├── 是 → 调用已有 Skill ──→ 执行完成 │
│ │
└── 否 → 全新任务 ──→ 执行完成 │
│ │
▼ │
★ 自动提炼经验 │
"这次做了什么?关键步骤是什么?" │
│ │
▼ │
★ 创建/更新 Skill 文件 │
写入 ~/.hermes/skills/xxx.md │
│ │
▼ │
下次遇到同类任务直接复用 ───────────┘
什么是 Skill(技能)?
Skill 是 Hermes 的核心创新——把经验固化为可复用的文档。
举个例子,当你第二次要求它打包 Docker 镜像时,它会自动创建这样一个文件:
# Skill: docker-build-push
## 触发条件
用户需要将 Python 项目打包为 Docker 镜像并推送到仓库时
## 执行步骤
1. 检查项目根目录是否有 Dockerfile
2. 如果没有,根据 requirements.txt 自动生成
3. 执行 docker build -t <镜像名> .
4. 执行 docker push <镜像名>
5. 验证推送结果
## 注意事项
- 确保用户已登录 docker registry(docker login)
- 项目根目录需要有 requirements.txt 或 setup.py
- 推送前检查 .dockerignore 是否存在
## 优化记录
- [04-12] 初始创建
- [04-14] 加入多阶段构建优化,减小镜像体积
注意最后一行"优化记录"——这不是人写的,是Hermes自己在后续使用中不断更新的。
一张图看懂和其他Agent的区别
| 能力 | ChatGPT/Kimi | OpenClaw | Hermes Agent |
|---|---|---|---|
| 单次对话内记忆上下文 | ✅ | ✅ | ✅ |
| 跨会话记住你是谁 | ❌ | ❌ | ✅ USER.md |
| 搜索历史对话 | ❌ | ❌ | ✅ FTS5全文搜索 |
| 干完活自动总结经验 | ❌ | ❌ | ✅ 自动创建Skill |
| 越用越聪明 | ❌ | ❌ | ✅ Skill持续进化 |
底层原理:其实没那么神秘
拆解之后,Hermes 的记忆和学习系统本质上就三个机制的组合:
1. 持久化存储 = 文件读写
def save_memory(content):
"""把学到的东西写到文件里"""
with open("~/.hermes/memories/MEMORY.md", "a") as f:
f.write(content + "\n")
def load_memory():
"""新对话开始时读取记忆"""
with open("~/.hermes/memories/MEMORY.md") as f:
return f.read()
就是读写 Markdown 文件。 没什么黑魔法。
2. 模式匹配 = 字符串相似度
def find_similar_skill(current_task, past_skills):
"""找找以前有没有做过类似的事情"""
for skill in past_skills:
if similarity(current_task, skill.trigger) > 0.8:
return skill
return None
判断当前任务和历史任务是否相似,超过阈值就复用。
3. 经验提炼 = 让LLM自己总结
def extract_skill(task, execution_log):
"""干完活后,让AI自己总结经验"""
prompt = f"""
你刚完成了以下任务:{task}
执行过程:{execution_log}
请总结为一份可复用的技能文档,
包含触发条件和执行步骤。
"""
skill_doc = llm.generate(prompt)
save_skill(skill_doc)
让 AI 自己反思自己做了什么,然后写成文档存起来。
对我们有什么启发?
如果你在跟着我们的《手搓 AI Agent》教程系列学习,好消息是:
这些能力你完全可以自己动手实现。
实际上,我们教程的后续课程就会涉及:
- 第七课:给Agent加上记忆 — 实现跨会话记忆
- 第八课:让Agent学会反思 — 实现经验提炼机制
从理解原理到自己动手实现,中间只差几行代码。
怎么快速上手 Hermes?
安装方式
# 通过 pip 安装
pip install hermes-agent
# 初始化
hermes init
# 启动交互
hermes chat
首次运行时,它会问你几个问题来建立初始的用户画像。然后就可以正常使用了——你会发现它确实越用越懂你。
支持的模型
Hermes 支持 200+ 种模型,一行命令切换:
# 用本地免费模型
hermes config set model ollama/qwen2.5:7b
# 或者用云端模型
hermes config set model openai/gpt-4o
写在最后
Hermes Agent 给行业带来的最大启示不是某个具体的技术点,而是一个方向性的信号:
AI 的下一步不是更大的模型,而是更聪明的架构。
与其追求参数量翻倍,不如想办法让现有的模型拥有记忆、学会积累经验、实现持续进化。
这恰恰是我们这个教程系列在做的事情——不依赖最贵的 API,而是用巧妙的工程手段,让本地跑的小模型也能变得真正好用。
本文为「开源情报局」原创,每周分享一个值得关注的 AI 开源项目。
关注不错过下一篇深度解析~
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)