你有没有想过一个问题:

你每天用的 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 开源项目。
关注不错过下一篇深度解析~

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐