Files
nexus/wiki/sources/养龙虾5天血泪史-我的ai-agent为什么总失忆-openclaw-记忆调试全记录.md

72 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 针对结构化联系人数据有专门处理流程,与本文的通用内存写入纪律互补