返回首页
memory2026-02-12

你的 AI Agent 为什么越用越蠢?OpenClaw 三层记忆架构实战

作者: @servasyy_ai查看原文
AD SLOT — TOP

你的 AI Agent 为什么越用越蠢?OpenClaw 三层记忆架构实战

By @servasyy_ai | Thu Feb 12 01:05:01 +0000 2026 Likes: 107 | Retweets: 25 | Views: 13341 Words: 396

问题:917 行数据的警示

2026 年 2 月,我们对团队的 4 个 Agent 进行了记忆体检。结果令人警醒:

Agent精简前精简后精简率

黄家1号917 行 / 30KB88 行 / 2KB 90%

智库348 行 / 14KB73 行 / 3KB 79%

技术顾问121 行 / 3KB-不需要

创意伙伴43 行 / 4KB-不需要

这是什么概念?假设 Agent 的上下文窗口是 128K tokens,917 行的 MEMORY.md 就会吃掉约 1/4 的空间。留给实际任务、思考、回复的容量大幅缩水。

症状很明显:Agent 回复变慢、指令遵循变差、越记越蠢。

根因:AI 不会自己忘记

人脑有自然的遗忘曲线,不重要的事会自动淡化。AI 没有。

每条记忆在写入时都觉得"这很重要",但三天后可能完全过时。没有淘汰机制,必然膨胀。这不是 if 的问题,是 when 的问题。

典型路径:

做了件事 → "记下来" → MEMORY.md +5 行 又做了件事 → "也记下来" → +5 行 项目结束了 → 没人清理 → 历史细节永久占位 三个月后 → 300+ 行 → Agent 读完记忆就用掉 1/4 上下文窗口

核心洞察:AI 不会自己忘记,所以你必须教它忘记。

方案:三层架构

解决问题需要结构化方法。我们将记忆分为三层:

第一层:热记忆 — MEMORY.md(≤150 行)

定位:Agent 每次醒来必读的"出厂设置"。

内容:

当前生效的规则

分工表

SOP(标准操作流程)

关键参数

限制:≤150 行,硬性上限。

类比:肌肉记忆——不用想就知道的事。

真实使用案例

一个典型的热记忆应该长这样:

MEMORY.md - 黄家1号

核心原则

  • servasyy 开口 > 当前任务
  • 30 秒能解决的事不绕圈子

分工

  • 黄家1号:协调串联
  • 智库:策略设计
  • 技术顾问:代码实现

协作规则

  • @黄家1号 = 我响应
  • 重要信息记到 memory/

这段不到 30 行,但包含了所有"不看会做错事"的信息。

常见误区

❌ 把项目细节写进热记忆

错误示范

  • 项目 X 客户叫王总,电话 138-xxxx-xxxx
  • 上次改的 BUG 在 user_service.py 第 43 行

这类信息当时记得,过三个月可能项目都没了。应该放冷记忆。

❌ 把每日任务写进热记忆

错误示范

  • 今天要写完 xxx 功能
  • 下午 3 点开会

这类是一次性的,应该在原始日志里,不该沉淀到热记忆。

精简前后对比

精简前(217 行):

2024-11 的经验

  • 那个 BUG 终于解决了,原因是...
  • 客户王总说...
  • 上次和张三讨论的结论是...
  • 智库建议我们...
  • 技术顾问踩的坑:... (200+ 行全是这种)

精简后(88 行):

MEMORY.md - 黄家1号

核心规则

  • servasyy 开口 > 当前任务
  • 协调者不写代码

分工表

  • 黄家1号:接收需求、协调分工
  • 智库:策略设计
  • 技术顾问:代码实现
  • 创意伙伴:内容创作

协作 SOP

  1. 接收需求 → @智库确认
  2. 智库同意 → 分配任务
  3. 执行 → 状态同步
  4. 验收 → 通知 servasyy

精简了 60%,但核心规则都在。

第二层:冷记忆 — memory/archive/YYYY-MM.md

定位:不自动注入,用 memory_search 按需检索。

内容:

历史教训

已完成项目经验

过时但可能有参考价值的决策

组织:按月归档,带标题方便搜索。

类比:经验图书馆——需要时去查,不用天天背着。

真实使用案例

然后用 memory_get 读取具体内容。这就是冷记忆的用法——不预加载,用时再查。

归档示例

常见误区

❌ 把所有东西都堆在热记忆 有些人觉得"记都记了,放着吧",结果 MEMORY.md 越来越长。

❌ 冷记忆归档后从来不查 归档是为了有一天能查到。如果从来不搜,归档的意义是什么?

❌ 标题写得不清楚

2026-02.md ← 这就是错的

2026-02 项目复盘和决策 ← 这才对

归档要有标题,不然搜不到。

第三层:原始日志 — memory/YYYY-MM-DD.md

定位:每日流水账,用于复盘。

内容:当天发生的事,原始记录。

不归档到冷记忆:除非有值得提炼的教训。

类比:行车记录仪——平时不看,出事了回放。

典型日志条目

什么时候该归档

日志里只有以下内容需要归档到冷记忆:

有教训值得记住(比如踩坑记录)

有决策需要追溯(比如为什么选了方案 A)

有项目经验可复用

其他流水账没必要归档,就让它留在原始日志里吃灰。

常见误区

❌ 把原始日志当天就删 "记都记完了,删了吧"——别。日志是保命用的,哪天出问题你要回放。

❌ 在原始日志里写太详细

错误示范

今天下午 2:15 分,我和技术顾问讨论了 Digital Twin 报告的问题...

没人想看小作文。记关键点就行。

❌ 所有事都想提炼到热记忆 "今天学到了 xxx"——不用每次都提炼。等月末复盘时再决定哪些值得升级到热记忆。

实操:三条判断标准

怎么判断一条记忆该放哪层?问自己三个问题:

Q1:下次醒来不看这条,会不会做错事?

会 → P0,留在热记忆。

例:当前分工表、审核 SOP、铁律规则。

Q2:某天可能要查这条吗?

可能 → P1,归档到冷记忆。

例:上个月的项目教训、某次失败的根因分析。

Q3:以上都不是?

留在原始日志就行,不用额外处理。

例:某天的对话记录、临时调试过程。

精简操作步骤

读完整 MEMORY.md

逐条问上面三个问题

P0 留下,P1 移到 memory/archive/YYYY-MM.md

验证:精简后的 MEMORY.md ≤ 150 行

注意:首次使用前需创建归档目录:mkdir -p memory/archive

自动化:记忆体检脚本

定期检查比手动更可靠。以下是记忆体检脚本:

Cron 集成示例

将记忆体检加入 cron,实现自动监控:

编辑 crontab

crontab -e

添加以下行(每周一 9:00 AM 检查)

0 9 * * 1 /path/to/memory-compact.sh

将此脚本集成到现有的健康检查流程中,实现自动监控。

效果验证

定量

智库:每次 session 注入从 ~14KB 降到 ~3KB(节省 79%)

黄家1号:从 ~30KB 降到 ~2KB(节省 93%)

全团队 Token 消耗显著下降

定性

指令遵循率提升(核心规则不再被噪音淹没)

历史知识没丢(冷记忆随时可搜)

有了自动告警,不会再无意识膨胀

核心原则

热记忆要瘦:≤150 行是硬约束,不是建议。

冷记忆要活:定期归档,保持可搜索性。

原始日志要留:不要删除,必要时可追溯。

记忆管理的本质不是"记更多",而是"记更准"。在有限的上下文窗口里,每一条记忆都在和未来的任务争夺空间。精简不是损失,是聚焦。

数据来源:2026-02-12 实测,4 个 Agent 记忆体检报告。

AD SLOT — BOTTOM