Hermes 的核心理念:认识一个"会记住你"的 AI

装好了 Hermes,第一次对话开始了。你说"你好,我叫 Barry,是一个全栈工程师"。它记住了。但它的"记住"和 ChatGPT 的"记住"有什么不同?这篇文章不是教你配 config.yml(那是下一篇),而是让你理解 Hermes 最核心的差异化能力——它不是一个用完就忘的工具,而是一个真的在"了解你"的 AI。


Hermes 和 ChatGPT/Claude 的根本区别

ChatGPT/Claude 的"记忆"

ChatGPT 的记忆机制:
  用户说了什么 → ChatGPT 判断"这条信息可能以后有用"
  → 存入一个独立的记忆存储 → 下次对话时在 System Prompt 中注入

问题:
  - 记忆是你明确说的("我叫 Barry"),ChatGPT 被动记录
  - 不会主动从对话中推断
  - 不会从你的纠正中学到"你偏好什么风格"
  - 记忆是孤立的条目,不是关联的知识网络

Hermes 的"记忆"

Hermes 的记忆机制:
  你在对话中的每一句话 → Hermes 在后台持续分析:
    "这条信息说明了关于这个用户的什么?"
    "这个纠正反映了什么偏好?"
    "这个习惯和之前记录的那个习惯有关联吗?"

主动 vs 被动:
  ChatGPT:你说"记住这个" → 记住了
  Hermes:你没说"记住" → 但它发现你连续 3 次把它的 for 循环改成 map
         → 它自己推断:"用户偏好函数式风格"
         → 写入持久记忆
         → 下次自动用 map 而不是 for

这就是"自进化"的核心:不是你在教 AI,是 AI 在观察你。


第一次启动 Hermes

初始化

# 初始化配置文件
hermes init

# 交互式初始化,Hermes 会问几个问题:
# 🤖 你希望我怎么称呼你?
# 👤 Barry
# 🤖 你的主要工作内容是什么?
# 👤 全栈开发,FastAPI + React + TypeScript
# 🤖 你偏好什么语言交流?
# 👤 中文,但代码标识符用英文
# 🤖 好的,已记录。你在哪个时区?
# 👤 Asia/Shanghai
# 🤖 初始化完成。配置文件: ~/.hermes/config.yml
#    现在可以开始对话了: hermes chat

初始化过程本身就是一个"认识你"的起点——Hermes 把这些答案存入持久记忆。

配置模型

# 设置 API Key
export ANTHROPIC_API_KEY=sk-ant-your-key-here

# 如果你在 config.yml 中手动配置:
# model:
#   provider: anthropic
#   name: claude-sonnet-4-6
#   api_key: ${ANTHROPIC_API_KEY}

# 启动对话
hermes chat

第一次对话

🤖 Hermes > 你好 Barry!准备好开始工作了。需要我做什么?

👤 > 我想写一个 FastAPI 的用户积分查询接口

🤖 > 好的。为了写出符合你风格的代码,我确认一下:
    - API 返回格式用 { "code": 0, "data": ..., "message": "" }?
    - 数据库操作用 try/except?
    - 注释用中文?
    (这是它从初始化信息中推断的——你说了"FastAPI + 中文交互")

👤 > 对,另外错误信息用中文

🤖 > 明白了。以下是积分查询接口:
    [生成代码...注意:注释已经是中文的了]

注意:Hermes 在写代码之前先确认了你的偏好。这不是因为 System Prompt 里写了"要先确认"——而是因为它从你初始化时说"中文交互"推断出你可能也想要中文错误信息,但不确定,所以确认。


Hermes 在后台做什么

你在对话的时候,Hermes 在后台并行做了三件事:

┌─────────────────────────────────────────────────────┐
│               Hermes 后台并行处理                     │
├─────────────────────────────────────────────────────┤
│                                                     │
│  前台(你看到的):                                   │
│    接收你的消息 → 检索相关记忆 → 生成回复              │
│                                                     │
│  后台 1(身份提取):                                 │
│    分析对话中关于"你是谁"的线索                       │
│    → 更新用户画像(职业/技能/偏好/项目)               │
│                                                     │
│  后台 2(模式识别):                                 │
│    分析你的纠正和反馈                                 │
│    → "他 3 次把 for 改成 map → 偏好函数式"            │
│    → "他要求错误信息用中文 → 语言偏好"                │
│    → 关联已有记忆 → 更新或新建记忆条目                │
│                                                     │
│  后台 3(记忆维护):                                 │
│    清理过时的记忆(不再适用的偏好)                     │
│    合并重复的记忆                                    │
│    强化频繁使用的记忆                                │
│                                                     │
└─────────────────────────────────────────────────────┘

查看 Hermes 对你的理解

# 查看 Hermes 存储的关于你的记忆
hermes memory list --type user

# 第一天的输出可能是:
# [user] name: Barry
# [user] role: 全栈工程师
# [user] tech_stack: FastAPI, React, TypeScript
# [user] language: 中文(代码标识符英文)
# [user] timezone: Asia/Shanghai

# 查看 Hermes 的"自我介绍"——它对"你是谁"的完整理解
hermes memory about-me

# 输出示例:
# Barry 是一个全栈工程师,主要使用 FastAPI + React + TypeScript。
# 偏好中文交流但代码用英文标识符。
# 通常在 Asia/Shanghai 时区工作。
# 看起来是一个人在做 side project。
# 代码风格偏好还不清楚(需要更多对话来观察)。

如果发现理解有误,直接纠正:

hermes memory edit <memory-id> --content "新的正确内容"

# 或者直接在对话中说:
👤 > 我不是一个人在做的,我们团队有 3 个工程师
🤖 > 已更新:你是一个 3 人团队的成员。

一个月的演进

这是 Hermes 最独特的价值——它不是第一天就完美,但它每一天都在变好:

第一周:像聪明但不懂你的助手

Day 1-3: Hermes 像普通的 AI 助手
  - 能完成任务,但风格不稳定
  - 有时候用 for 循环,有时候用 map
  - 错误信息有时候中文有时候英文
  - 你在频繁纠正

Day 4-7: 开始注意到模式
  - 你纠正了 5 次 for→map 后,它开始默认用 map
  - 你说了 3 次"错误信息用中文"后,不再出现英文错误信息
  - 你开始少纠正了

第二周:开始主动引用之前的对话

Day 8-10: 跨会话记忆开始发挥作用
  👤 > 帮我写一个用户认证接口

  🤖 > 好的。基于你之前的偏好,我会:
       - 用 FastAPI + SQLAlchemy
       - API 返回 { "code": 0, "data": ..., "message": "" }
       - 所有数据库操作包含 try/except
       - 密码用 bcrypt 加密(你上周在另一个项目中要求的)
       - 错误信息用中文
      需要我确认这些偏好吗?还是直接开始?

  👤 > 直接开始,完全正确

这时候你开始感觉到"它了解我"——不是因为它更聪明了,而是因为它真的记住了你说过的每一句话,并从中提炼了规则。

第三周:代码风格和你自己写的越来越像

Day 15-18: 自动生成的 code-style Skill 开始发挥作用

  👤 > 加一个用户积分查询接口

  🤖 > [生成的代码]
       - 函数 18 行(不超过 30 行 ✅)
       - 用了 Pydantic model 做请求验证 ✅
       - Decimal 精度处理金额 ✅
       - 参数校验加在函数开头 ✅
       - 注释用中文 ✅

  这些不是你这次告诉它的。是它从过去两周的对话中学到的。
  它自动生成了一个 code-style Skill(第 23 篇会细讲)。

第四周:在你开口前预判你的需求

Day 25-30: 预判行为开始出现

  👤 > 今天想加一个优惠券模块

  🤖 > 好的。在开始之前——
       - 优惠券模型需要引用 User 表的外键(和积分模块类似)
       - 你上周说过数据库迁移用 Alembic,需要我生成迁移脚本吗?
       - 根据你的习惯,我会先写 model → service → router → test 四个文件
       - 另外,你上次提到想要一个 doc 目录——要我一并生成 API 文档吗?

  它不只是"帮你写代码",而是"像你的搭档一样思考"。

查看和管理记忆

日常命令

# 查看所有关于你的记忆
hermes memory list --type user

# 查看项目相关的记忆
hermes memory list --type project

# 查看从你的纠正中学到的规则
hermes memory list --type feedback

# 查看 Hermes 自动生成的关联
hermes memory graph
# 输出:
# Barry ──偏好──→ 函数式风格
# Barry ──使用──→ FastAPI
# Barry ──偏好──→ 中文错误信息
# 函数式风格 ──关联──→ map/filter/reduce
# FastAPI ──关联──→ {code, data, message} 返回格式

# 搜索记忆
hermes memory search "数据库连接池"
# 返回相关的记忆条目

# 删除过时的记忆
hermes memory forget <memory-id>
# 或
hermes memory forget --query "MySQL"  # 删除所有 MySQL 相关记忆(你已迁移到 PostgreSQL)

纠正记忆

记忆不是一成不变的——你的偏好会变,Hermes 也应该跟着变:

👤 > 我之前说用 MySQL,但现在团队决定迁移到 PostgreSQL
🤖 > 已更新记忆:
    - 删除: [project] database: MySQL
    - 新增: [project] database: PostgreSQL
    - 更新: ORM 从 SQLAlchemy MySQL dialect → PostgreSQL dialect
    需要我更新现有的数据库迁移脚本吗?

Hermes 能做什么(以及不能做什么)

能做什么

✅ 记住你的偏好并主动应用
   → 不是"你说了它记住",而是"它观察你然后自己总结"

✅ 跨会话保持上下文
   → 三天前的对话中提到的偏好,今天的对话中自动应用

✅ 从纠正中学习
   → 你纠正 3-5 次后,它会自动生成规则,不再犯同类错误

✅ 跨平台统一人格
   → 你在飞书上纠正过它,Telegram 上的它也记住了

✅ 主动预判需求
   → 四周后,它会在你开口前就列出你可能需要的选项

不能做什么

❌ 替代 Claude Code 做高强度编码
   → Hermes 的记忆系统很强,但代码生成能力和 Claude Code 差不多
   → 它不是"更强的代码生成器",是"更懂你的代码生成器"

❌ 替代 OpenClaw 做多 Agent 编排
   → Hermes 是单 Agent 设计,没有 Orchesterator/Worker 分工
   → 复杂任务拆解和并行不是它的强项

❌ 作为生产数据库
   → 它的记忆存储(SQLite)是单机设计
   → 不适合高并发读写

❌ 完全离线(目前)
   → 记忆存储可以离线(SQLite 本地),但推理还需要调云端 API
   → 除非你接 Ollama 本地模型

和 OpenClaw 的心理模型对比

OpenClaw = 一个"团队经理"
  - 管一群人,让每个人做自己最擅长的事
  - 团队里的人来了又走(Worker 用完就释放)
  - 你不指望经理了解你的个人偏好

Hermes = 一个"长期搭档"
  - 只有一个人,但这个人见证了你所有的决策和迭代
  - 他知道你为什么选择这个架构、你被什么 bug 坑过
  - 三周后你们之间只需要半句话

什么时候用哪个:
  → "这个任务需要 3 个人同时干" → OpenClaw
  → "我希望 AI 真的懂我" → Hermes
  → "两者都要" → 两个都用(第 42 篇讲怎么搭配)

这篇文章的要点

1. Hermes 的记忆 ≠ ChatGPT 的记忆
   → 被动记录 vs 主动观察和推断
   → 孤立的条目 vs 关联的知识网络

2. Hermes 在后台并行做三件事:
   → 身份提取(你是谁)→ 模式识别(你偏好什么)→ 记忆维护(清理和关联)

3. 一个月的演进路径:
   → 第一周:频繁纠正,它开始注意到模式
   → 第二周:跨会话记忆生效,主动应用你的偏好
   → 第三周:自动生成 code-style Skill,代码风格与你一致
   → 第四周:预判你的需求,半句话就能协作

4. Hermes 不是"更强的 Claude Code",是"更懂你的 AI"
   → 它的价值不在推理深度,在长期记忆和自进化

5. 查看记忆:hermes memory list / about-me / graph

延伸阅读

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐