大数跨境

OpenClaw 智能体记忆管理大法

OpenClaw 智能体记忆管理大法 苏哲管理咨询
2026-02-13
33
导读:OpenClaw 3 周后出现MEMORY.md 膨胀至427 行、单次加载消耗2 万token、AI 因信息淹没响应变蠢的问题,发现社区普遍存在上下文溢出、token 成本暴涨、手动维护繁琐等痛点,

图像

编者摘要: 运行OpenClaw 3 周后出现MEMORY.md 膨胀至427 、单次加载消耗tokenAI 因信息淹没响应变蠢的问题,还发现社区普遍存在上下文溢出token 成本暴涨、手动维护繁琐等痛点,遂参考@ohxiyu 的优先级标签记忆管理方案,落地了热记忆、冷记忆、原始日志的三层记忆架构,编写memory-janitor.py自动归档脚本并将核心规则精简至条,过程中解决了正则匹配过宽、无原子写入等个技术坑,最终实现token 降低78%、记忆行数减少77%AI 回答质量更精准;该方案仅实现了成本优化与维护自动化,靠读取文件让AI Agent “假装” 有记忆,并未解决真正的长期记忆问题,真正的长期记忆还需fine-tuning 或更强的RAG 技术支撑。

图示

AI 生成的内容可能不正确。

本文围绕OpenClaw AI Agent 记忆管理问题展开,从问题发现到方案落地、踩坑解决,最终实现了token 大幅降低和回答质量提升,同时明确了方案的局限性,具体内容如下:

1.问题发现:个人痛点社区共性

o个人运行OpenClaw 3 周后,MEMORY.md 膨胀至427 ,每次对话启动需加载token,因信息淹没导致AI “变蠢,关键信息被忽略、无关信息反复提及。

o社区存在三大核心痛点:上下文溢出、token 成本高达5-10 美元且持续增长、手动维护记忆成本高,甚至出现关键信息(如API key)丢失的情况。

o参考@ohxiyu 的记忆管理方案,核心为给记忆加P0/P1/P2 优先级标签,该方案实现了**token 降低60%** 且回答质量提升,成为本次优化的基础。

2.核心落地:三层记忆架构设计

为解决信息冗余问题,设计了分层的记忆架构,各层分工明确、按需加载,每条热记忆必须附带优先级日期,为自动归档提供基础:

o热记忆:存储于MEMORY.md,限制200 行以内,每次对话均加载,包含P0 核心身份、P1 活跃项目、P2 临时内容三类。

o冷记忆:过期内容迁移至memory/archive/,教训类内容结构化存储于memory/lessons/*.jsonl,按需通过memory_search 语义搜索召回,不占用每日token 预算。

o原始日志:按memory/YYYY-MM-DD.md 格式存储,保留原始记录素材,不参与每日加载。

3.自动化维护:memory-janitor.py 脚本开发

针对手动维护的弊端,编写了400 memory-janitor.py 自动归档脚本,通过cron 设置每日点自动运行,核心设计如下:

o核心逻辑:P0 优先级内容永久保留,P2 内容超过30 天归档,P1 内容超过90 天归档;

o边界处理:支持原子写入(先写临时文件再重命名,避免崩溃丢数据)、归档去重(防止重复归档)、行首精准匹配(避免误解析正文内的优先级标签)、超限警告(热记忆超200 行输出提醒)。

4.规则精简:核心原则仅保留

o原问题:此前踩坑后无节制添加Iron Rule,最终膨胀至17 且散落在文件中,无实际使用价值;

o新方案:AGENTS.md 仅存放条核心原则,其余踩坑记录均结构化存储至lessons/*.jsonl,需用时通过语义搜索“X 踩坑” 召回相关教训;

o条核心原则:真钱正确性速度、外部操作先问、自动化两套系统、长期进程用setsid 隔离、新平台先读结算规则。

5.问题解决:个核心技术坑及应对方案

方案落地过程中遇到个技术问题,均针对性优化解决:

o1Regex 匹配太宽,用re.search () 误解析正文内的优先级标签,改为re.match ()+ 行首匹配精准识别bullet point 开头的记忆;

o2:无原子写入,直接覆盖文件易因崩溃导致文件损坏,改为先写.tmp 临时文件,再用os.replace () 原子替换

o3MAX_LINE定义未生效,热记忆超200 行无提醒,添加超限检测逻辑,超行则输出warning

o4归档文件重复追加,同一天多次运行导致内容重复,改为读取已归档内容做去重后再写回

6.实测效果:token 降幅78%,回答质量提升

采用tiktoken 统计真实数据,优化前后的核心指标对比清晰,token 减少78%,且因信息噪音降低,AI 回答更精准,具体对比如下表:

对比维度

优化前

优化后

变化幅度

行数

427 

96 

-77%

Tokens

6618

1488

-78%

维护方式

手动

自动cron

自动化

Iron Rules

17 条(散落)

条(集中)

精简核心

教训召回

全文扫描

语义搜索

效率提升

注:token 计算为旧MEMORY.md 15.5 tokens / 行测算,新MEMORY.md 直接统计为1488 tokens

7.代码资源:完整可落地的工程化实现

所有代码均开源至GitHub Gist,包含scripts/memory-janitor.py、热记忆教训核心原则模板、OpenClaw skillClaude Code 集成代码及中英文README,可直接落地使用。

8.方案局限:未解决真正的长期记忆问题

本次方案的本质是成本优化维护自动化,并非让AI Agent 拥有真正的记忆:AI Agent 每次session 仍从零开始,仅靠读取文件假装” 有记忆,P0/P1/P2 分级只是让该过程更高效;而实现真正的长期记忆,需要依赖fine-tuning(微调)或更强的RAG(检索增强生成)技术,这是后续的研究方向。

关键问题Q&A

问题1(方案设计侧):OpenClaw 记忆管理方案中,三层记忆架构的具体划分标准和使用方式是什么?

答案:三层记忆按使用频率、存储形式、token 消耗划分,热记忆为MEMORY.md ≤200 行的带优先级日期内容,每次对话均加载;冷记忆为过期归档内容和结构化教训文件,按需通过语义搜索召回,不占token 预算;原始日志为按日期命名的md 文件,仅保留原始素材,不参与每日加载。

问题2(落地效果侧):本次OpenClaw 记忆管理优化落地后,核心量化指标和使用体验分别有哪些提升?

答案:量化指标上,MEMORY.md 行数从427 行降至96 行,降幅77%token 6618 降至1488,降幅78%;使用体验上,实现了记忆维护的自动化(cron 每日自动归档),核心规则精简为条且集中管理,教训召回从低效的全文扫描改为高效的语义搜索,同时因信息噪音减少,AI Agent 的回答质量更精准。

问题3(方案局限侧):本次落地的OpenClaw 记忆管理方案并非真正的AI Agent 记忆方案,其核心局限性和未来的解决方向是什么?

答案:核心局限性为该方案仅实现了成本优化和维护自动化,AI Agent 每次session 仍从零开始,只是通过读取分层文件假装” 有记忆,并未真正拥有长期记忆能力;未来的解决方向是实现AI Agent 的真正长期记忆,需要依托fine-tuning(模型微调)或者更强的RAG(检索增强生成)技术。

----------------------------------

AI Agent记忆越多反而越蠢?OpenClaw 记忆管理实战:三层架构自动归档(Token 78%)

Jason Zuo 211

我的OpenClaw 跑了3周,

MEMORY.md膨胀到427 行。

每次对话启动,先吃掉token 加载记忆。然后我发现一个荒谬的事实:记忆越多,AI 反而越蠢。

不是模型变差了,是信息淹没了。当你把400 多行记忆一股脑塞给LLM,它找不到关键信息,该记住的忘了,不该提的反复念叨。

1   问题有多严重?

翻了一下OpenClaw GitHub issues,发现我不是一个人:

#5771 — "2-3条消息后就overflow,即使删了所有memory"

#9142 — "$5-10/天的token 成本,context 一直增长"

#6622 — "API key在对话中收到,compaction 后就丢了"

社区最痛的问题:上下文溢出、成本暴涨、手动维护累死人。

然后我看到@ohxiyu

发的那篇记忆管理方案,核心思路是给记忆加优先级标签:

P0 —核心身份,永不过期

P1 —活跃项目,90 天过期

P2 —临时内容,30 天过期

他说token 降了60%,回答质量反而提升了。

我决定花点时间研究并落地这个方案。

2   最终方案:三层记忆

第一层:热记忆(每次加载)

MEMORY.md,限制在200 行以内。格式:

图像

每条记忆带优先级日期。没有这两个,自动归档就没法跑。

第二层:冷记忆(按需搜索)

过期的内容不删除,移到memory/archive/

教训类内容存到memory/lessons/*.jsonl,结构化格式:

图像

需要时用memory_search 语义搜索召回,不占每日token 预算。

第三层:原始日志

memory/YYYY-MM-DD.md保持不动,该怎么记怎么记。这是原始素材,不是每天加载的内容。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

3   自动归档脚本

手动维护必然失败。我写了个

memory-janitor.py,cron 每天点自动跑:

核心逻辑

图像

完整代码400 行,处理了这些边界情况:

Atomic write —先写临时文件再renamecrash 不会丢数据

Dedup —同一天跑两次不会重复归档

行首匹配— 正文里的[P1] 不会被误解析

超限警告— 超过200 行输出warning

4   规则管理:只留

我之前犯了个错:每次踩坑就往

MEMORY.md加一条Iron Rule

结果Iron Rules 膨胀到17 条,散落在文件各处。记不住,也没用。

现在的做法:

AGENTS.md

只放条核心原则,其他教训存lessons/*.jsonl 用语义搜索召回。

我的条:

真钱正确性速度

外部操作先问

自动化两套系统(system crontab + OpenClaw cron

长期进程用setsid 隔离

新平台先读结算规则

具体踩坑记录?搜索召回。做某事前跑一下memory_search("X 踩坑"),相关教训自动浮现。

5   踩坑记录

1Regex 匹配太宽

第一版用

re.search

()[P1][2026-02-10],结果正文里写"参考[P1] 的教训"也被解析了。

改成re.match() + 行首^\s*-\s*\[P,只匹配bullet point 开头。

2:没有atomic write

直接file.write_text() 覆盖原文件。如果写到一半crash,文件就废了。

改成先写.tmp 文件,再os.replace() 原子替换。

3MAX_LINES 定义了没用

代码里写了MAX_LINES = 200,但从来没检查过。P0 膨胀到500 行也不会警告。

加了超限检测,超过200 行就输出warning 提醒手动清理。

4:归档文件用append

同一天跑两次,同样的内容归档两遍。

改成每次读取已归档内容做dedup,再写回。

6   效果:实测数据

tiktoken 跑了一下真实da token 数:

图像

具体计算:

新MEMORY.md

96 = 1,488 tokens

旧MEMORY.md

427 × 15.5 tokens/≈ 6,618 tokens

减少:6,618 - 1,488 = 5,130 tokens

降幅:5,130 / 6,618 = 78%

Token降了78%,回答质量没下降,反而更精准了。噪音少了,信号就清晰了。

7   完整代码

GitHub Gist:

https://github.com/jzOcb/openclaw-memory-management

包含:

scripts/memory-janitor.py —自动归档脚本(atomic writededup、超限警告)

templates/MEMORY.md —热记忆模板

templates/lessons.jsonl —结构化教训格式

templates/AGENTS-rules.md — 5条核心原则示例

skills/memory-management/ — OpenClaw skill

claude-code/ — Claude Code集成

中英文README

8   这套方案没解决的问题

诚实说,这不是"AI 有真正记忆"的方案。这是成本优化维护自动化。

AI agent每次session 还是从零开始,靠读文件"假装"有记忆。P0/P1/P2 只是让这个假装更高效。

真正的长期记忆需要的是fine-tuning 或者更强的RAG。那是另一个话题了。

这篇讲了「怎么做」。

但你可能会问:搞这么复杂干嘛?128K context 不够塞吗?

我也这么想过。直到看到Anthropic 的解释👉Context EngineeringAI Agent 的真正核心

https://x.com/xxx111god/status/2021975762383876099

感谢@ohxiyu

的原始方案。我只是花一天把理论变成了可跑的代码。

有问题欢迎评论区讨论,或者直接在Github Gist下面提issue


【声明】内容源于网络
0
0
苏哲管理咨询
为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
内容 2003
粉丝 0
苏哲管理咨询 为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
总阅读5.5k
粉丝0
内容2.0k