Auto-sync: 2026-04-23 04:02

This commit is contained in:
2026-04-23 04:02:48 +08:00
parent d1e7e4344b
commit 6f44ff76a2
64 changed files with 3300 additions and 1129 deletions

View File

@@ -0,0 +1,71 @@
---
title: "养龙虾5天血泪史我的AI Agent为什么总失忆OpenClaw 记忆调试全记录"
type: source
tags: [AI, Agent, OpenClaw, Memory, Memory-Management]
sources: []
last_updated: 2026-04-23
---
## Source File
- [[微信公众号/养龙虾5天血泪史我的AI Agent为什么总失忆OpenClaw 记忆调试全记录]]
## 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 SearchBM25关键词+向量嵌入+重新排序器组合,兼顾精确匹配和语义相似性
- [[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 TriggerAgent 必须被明确告知何时搜索,不能依赖隐式线索
## 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 针对结构化联系人数据有专门处理流程,与本文的通用内存写入纪律互补