Update nexus: fix conflicts and sync local changes
This commit is contained in:
@@ -1,71 +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 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 针对结构化联系人数据有专门处理流程,与本文的通用内存写入纪律互补
|
||||
---
|
||||
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 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 针对结构化联系人数据有专门处理流程,与本文的通用内存写入纪律互补
|
||||
|
||||
Reference in New Issue
Block a user