虾马记忆系统评测:Hermes+Obsidian让AI更懂你

2026-06-02阅读 0热度 0
ai

文档信息

字 数:3800 字 阅读时间:13 分钟 难度等级:⭐⭐(有 Python 基础更佳,代码可直接复制使用)

核心价值:从原理到代码完整拆解 Agent 记忆系统,看完就能自己搭


与AI对话三个月后,积累了成百上千次的交互经验——选题方法论、Debug 经历、工具配置偏好。然而/new一下,一切归零。

Agent 运行时间越长,这些痛点越突出:

  • “我上次跟你聊过这个啊”——上周敲定的方案,这周又得从头复述。花费十分钟梳理背景,它回应“明白了”。下次新对话,再次遗忘,周而复始。
  • “经验无法沉淀”——用AI持续产出内容一个月,逐步形成了特有的写作风格与选题流程。但这些方法论散落在数十次对话里,无法整合。每次开启新会话,一切从零起步。

如果你感同身受,请继续阅读。

这并非某一款AI独有的缺陷,而是所有AI Agent的普遍问题:每一次对话都如同失忆症发作。

通过一个三层记忆架构即可破解——让AI的对话经验自动沉淀、分级、可检索。结果是:使用越久,它对你越了解。


这个记忆系统实现了什么

一句话概括:让AI从“次次失忆”转变为“越用越懂你”。具体而言,它完成了三项任务:

  • 自动抓取每次对话中的核心内容。并非存储聊天原文,而是将其提炼为摘要。聊了什么、做出了哪些决策、有哪些关键信息——自动压缩并持久化。
  • 从零散信息中归纳模式。当某个主题被多次提及,系统会自动将其从“单个对话的笔记”升级为“独立的知识点”。例如,你聊了十次prompt编写技巧,系统会把这十次的经验浓缩成一条结构化的“Prompt 最佳实践”。
  • 将所有记忆可视化呈现。同步至Obsidian,每条记忆变为一个可读的Markdown文件。支持搜索、双向链接、关系图谱。你的AI“大脑”,清晰可见。

最终效果——你使用得越久,AI对你理解越深。不是因为它变得更聪明,而是因为它铭记了你走过的每一步。


这个系统的设计原理(架构拆解)

设计之前需要厘清一条界限:记忆不等于存储。保留所有聊天记录并非记忆,而是囤积。真正的记忆具备三个特质:有筛选——重要的留下,无关的舍弃;有压缩——十次对话提炼出一条规律;能调用——下次对话时主动激活。这三个特质对应了三层架构:

L1层级:会话摘要 — 记录每次交互概要

每次对话结束后,自动生成一条摘要。存储内容包括:会话ID、摘要文本、关键要点、重要性评分(0-1)。重要性可手动标注,参考值:一次关键的技术决策标0.9,一次闲聊标0.3。

CREATE TABLE IF NOT EXISTS memory_l1 (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    session_id TEXT NOT NULL,
    summary TEXT NOT NULL,
    key_points TEXT,
    importance REAL DEFAULT 0.5,
    access_count INTEGER DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    decay_score REAL DEFAULT 1.0
);

L1是数据量最大的层级。你进行过多少次对话,就有多少条L1记录。

L2层级:结构化知识 — 提炼出可复用的认知

当一条L1记录被频繁调用,或者多条L1围绕同一个主题,系统会将其升级为L2。L2不再是“某次对话的记载”,而是“一条独立的知识点”。比如“Prompt工程的5个最佳实践”,这条知识可能源自10次不同的对话,但它本身是一条完整的知识条目。

CREATE TABLE IF NOT EXISTS memory_l2 (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    category TEXT NOT NULL,
    knowledge TEXT NOT NULL,
    source_ids TEXT,
    tags TEXT,
    importance REAL DEFAULT 0.5,
    access_count INTEGER DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    decay_score REAL DEFAULT 1.0
);

背后的逻辑:升级条件为 importance >= 0.8 且 access_count >= 3。这意味着一条记忆必须同时“足够重要”且“被高频使用”,才会触发升级。这有效防止低质记忆污染知识库。

L3层级:核心洞察 — 挖掘深层的模式与规律

最高层级,数据量最小,价值最高。L3不是某次对话的结论,而是跨多次对话提炼出的规律。例如:“所有AI工具的效率瓶颈,不在工具本身,而在于使用者的认知框架。”这种洞察无法通过一次聊天获得,必须从数十次实践中沉淀而来。

CREATE TABLE IF NOT EXISTS memory_l3 (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    insight TEXT NOT NULL,
    source_ids TEXT,
    category TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    decay_score REAL DEFAULT 1.0
);

三层之间的关系:

最精妙的设计:具备遗忘机制的记忆

这是整个系统中最巧妙的部分。每条记忆都有一个衰减系数(decay_score),初始值为1.0。被访问时+0.1(上限1.0),每小时自动衰减×0.99,低于0.05则标记为清理候选。计算一下:一条从未被访问的记忆,大约7天衰减至0.5,一个月后降至0.1。而你每天调用的记忆,衰减分始终保持在0.9以上。

记忆的价值不在于“存储了多少”,而在于“留存的是否最重要”。此外,衰减不等于删除。低衰减分的记忆仅被标记为“候选清理”,不会自动删除。永远保留“反悔”的余地。


后台自动化:部署后无需维护

5个Cron脚本在后台自动运行,无需人工干预:

Obsidian集成:AI的认知状态可视化

所有记忆自动同步至Obsidian,转换为结构化的Markdown文件。

memory/
├── L1-关键摘要/   ← 每次对话的摘要
├── L2-结构知识/   ← 提炼出的知识条目
├── L3-核心洞察/   ← 核心洞察索引
└── 对话树/        ← 对话之间的分支关系

每个文件均包含YAML frontmatter,记录了重要性、衰减系数、来源信息。在Obsidian中备份,作为Agent的认知中枢。打开这些文件,你可以看到:关系图谱——所有知识点之间的关联,如同星图般展开;全局搜索——任何历史记忆,毫秒级检索;双向链接——相关知识自动关联,使用越久网络越密。数据库里的记忆是静态的,无法直观感知。同步至Obsidian后——你的AI的完整知识体系,一目了然。


完整代码:单一文件,纯标准库

整个系统仅需一个Python文件memory_tiered.py,共1927行。零第三方依赖。SQLite、json、hashlib、datetime、collections、os、sys——全部是Python内置模块。背后的设计原则:单一职责原则。每个类只负责一项任务,修改一个不会影响其他。数据库文件位于~/.hermes/state/state.db,打开即可查看。

Claude Code + Openclaw Agent 集成指南

该方案不绑定于Hermes。核心逻辑是:SQLite存储记忆 + Python管理记忆 + Obsidian展示记忆。任何能运行Python的Agent均可集成。

Claude Code:将memory_tiered.py放入项目目录,并在CLAUDE.md中新增配置:

## 记忆模块
- 模块路径:./memory/memory_tiered.py
- 数据库位置:~/.hermes/state/state.db
- 对话结束后调用 add-l1 写入摘要
- 需要检索时调用 search-all 搜索

Claude Code 自动加载,识别可用的记忆系统。

OpenClaw:将记忆系统打包成一个Skill,放置于OpenClaw的skills目录。在Skill描述中清晰定义CLI命令及其调用时机即可。

飞书 Aily:将Obsidian同步的Markdown文件导入飞书知识库,Aily通过知识库检索来“调用记忆”。无需修改代码,仅增加一步飞书文件上传操作。

实施步骤

如果你读完觉得“我也想部署一套”,请按以下顺序操作:

第一步:检查环境。打开终端,运行python3 --version,确保版本在3.9及以上。

第二步:创建目录

mkdir -p ~/agent-memory/memory

第三步:初始化数据库。将memory_tiered.py放入该目录,然后执行:

python3 ~/agent-memory/memory/memory_tiered.py init

看到“✅ 数据库初始化完成”即表示成功。

第四步:写入第一条记忆

python3 ~/agent-memory/memory/memory_tiered.py add-l1 --session-id "test-001" --summary "首次使用记忆系统,体验极佳" --importance 0.9

第五步:检索记忆

python3 ~/agent-memory/memory/memory_tiered.py search-all --keyword "记忆"

第六步:配置Obsidian(可选)。用Obsidian打开 ~/agent-memory/memory/ 目录,执行一次同步:

python3 ~/agent-memory/memory/memory_tiered.py sync --level all

随后打开Obsidian,即可看到所有记忆文件。

更重要的是:这绝非单纯的高效工具,而是一款认知增强工具。它让AI从“工具”转变为“伙伴”——一个铭记你所有路径的伙伴。


设计决策背后的考量

最后分享几个关键设计决策的原因:

  • 为何选择SQLite而非Redis?目标是实现零依赖。Redis需要安装服务、配置端口、持续维护。SQLite是Python内置组件,一个文件搞定。对于个人Agent的记忆量级(数百到数千条),SQLite的性能绰绰有余。
  • 衰减机制是否意味着数据丢失?误删一条重要记忆的代价远大于多存十条无用记忆。衰减仅降低权重,数据本身依然存在。你随时可以恢复。
  • 为何需要Obsidian?数据库内的数据是静态的。同步至Obsidian后,你能观察知识网络结构、执行搜索、建立关联。这不仅是可视化,更是让你的AI“思考过程”变得可观测。
  • 为何采用CLI而非API?CLI可以被任何Agent、脚本、定时任务调用。它实现了“记忆管理”与“Agent主体”的解耦。你今天使用Hermes,明天切换为Claude Code,记忆系统照样运行无误。

三句话总结

  • AI的记忆缺陷可以解决——不依赖更大的上下文窗口,而是通过分层蒸馏
  • 三层架构是核心——从原始事实到结构化知识再到心智模型,信息在每一层被逐步提纯
  • 代码已开源共1927行Python,零外部依赖,可直接使用,让你的Agent获得长期记忆能力
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策