02-Hermes 的核心理念:认识一个“会记住你“的 AI
·
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
延伸阅读
更多推荐

所有评论(0)