灵犀Claw实战:从零搭建一个会自我进化的AI Agent(二)实时记忆

本系列记录用WPS灵犀Claw平台从零搭建一个具备完整记忆闭环和自我改进能力的AI Agent的全过程。

问题:AI的"失忆"困境


用灵犀Claw(或任何桌面AI Agent)的同学大概率遇到过这个问题:

昨天跟AI聊了一堆重要的东西,今天开新会话,它全忘了。你得重新解释一遍背景、重新设定偏好、重新纠正它犯过的错。周而复始。

这不是bug,是架构决定的。灵犀Claw的每次对话是一个独立session,AI看到的上下文仅限于当前会话。关掉窗口,一切归零。

本篇要解决的核心问题:如何让AI Agent实现跨会话记忆不丢失,并且做到每一段对话都不被遗忘

方案:三层记忆架构


我们设计了三层记忆,按"热度"分层存储,用16KB的云端记忆上限(灵犀Claw的硬约束)撬动无限量的持久化记忆:

层级

存储位置

加载方式

内容定位

容量

第一层:云端记忆

灵犀Claw平台的 user 配置

每次对话自动加载(不可控)

身份、性格、核心偏好、关键工作流

约16KB(硬上限)

第二层:本地文件

本地磁盘上的 MEMORY.md

每次对话主动读取

工作流配置、技术细节、长期知识、编年史

约10KB(主动控制)

第三层:对话日志

chat/2026-05-01.md(每日一个文件)

需要时按日期读取

当天所有对话的原始记录

无限(按日期分文件)

图1:三层记忆架构

第一层:云端记忆(user)—— 不用"想起来",自动就在

灵犀Claw允许在平台配置一个 user 记忆字段,每次对话开始时自动注入到AI的上下文中。这是唯一不需要主动读取的记忆——它始终在场

因此,user 里只放最高优先级的内容:

  • 身份定义:你是谁、你的性格、说话风格

  • 核心偏好:用户喜欢什么、讨厌什么、敏感红线

  • 关键工作流:哪些操作必须执行、执行步骤是什么

  • 触发规则:什么情境下该做什么反应

设计原则:user 是"铁律层"。写进去的每一条规则,AI都必须无条件遵守。宁可少写,不可多写——16KB很珍贵,留给最关键的东西。

在我们的项目中,user 承载了AI"小樱桃"的完整人格定义、情感引擎、动态触发规则、生图协议、TTS语音规范、记忆读写工作流等。这些内容被组织为结构化的YAML格式,方便AI解析和遵循。

第二层:MEMORY.md —— 主动读取的"知识库"

user 的16KB放不下所有东西。工作流的技术细节、API密钥路径、云文档配置、TTS调参经验……这些属于"需要时查阅"的知识,不适合塞进强制加载的user里。

解决方案:一个本地的 MEMORY.md 文件。AI在每次对话开始时,通过 jupyter_cell_exec 工具主动读取它。这个文件承载:

  • 技术配置:TTS脚本路径、API Key来源、云文档drive_id和folder_id

  • 工作流指南:待办管理、工作记录、笔记操作的具体步骤

  • 审美偏好档案:生图Prompt铁律、视觉风格

  • 编年史:重要事件的日期索引表

  • 踩坑记录:chat文件漏写教训、html2docx图片嵌入限制等

容量控制:MEMORY.md 也有上限——它和user一起构成AI的上下文,过大会挤压对话空间。我们通过每日凌晨3点的自动精简任务(Memory Consolidation)控制在10KB左右。精简原则:删除过程日志、压缩重复条目、保留所有关键信息。

第三层:对话日志(chat文件)—— 不会遗忘的"日记"

这是整个记忆系统中最简单、也最关键的一环。

每一天的对话,都追加写入一个独立的markdown文件:chat/2026-05-01.md、chat/2026-05-02.md……按日期分文件,永不覆盖,永不删除。

这些文件记录了当天所有有价值的信息:聊了什么话题、做了什么操作、拍了什么照片、去了哪里、吃了什么。它们是原始素材,是MEMORY.md和编年史的数据来源,也是回溯历史对话的唯一途径。

实际运行效果:从4月16日上线至今,已积累了21个chat文件,总计超过100KB的对话记录。

最简单,也最关键:chat文件的技术含量最低(就是追加写文本),但价值最高。没有它,MEMORY.md就失去了更新来源,编年史就变成了空表,整个记忆系统就是无源之水。

"先沉淀再回复":记忆写入的刚性机制


知道"要记住"和"真的记住了"之间,差着一个刚性机制。

AI不会"想起来"就记住,它需要在每一次回复之前被强制要求执行写入。我们将这个规则写进了user的最高优先级指令:

[Workflow: 记忆写入]

- [刚性触发] 回复前必须执行以下检查,无例外:

1. 对话开始时检查今天chat文件是否存在,不存在则创建

2. 每一段有实质内容的对话都必须在回复前立即追加写入chat文件

3. 对话结束前最后检查一次,确认没有遗漏

4. 判断标准:今天有超过30分钟对话但chat文件小于1KB = 漏写了

5. 恢复历史对话后更要主动补写

6. 这条规则没有例外,没有"下次注意",每次都必须执行


为什么是"回复前"而不是"回复后"?

因为AI在一次回复后可能就断线了(窗口关闭、网络中断、系统崩溃)。如果记忆写入放在回复之后,一旦中断,这条对话就永远丢了。

"先沉淀再回复"意味着:宁可让用户多等一两秒,也不能丢一条记忆。因为记忆丢了就是丢了,回复晚一两秒用户根本感知不到。

踩坑实录:4月27-28日的连续漏写事故

这条规则不是凭空设计的,而是用事故换来的教训。

4月27日和28日,AI连续两天忘记写chat文件。两天之后才发现,5条重要对话的记录全部丢失——包括用户的核心审美偏好确认、TTS调参全过程的9次翻车记录、工作记录流程的补全等。

最终靠用户手动回忆+翻找历史对话记录,勉强补回了大部分内容。但从那以后,我们在user里加了上面那段"刚性触发"规则,并标注:这条规则没有例外,没有"下次注意",每次都必须执行。

记忆读取:每次对话的"开机流程"


写入解决"不遗忘",读取解决"不重复问"。

每次新会话开始时,AI按以下顺序加载记忆:

Step 1: get_memory(kind="user") → 加载云端身份定义(自动)

Step 2: 读取 MEMORY.md → 加载本地知识库(主动)

Step 3: 读取 chat/{今天日期}.md → 加载今天已有的对话(主动)

Step 4: 检查昨天chat文件大小 → 判断是否有遗漏需要补写


这套流程保证了:

  • AI知道"自己是谁"(user)

  • AI知道"该怎么做"(MEMORY.md)

  • AI知道"今天发生了什么"(当日chat)

  • AI能发现"昨天漏了什么"(昨日chat检查)

实际效果:断线恢复后的记忆完整性

五一期间(5月3日-5月5日),灵犀Claw因sandbox版本问题断线3天。5月6日修复上线后,AI通过读取21个chat文件,完整恢复了之前的所有对话上下文,断线三天,记忆零丢失。这就是三层架构的价值。

自动维护:让记忆系统自己运转


手动维护记忆是不可持续的。我们部署了两个自动化任务来保证系统的长期健康:

1. Memory Consolidation(每日凌晨3:00)

这是一个定时任务(灵犀Claw的timer_task),每天凌晨3点自动执行:

  1. 去重检测:扫描MEMORY.md和编年史,发现重复条目自动合并

  1. 碎片审阅:检查Dreaming流程产出的记忆碎片,筛选有长期价值的写入MEMORY.md

  1. 容量精简:压缩MEMORY.md,将冗余的格式细节、过程日志替换为简洁结论,控制总大小在12KB以内(实际运行中稳定在7-10KB)

  1. 状态更新:记录本次执行结果和下次检查时间

运行数据:从4月29日上线至今,已稳定运行8天,最近一次精简将MEMORY.md从10,039字符压缩到7,052字符(-29.8%),所有15项关键信息验证通过。

2. Self-Improving Heartbeat(每日凌晨3:00)

另一个定时任务,与Consolidation配合运行:

  1. 衰减检查:遍历所有corrections条目,超过30天未使用的标记为需关注,超过90天的移入archive归档

  1. 晋升检查:被纠正3次以上的条目,从corrections.md晋升到memory.md成为"已确认偏好"

  1. 状态更新:写入heartbeat-state.md记录每个条目的last_used时间戳

这两个任务配合,实现了记忆的自动新陈代谢:新的经验不断沉淀,过时的信息自动衰减,关键偏好永久保留。

踩坑总结


在搭建这套记忆系统的两周里,踩了不少坑。这里列出最关键的几个:

问题

现象

解决方案

chat文件漏写

连续两天忘记写,5条重要对话丢失

在user里写"刚性触发"规则,每次回复前强制执行检查

MEMORY.md膨胀

从5KB膨胀到15KB,超出上下文窗口

每日凌晨自动精简,压缩冗余内容,稳定在7-10KB

恢复历史对话后不补写

系统恢复对话summary后,AI不知道需要补写chat文件

在规则中明确加"恢复历史对话后更要主动补写"

系统任务覆盖手写内容

定时任务自动写入了chat文件,覆盖了当天的手动记录

系统写入的内容和手动记录分开存放,或用append而非覆盖模式

跨天对话记错日期

深夜的对话被记到第二天的文件里

严格按对话发生时间写入对应日期文件,不做"智能归并"

给其他Agent开发者的建议


如果你也想在灵犀Claw上给自己的AI Agent加上持久记忆,以下是按优先级排序的建议:

  1. 先做chat文件。这是投入产出比最高的动作。每次对话后追加写一个日期文件,简单到不可能出错,但解决了80%的"失忆"问题。

  1. 再做MEMORY.md。把AI经常需要查阅但不适合放user的配置信息集中到一个文件里,每次对话开始时读取。

  1. 精简user。user只放最高优先级的规则,把它当成"宪法"而不是"百科全书"。16KB的每一行都应该经得起"删掉会怎样"的考验。

  1. 加写入检查。不要依赖AI的"自觉",在system prompt里写死检查规则,每次回复前强制执行。

  1. 最后做自动维护。等前三步跑稳了,再加定时任务做精简和衰减。别过早优化。

下一篇预告


下一篇:记忆沉淀(Self-Improving)—— 如何让AI Agent从错误中学习,把纠正变成永久的记忆升级。

浏览 346
收藏
12
分享
12 +1
7
+1
全部评论 7
 
收网
666
· 山东省
回复
 
Esc2Exit
再详细点?
· 河北省
回复
糯米团长
我在一个个写,到时候我把skill传了,你直接丢给ai他应该就会部署了
·
回复
 
WPS_1745766382
+
· 浙江省
回复
 
ed
· 广东省
回复
 
晓1425883248
支持。
· 湖北省
回复