你的 AI Agent 为什么越用越蠢?OpenClaw 三层记忆架构实战
你的 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
- 接收需求 → @智库确认
- 智库同意 → 分配任务
- 执行 → 状态同步
- 验收 → 通知 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 记忆体检报告。