Hermes Agent: 记忆系统
最后更新:2026-08-31
记忆系统是 Hermes 最核心的差异——它不是"聊完就忘"的聊天机器人,而是一个跨会话记住你一切的智能助手。
💡 提示:Hermes 的记忆不是简单的文本存储,而是包含语义检索、自动分类、用户画像建模的完整系统。Honcho 是 Nous Research 专门开发的用户理解引擎。
📋 前置知识:第3课 配置文件
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | 三层记忆架构详解 |
| ❷ | 工作记忆机制 |
| ❸ | 长期记忆与语义检索 |
| ❹ | Honcho 用户建模 |
| ❺ | 记忆管理命令 |
2. 故事
(1) 痛点:每次都要重新介绍自己
Bob 每天和 AI 聊天,每次都要重新说:"我是前端开发,用 React + TypeScript,偏好 ESLint……"AI 永远记不住。
(2) 解法:Agent 真正记住你
Alice 的 Hermes Agent 记住了一切:
BASH
# 第1天:告诉 Agent 你的偏好
me: 我是 Alice,后端开发,用 Python + FastAPI
Agent: ✅ 已记住!我会长期记住你的技术栈和偏好。
# 第30天:Agent 自动回忆
me: 帮我写个 API
Agent: [回忆] 你用 Python + FastAPI,偏好 type hints...
直接给你 FastAPI 版本:
```python
from fastapi import FastAPI
app = FastAPI()
...
```
3. 三层记忆架构
graph TD
A[用户输入] --> B[工作记忆<br/>Working Memory]
B -->|自动提炼| C[长期记忆<br/>Long-term Memory]
C -->|深度建模| D[用户模型<br/>Honcho User Model]
D -->|个性化| E[响应输出]
B -->|会话内检索| F[上下文理解]
C -->|跨会话检索| G[偏好回忆]
D -->|预测| H[主动建议]
| 层级 | 存储内容 | 生命周期 | 容量 |
|---|---|---|---|
| 工作记忆 | 当前对话的上下文、意图、实体 | 单次会话 | 50条 |
| 长期记忆 | 用户偏好、项目信息、常用模式 | 永久 | 无限 |
| 用户模型 | 行为画像、能力评估、沟通风格 | 永久+自动更新 | 动态 |
4. 工作记忆
(1) 工作记忆内容
工作记忆保存当前对话的活跃上下文:
JSON
{
"session_id": "abc123",
"entities": [
{"name": "React Dashboard", "type": "project"},
{"name": "TypeScript", "type": "tech_stack"},
{"name": "Alice", "type": "user"}
],
"intent": "code_review",
"context_window": [
"用户要求审查 React 组件",
"组件使用 TypeScript",
"之前审查过3个类似组件"
],
"active_skills": ["react-component-review"],
"pending_actions": []
}
(2) 工作记忆限制
YAML
memory:
working_memory_limit: 50 # 最多50条
auto_compress: true # 超限时自动压缩
compress_threshold: 0.8 # 80%时开始压缩
5. 长期记忆
(1) 自动记忆提取
Hermes 自动从对话中提取重要信息保存到长期记忆:
BASH
# 你说了以下内容:
me: 我在做电商项目,用的是 Next.js 14 + Prisma + PostgreSQL
# Hermes 自动提取并分类保存:
📝 长期记忆更新:
- 项目: 电商项目
- 技术栈: Next.js 14, Prisma, PostgreSQL
- 项目类型: Web应用
(2) 语义检索
长期记忆不是关键词匹配,而是语义理解:
BASH
# 你不会说"电商项目",而是说:
me: 帮我加个商品列表页
# Hermes 语义检索到你的电商项目上下文:
Agent: [记忆检索] 你在做电商项目(Next.js 14 + Prisma)
我用你现有的技术栈来实现:
```tsx
// app/products/page.tsx
import { prisma } from '@/lib/prisma'
...
```
(3) /remember 命令
BASH
# 主动保存记忆
/remember 我每周五需要提交周报
/remember 我的 Git commit 风格是 conventional commits
/remember 团队代码审查要求:必须有测试覆盖
# 查看记忆
/remember list
# 输出:
# 1. [偏好] 技术栈: Next.js 14 + Prisma + PostgreSQL
# 2. [习惯] 每周五提交周报
# 3. [规范] Conventional Commits
# 4. [团队] 代码审查必须有测试覆盖
# 删除记忆
/remember delete 3
# 导出记忆
/remember export > my_memories.json
6. Honcho 用户建模
(1) 什么是 Honcho?
Honcho 是 Hermes 的用户理解引擎,它不只是存储偏好,而是建模用户的行为模式:
graph LR
A[对话历史] --> B[Honcho Engine]
B --> C[技术能力评估]
B --> D[沟通风格画像]
B --> E[决策偏好模型]
B --> F[知识领域图谱]
C --> G[个性化响应]
D --> G
E --> G
F --> G
(2) 用户画像维度
| 维度 | 示例 | 用途 |
|---|---|---|
| 技术能力 | ⭐⭐⭐⭐ (高级) | 调整解释深度 |
| 沟通风格 | 简洁直接 | 匹配回复风格 |
| 代码偏好 | 类型安全优先 | 生成代码风格 |
| 学习模式 | 实践导向 | 教学方式 |
| 决策偏好 | 数据驱动 | 建议方式 |
(3) Honcho 自动更新
BASH
# Honcho 观察你的行为并自动更新画像
# 你连续3次要求"加类型注解"→ 更新代码偏好
# 你总是跳过长篇解释 → 更新沟通风格
# 你经常在深夜使用 → 更新活跃时间
# 查看你的画像
/honcho profile
# 输出:
# 🧑💻 用户画像
# 技术能力: ⭐⭐⭐⭐⭐ (资深开发者)
# 偏好语言: TypeScript > Python > Go
# 代码风格: 严格类型 + 函数式
# 沟通偏好: 简洁,不要废话
# 学习方式: 先看代码,再看解释
# 活跃时间: 10:00-14:00, 20:00-24:00
7. 记忆管理
(1) 记忆命令一览
| 命令 | 功能 |
|---|---|
/remember <内容> |
保存记忆 |
/remember list |
列出所有记忆 |
/remember search <关键词> |
语义搜索记忆 |
/remember delete <id> |
删除记忆 |
/remember export |
导出记忆 |
/remember import <file> |
导入记忆 |
/honcho profile |
查看用户画像 |
/honcho reset |
重置用户画像 |
(2) 记忆存储格式
JSON
// ~/.hermes/memory/long_term/memories.jsonl
{"id": "mem_001", "content": "偏好 TypeScript + React", "category": "preference", "embedding": [0.12, ...], "created": "2026-03-15", "access_count": 47}
{"id": "mem_002", "content": "项目: 电商平台", "category": "project", "embedding": [0.34, ...], "created": "2026-03-16", "access_count": 23}
(3) 试一试:记忆体验
BASH
# 步骤1:告诉 Agent 你的偏好
/remember 我是全栈开发者,偏好 Python 后端 + React 前端
# 步骤2:开始新对话(模拟第二天)
hermes chat
# 步骤3:验证记忆
me: 帮我写个 API
Agent: [记忆] 你偏好 Python 后端,给你 FastAPI 版本...
❓ 常见问题
Q 记忆会占多少磁盘空间?
A 每条记忆约 1-2 KB(含 embedding),1000条约 2 MB。长期使用通常不超过 50 MB。
Q 记忆数据存在哪里?
A 默认存在
~/.hermes/memory/。可通过配置修改存储位置,支持加密存储。Q 如何清除所有记忆?
A
/remember delete --all 或删除 ~/.hermes/memory/ 目录。建议先导出备份。Q Honcho 会泄露隐私吗?
A Honcho 数据完全本地存储,零上传。用户画像只用于个性化响应,不会发送给任何第三方。
Q 多用户共享一个 Hermes 时记忆如何隔离?
A 每个用户有独立的记忆空间和用户模型。通过
--user 参数切换用户。Q 记忆准确吗?
A 语义检索准确率约 95%。如果记忆被错误关联,可以手动删除和修正。
📖 小节
- 三层记忆:工作记忆(会话内)→ 长期记忆(跨会话)→ 用户模型(深度画像)
/remember命令主动保存记忆,Agent 也自动提取- 长期记忆使用语义检索,不是关键词匹配
- Honcho 自动建模用户行为画像,持续更新
- 记忆数据完全本地存储,零隐私泄露
📝 作业
- 基础题(难度⭐):使用
/remember保存 5 条偏好,在新对话中验证 Agent 能回忆起来。 - 进阶题(难度⭐⭐):观察 Honcho 如何自动更新你的用户画像,记录 3 个自动更新实例。
- 挑战题(难度⭐⭐⭐):设计一个记忆分类体系(按项目/偏好/习惯/团队规范分类),导入 Hermes 并验证检索效果。