如何为你的 AI 构建一个不断进化的三层记忆系统
在人工智能辅助日常工作的场景中,我们经常面临一个核心痛点:大多数 AI 助手默认是“健忘”的。即使像 Clawdbot 这样具备基础持久化记忆的机器人,其默认的记忆往往是静态的、僵化的,无法随着你生活的变化而自动更新。
本文核心问题:如何将一个静态的 AI 记忆系统升级为能够自动维护、随时间自我进化的知识图谱?
答案在于构建一个“三层记忆架构”。通过将原始日志、实体化知识图谱和隐性知识分层管理,并引入自动化的提取与合成机制,我们可以让 AI 的记忆像复利一样增长,从而彻底解决信息过时和需要手动清理的问题。
现状与挑战:为什么默认的静态记忆不够用
本节核心问题:现有的 AI 记忆机制存在哪些根本性的结构缺陷,导致它无法适应真实生活的动态变化?
大多数 AI 助手出厂时已经配备了不错的基础模块,例如行为规则、持久化的用户偏好设置、心跳机制以及定时任务。这些功能确实保证了基本的连续性——AI 能记住你的偏好,遵循你的规则,甚至能主动执行一些预定的操作。然而,这背后隐藏着一个致命的结构性缺陷:所有这些记忆都是静态的,必须依赖人工手动维护。
真实的生活并非静止不变。想象一下,你可能在半年前告诉过 AI:“我的老板 Sarah 很难相处,喜欢微观管理。”但在随后的六个月里,你换了工作,你喜欢上了新公司的经理,甚至 Sarah 已经不再是你的上司。此时,一个基于静态记忆的 Clawdbot 依然停留在六个月前的认知里,它仍然“认为”你讨厌你的老板。
这种上下文的陈旧不仅会让人感到沮丧,更会导致 AI 做出错误的判断。我们需要的不是一个只能“记流水账”的硬盘,而是一个能像人类一样,随着时间推移修正认知、理解关系演变的“大脑”。
作者反思
从工程角度来看,许多工程师在构建 AI 记忆时,往往陷入了“存储即解决”的误区。我们过于关注如何把数据存进去(数据库设计、向量存储),却忽略了数据的时间属性和生命周期管理。如果数据只进不出、只增不减,最终形成的不仅不是智慧,而是一个充满噪音和过时信息的垃圾场。
解决方案概览:三层记忆架构
本节核心问题:如何设计一个既能保留历史全貌,又能保持当前认知精准的记忆系统结构?
为了解决静态记忆的僵化问题,我们需要将原本扁平化的文件记忆升级为一个动态的知识图谱。这个系统将记忆划分为三个逻辑层级,每一层都承担着不同的职责,共同构成了一个能够自我维护的有机体。
这个三层架构并非简单的文件夹分类,而是一套能够自动提炼信号、沉淀智慧的算法。它的核心逻辑如下:
-
第一层:知识图谱——这是系统的核心,存储着关于人物、公司或项目的具体实体信息。它包含原子化的数据点和定期更新的摘要。 -
第二层:每日笔记——这是原始的时间轴,记录着具体发生了什么、何时发生。它是未经加工的素材库。 -
第三层:隐性知识——这是关于“你如何工作”的元数据,包括模式、偏好和经验教训。
这种结构化设计将记忆从“一潭死水”变成了“活水”。每一次对话都会被捕获,经过提取变成结构化数据,再经过周报式的合成,变成更精准的上下文。六个月后,你的 AI 对你生活的理解将是结构化、可搜索且完全符合当前现状的。
作者反思
我个人非常欣赏这种将“显性事实”(Layer 1 & 2)与“隐性模式”(Layer 3)分离的做法。在过去的很多项目中,我们往往把用户的指令和客观事实混在一起存储,导致上下文窗口迅速被无效信息填满。将“我偏好电话沟通”这种长期稳定的模式单独剥离,能极大地提高 AI 推理时的效率。
第一层详解:构建活的知识图谱
本节核心问题:如何确保关于特定实体(如人物、公司)的信息既准确无误,又能追溯历史演变?
这是整个升级中最具魔力的部分。我们将不再把所有信息扔进一个大杂烩般的文件,而是为生活中的每一个有意义的实体(人、公司、项目)建立一个独立的文件夹。
实体化的文件夹结构
以“人物”和“公司”为例,系统会自动生成如下结构:
/life/areas/
├── people/
│ ├── sarah/ # 前任老板(之前的反派角色)
│ │ ├── summary.md
│ │ └── items.json
│ ├── maria/ # 商业合作伙伴
│ ├── emma/ # 家庭成员
│ └── sarah-connor/ # 知道太多,需谨慎信任
├── companies/
│ ├── acme-corp/ # 前东家
│ ├── newco/ # 现任东家
│ └── skynet/ # 禁止给予 Cron 访问权限
这种结构使得检索变得极其高效:当 AI 需要知道关于 Sarah 的信息时,它只需要加载 /people/sarah/ 目录下的内容,而不需要扫描整个数据库。
原子化事实与“覆盖而非删除”机制
在 items.json 文件中,每一个事实都被存储为离散的、带时间戳的单元。这是实现记忆进化的关键。
例如,最初的事实可能如下:
{
"id": "sarah-003",
"fact": "Difficult manager, micromanages",
"timestamp": "2025-06-15",
"status": "active"
}
当你换工作后,系统不会删除这条旧记录,而是会生成一条新的事实,并将旧事实标记为“被取代”。
{
"id": "sarah-003",
"status": "superseded",
"supersededBy": "sarah-007"
},
{
"id": "sarah-007",
"fact": "No longer works together — left Acme Corp",
"timestamp": "2026-01-15",
"status": "active"
}
这种机制保留了完整的历史轨迹。AI 不仅能知道 Sarah 现在已经不是你的同事,还能追溯到在此之前你们的关系状态。这对于理解复杂的人际关系演变至关重要。
动态摘要
为了避免每次对话都加载数百条原始事实(这会消耗大量 Token 并降低推理速度),每个实体都有一个每周重写的快照文件 summary.md。
# Sarah
Former manager at Acme Corp (2024–2025).
No longer relevant after job change.
这种设计确保了上下文始终保持精简和准确。旧信息会随着时间自然“淡出”摘要,但依然保留在底层数据库中以备不时之需。
作者反思
这里的“Superseding(取代)”逻辑是我认为本方案中最精彩的设计之一。传统的数据库操作往往是
UPDATE,直接覆盖旧值,导致历史信息丢失。而在处理人类记忆和 AI 上下文时,历史背景往往是理解当前意图的关键。保留“被取代”的事实,就是保留了 AI 的“阅历”。
图片描述:数据如同树根,随着时间生长出新的结构,同时保留着历史的根基。
第二层详解:作为时间轴的每日笔记
本节核心问题:如何在不干扰结构化知识图谱的情况下,完整记录生活的原始时间线?
虽然第一层负责提炼高价值的信息,但我们仍然需要一个地方来记录“流水账”。这就是第二层:每日笔记。
文件路径通常为 memory/YYYY-MM-DD.md,它纯粹记录发生了什么、何时发生。
# 2026-01-27
- 10:30am: Shopping trip
- 2:00pm: Doctor follow-up
- Decision: Calendar events now use emoji categories
这一层是系统的“when”层。Clawdbot 会持续不断地写入这些日志。随后,后台的自动化代理会扫描这些原始日志,提取出具有持久价值的事实(如“换了工作”、“生了孩子”),并将它们搬运到第一层的知识图谱中。
这种“先记录,后提炼”的流程模仿了人类的记忆模式:我们先是经历了具体的事件,睡一觉后,大脑才会把其中重要的片段固化成长期记忆。
第三层详解:捕捉隐性知识与行为模式
本节核心问题:AI 如何掌握那些不属于客观世界事实,而是关于用户个人特质的深层信息?
这一层通常对应 MEMORY.md 文件。它不是关于世界的事实,而是关于你如何在这个世界上运作的“元知识”。
## How I Work
- Sprint worker — intense bursts, then rest
- Contact preference: Call > SMS > Email
- Early riser, prefers brief messages
## Lessons Learned
- Don't create cron jobs for one-off reminders
这些信息对于 AI 提供个性化服务至关重要。例如,当 AI 知道你是一个“冲刺型工作者”且偏好简洁信息时,它就不会在你休息时发送冗长的邮件,也不会在非紧急情况下打扰你。
这个文件在升级中主要被正式化了其角色。它不再是一个随意的笔记,而是系统在进行任务规划和沟通时的核心参考文档。
作者反思
很多 AI 提示词工程都在教用户如何“告诉” AI 自己的偏好。但这个系统的精妙之处在于,它能从你的日常行为(Layer 2)和交互中,逐渐“归纳”出这些偏好,并写入 Layer 3。这是一种从“配置”到“观察”的范式转变。
复合引擎:自动化与记忆的自我进化
本节核心问题:如何通过廉价的自动化流程实现记忆的“复利效应”,使其越用越聪明?
如果没有自动化,上述的三层架构只是一个复杂的手动笔记系统。真正的威力来自于“复合引擎”,它包含两个核心自动化流程:实时提取和周度合成。
实时提取
系统不会在你每次聊天时都调用昂贵的大模型进行记录,那样成本太高。相反,大约每 30 分钟,一个极便宜的子模型(例如 Haiku,成本约 $0.001)会被唤醒,扫描最近的对话,寻找具有持久价值的事实。
-
提取目标:关系变化、状态变更、里程碑事件。 -
忽略内容:闲聊、临时信息。
例如,它可能捕捉到:
-
“Maria 的公司新雇了两名开发者” -
“Emma 迈出了人生第一步” -
“开始了新工作,向 James 汇报”
主模型在你未积极聊天时保持闲置,极大降低了运营成本——每天只需几美分。
周度合成
每周日,一个 Cron 定时任务会触发“周度记忆回顾”。这个过程就像人类的周末复盘:
-
审查新事实:加载本周新增的所有事实。 -
更新摘要:根据新的活跃事实,重写相关实体的 summary.md。 -
标记历史:将相互矛盾的事实标记为“历史/被取代”。 -
生成快照:产出一个干净、最新的当前状态视图。
通过这个循环,AI 的记忆实现了自我修正。你不需要手动告诉它“我不在那个公司了”,只要你在对话中提到了相关事实,周报就会自动更新 Sarah 的状态摘要。
图片描述:自动化的齿轮系统,象征着后台不间断的信息处理与迭代。
实施指南:一步步搭建系统
本节核心问题:如何从零开始,通过具体的文件夹结构和配置代码实现这套三层记忆系统?
要完成这个升级,你只需要按照以下步骤操作。所有的逻辑都是透明的、基于文件的。
1. 创建文件夹结构
首先在本地或你的 Clawdbot 环境中建立目录树:
mkdir -p ~/life/areas/people
mkdir -p ~/life/areas/companies
mkdir -p ~/clawd/memory
2. 更新系统配置
你需要将记忆规则写入 MEMORY.md,让 AI 理解这套三层逻辑。
添加到 MEMORY.md:
## Memory — Three Layers
### Layer 1: Knowledge Graph (`/life/areas/`)
- `people/` — 人物实体
- `companies/` — 公司实体
分层检索逻辑:
1. summary.md — 快速上下文
2. items.json — 原子事实
规则:
- 立即将事实保存到 items.json
- 每周: 从活跃事实重写 summary.md
- 永不删除 — 使用“取代”机制
3. 定义事实提取规则
你需要告诉机器人在“心跳”时做什么。将以下逻辑添加到你的系统提示或自动化脚本中:
添加到 Heartbeat 规则:
## Fact Extraction
On each heartbeat:
1. Check for new conversations
2. Spawn cheap sub-agent to extract durable facts
3. Write to relevant entity items.json
4. Track lastExtractedTimestamp
关注重点: 关系、状态变化、里程碑
忽略内容: 闲聊、临时信息
4. 设置周度合成 Cron 任务
每周日的定时任务是保持记忆新鲜的关键。添加以下逻辑:
## Weekly Memory Review
For each entity with new facts:
1. Load summary.md
2. Load active items.json
3. Rewrite summary.md for current state
4. Mark contradicted facts as superseded
5. 定义原子事实数据模式
为了确保机器能读懂,JSON 必须遵循严格的 Schema:
{
"id": "entity-001",
"fact": "The actual fact",
"category": "relationship|milestone|status|preference",
"timestamp": "YYYY-MM-DD",
"source": "conversation",
"status": "active|superseded",
"supersededBy": "entity-002"
}
为什么这套方案优于其他方案
本节核心问题:相比于向量数据库或大文件上下文,这种基于文件的知识图谱方案有哪些不可替代的优势?
在 AI 工程领域,我们通常面临三种主流的记忆管理方案,但它们各有弊端:
| 方案类型 | 缺陷分析 |
|---|---|
| 向量数据库 / RAG | 这是一个“黑盒”。你很难检查 AI 到底“知道”什么,也无法像编辑文本一样轻松修改特定的错误记忆。检索结果往往带有随机性。 |
| 单一上下文文件 | 随着时间推移,文件会变得极其巨大。加载缓慢,容易包含过时信息,且难以进行结构化的查询。 |
| 基础 Clawdbot | 虽然基础稳固,但本质上是静态的。缺乏自动进化的能力。 |
| 三层记忆 Clawdbot | 优势明显:文件可读、自动维护、智能复合。你可以直接打开 JSON 文件修改数据,也可以让 AI 自动维护。 |
三层系统通过明确的架构分离,解决了检索效率、数据时效性和维护成本之间的矛盾。
结论:从工具到伙伴的飞跃
当我们把这篇文章复制到 Clawdbot 中并执行配置后,我们得到的不仅仅是一个记性更好的机器人。
本节核心问题:长期运行这套系统,最终能为你带来什么价值?
结果是一个能够:
-
永不遗忘的 AI; -
永不陈旧的 AI; -
维护成本极低(每天只需几分钱); -
能区分“现任老板”和“前任老板”的 AI; -
每周都变聪明的 AI。
当其他助手醒来时伴随着“失忆症”,你的 Clawdbot 醒来时比昨天更博学。知识图谱在生长,上下文在优化,响应在变好。这就是普通的 AI 助手与真正懂你的 AI 之间的区别。
作者反思
这种“复利效应”在技术领域很难得。大多数软件系统随着使用时间的增加,会产生技术债务,运行速度变慢,维护难度变大。而这个三层记忆系统是反直觉的——它用得越多,积累的高价值结构化数据越多,系统反而越有价值。这是我们构建个人知识管理系统时应当追求的终极目标。
实用摘要 / 操作清单
为了方便你快速上手,以下是基于上述内容的简化操作步骤:
-
环境准备:创建 /life/areas/people和/life/areas/companies文件夹。 -
数据结构定义:在 MEMORY.md中定义三层架构规则。 -
自动化配置: -
设置 Heartbeat 脚本,每 30 分钟调用子模型提取事实到 items.json。 -
设置 Sunday Cron 任务,根据 items.json重写summary.md。
-
-
数据规范:严格遵守 JSON Schema,使用 status: "superseded"而非删除旧数据。
一页速览
概念:三层记忆系统(知识图谱 + 每日日志 + 隐性知识)。
核心机制:
-
实时提取:廉价子模型定期扫描对话,保存原子事实。 -
实体存储:按人/公司存储,而非大杂烩。 -
周度合成:每周日重写摘要,标记旧事实。
关键优势:上下文自动更新,永不丢失历史,维护成本极低,可读性强。
常见问题 (FAQ)
1. 这个系统会删除旧的记忆吗?
不会。系统采用“取代”机制,旧的事实会被标记为 superseded,但永远保留在数据库中,确保历史可追溯。
2. 每天运行这个系统的成本是多少?
非常低。主要成本来自每 30 分钟一次的廉价子模型调用(如 Haiku),总成本通常在每天几美分的级别。
3. 如果我想手动修改某个事实怎么办?
因为所有数据均存储为标准的 Markdown 和 JSON 文件,你可以直接打开对应的 items.json 进行手动编辑,系统会在下一次合成时读取你的修改。
4. 为什么需要周度合成?
周度合成是为了防止上下文窗口过于臃肿。它将大量原始的原子事实压缩成精炼的 summary.md,确保 AI 在调用时只加载最相关、最新的信息。
5. 这个系统适合非技术人员使用吗?
虽然涉及文件操作,但一旦配置完成,后台的自动化过程对用户是透明的。用户只需要像往常一样与 AI 对话,系统会自动在后台维护记忆。
6. 这比向量数据库(RAG)好在哪里?
向量数据库通常是黑盒,难以精确控制和调试。而本方案基于纯文本和 JSON,完全透明、可读、可编辑,且不存在向量检索可能带来的幻觉或模糊匹配问题。
7. 如何处理临时信息(如明天的会议)?
临时信息不进入 Layer 1 的知识图谱。Layer 1 只存储持久性事实(如关系、偏好)。临时事件记录在 Layer 2(每日笔记)中,用于短期回忆。
8. 如果我对 AI 提供了相互矛盾的信息怎么办?
系统会根据时间戳识别较新的信息,并将旧的事实状态更新为 superseded,从而自动解决矛盾,确保 AI 始终遵循最新的认知。
