5.2 KiB
5.2 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | |||||
|---|---|---|---|---|---|---|---|---|---|
| 养龙虾5天血泪史:我的AI Agent为什么总失忆?OpenClaw 记忆调试全记录 | source |
|
2026-04-23 |
Source File
Summary(用中文描述)
- 核心主题:OpenClaw AI Agent 记忆失效问题的诊断与修复
- 问题域:AI Agent 长期记忆缺失、上下文压缩丢失信息、搜索不准确、检索不自动、系统臃肿
- 方法/机制:通过5天专项调试,发现5类根本原因(压缩机制、搜索后端、检索触发、压缩协同、系统配置),对应10条黄金法则
- 结论/价值:写入纪律比读取纪律更重要;系统提示词中每个令牌都是开销;压缩不是敌人,未写入的上下文才是
Key Claims(用中文描述)
- 当对话填满 Context Window 时,OpenClaw 将旧消息压缩成摘要,姓名、数字、具体决定等细节全部丢失
- 纯语义搜索在专有名词、具体数字和确切短语上失败,BM25+向量+重新排序的混合搜索明显更好
- "信息存在"和"Agent 使用信息"之间有区别——必须通过启动指令强制触发检索
- OpenClaw 仅自动加载 AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md、HEARTBEAT.md、MEMORY.md,其他文件需要明确读取指令
- 模型切换时丢失所有上下文,新模型只看到自动加载的文件,需要交接协议将状态写入每日日志
- 系统提示词从 209,652 精简到 9,349 令牌,轻了 28%
Key Quotes
"压缩不是敌人。压缩过程中丢失信息才是。修复方法是确保任何值得记住的内容在压缩器触及前写入文件。" — Day 1 核心洞察
"纯语义搜索理论上听起来不错,但在专有名词、具体数字和确切短语上失败。混合搜索对现实世界代理内存明显更好。" — Day 2 核心洞察
"'信息存在'和'Agent 使用信息'之间有区别。你需要两者。" — Day 3 核心洞察
"真正的修复不是添加更多文件。而是移除那些什么都不做的文件。" — Day 5 核心洞察
Key Concepts
- 上下文压缩:OpenClaw 将旧消息压缩成摘要为新消息腾空间的机制,摘要丢失细节(姓名、数字、决定)
- 上下文刷新(Memory Flush):压缩前将重要上下文写入磁盘的配置,
softThresholdTokens: 4000触发刷新 - 混合搜索(Hybrid Search):BM25(关键词)+向量嵌入+重新排序器组合,兼顾精确匹配和语义相似性
- Context Pruning:上下文修剪机制,与压缩协同工作,
cache-ttl模式 6 小时后清理旧上下文,保留最后 3 个助手响应 - 系统提示词膨胀(System Prompt Bloat):未使用技能、臃肿内存文件、不自动读取的文件默默累积 token 开销
- 交接协议(Handoff Protocol):模型切换前将当前上下文写入每日日志的规程,防止新模型丢失状态
- 启动序列:Agent 启动时必须执行的操作指令,必须放在 AGENTS.md 最顶部
- 写入纪律(Write Discipline):强制 Agent 将决定、结果和错误记录到磁盘,比读取纪律更关键
- 自动加载文件:OpenClaw 在每个新会话自动读取的 7 个核心文件(AGENTS/SOUL/TOOLS/IDENTITY/USER/HEARTBEAT/MEMORY)
- 检索触发(Retrieval Trigger):Agent 必须被明确告知何时搜索,不能依赖隐式线索
Key Entities
- OpenClaw:multi-agent framework,本文调试的核心框架,内存管理机制的关键系统
- 比利哥(shenwei):本文作者,正在研究 AI 提高工作效率的个人用户,OpenClaw AI 助理"星辉"的所有者
Connections
- 上下文压缩 ← depends_on ← 上下文刷新
- 上下文刷新 ← prevents ← 上下文压缩的信息丢失
- 混合搜索 ← extends ← QMD搜索后端
- Context Pruning ← coordinates_with ← 上下文压缩
- 交接协议 ← solves ← 上下文刷新无法覆盖多次压缩的问题
- 养虾日记1 ← related_to ← 养虾日记2 ← related_to ← 养虾日记3
- 养龙虾5天血泪史 ← related_to ← 养虾日记1(同一系列)
Contradictions
-
与 Second Brain 冲突:
- 冲突点:MEMORY.md 的定位
- 当前观点(本文):任务期间永远不要直接写入 MEMORY.md,每日日志是原始且仅追加的,MEMORY.md 应在定期审查期间策划
- 对方观点(Second Brain):通过对话零摩擦捕获任何内容,OpenClaw 永久记忆存储所有对话
- 说明:两者不矛盾,Second Brain 侧重捕获策略,本文侧重策划和写入纪律
-
与 personal-crm 冲突:
- 冲突点:联系人信息的记录方式
- 当前观点(本文):每日日志仅追加,由定时任务(如心跳或定时任务)期间审查并提炼
- 对方观点(personal-crm):每日 Cron Job 扫描 Gmail 和日历,自动提取新联系人并更新 SQLite 数据库
- 说明:personal-crm 针对结构化联系人数据有专门处理流程,与本文的通用内存写入纪律互补