Files
nexus/wiki/sources/养龙虾5天血泪史-我的AI-Agent为什么总失忆-OpenClaw-记忆调试全记录.md
2026-04-18 00:18:08 +08:00

59 lines
3.6 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, 记忆管理, 上下文压缩]
date: 2026-04-02
---
## Source File
- [[raw/微信公众号/养龙虾5天血泪史我的AI Agent为什么总失忆OpenClaw 记忆调试全记录.md]]
## Summary
- 核心主题AI AgentOpenClaw的长期记忆问题诊断与解决
- 问题域:上下文窗口压缩导致的信息丢失、搜索失效、系统臃肿、模型切换失忆
- 方法/机制内存刷新、混合搜索BM25+向量+重排序)、检索指令、上下文修剪、系统提示词审计清理、交接协议
- 结论/价值5天调试将系统提示词从 20,9652 令牌降至 9,349 令牌(减少 28%),总结出 10 条 OpenClaw 内存管理黄金法则
## Key Claims
- 上下文压缩会丢失细节信息(姓名、数字、具体决定),需要在压缩前将重要内容写入磁盘
- 纯语义搜索在专有名词、具体数字和确切短语上失败,混合搜索(关键词+向量+重排序)效果更好
- 检索不是自动的,需要在启动序列中添加明确的检索指令
- 系统提示词中的每个未使用技能都是每个消息上的开销,移除不使用的文件比添加更重要
- 模型切换时需要交接协议,否则新模型会以空白上下文窗口开始
## Key Quotes
> "这是设计使然。上下文窗口是有限的。但默认行为对一切一视同仁,这意味着你精心设计的第三条消息指令,和第七条消息的闲聊得到了相同待遇。"
> "信息存在"和"Agent使用信息"之间有区别。你需要两者。搜索基础设施处理第一部分。启动指令和检索习惯处理第二部分。
> "真正的修复不是添加更多文件。而是移除那些什么都不做的文件。"
> "写入纪律比读取纪律更重要。如果代理不将决定、结果和错误记录到磁盘,这些东西只存在于上下文窗口中。而上下文窗口会被压缩。"
## Key Concepts
- [[上下文压缩]]OpenClaw 将旧消息压缩为摘要以腾出空间,但会丢失细节
- [[内存刷新]]:在压缩前将重要上下文写入磁盘的机制
- [[混合搜索]]:结合 BM25关键词匹配、向量嵌入语义相似性和重排序器的搜索策略
- [[检索指令]]:在启动序列中明确告诉 Agent 何时搜索的指令
- [[上下文修剪]]:通过 TTL 和保留策略主动清理旧上下文
- [[系统提示词审计]]:定期检查并移除未使用的技能和文件
- [[交接协议]]:模型切换前将当前上下文写入每日日志的规范
## Key Entities
- [[OpenClaw]]:运行在 Telegram 上的 AI Agent 管理工具,作者的助理"星辉"基于此构建
- [[QMD]]:内存搜索后端,结合 BM25、向量嵌入和重排序器
- [[SQLite]]OpenClaw 默认的搜索后端,使用向量嵌入但在精确匹配上表现不佳
## Connections
- [[上下文压缩]] ← depends_on ← [[上下文窗口]]
- [[内存刷新]] ← fixes ← [[上下文压缩]]
- [[混合搜索]] ← replaces ← [[SQLite 向量搜索]]
- [[检索指令]] ← enables ← [[上下文记忆]]
- [[交接协议]] ← solves ← [[模型切换失忆]]
- [[系统提示词审计]] ← reduces ← [[系统开销]]
## Contradictions
- 与之前的[[养虾日记2让Agent更懂你]]思路对比:
- 养虾日记2侧重 self-improving skill 和双层记忆架构的主动学习
- 本篇侧重被动防御机制(内存刷新、交接协议)和系统优化
- 两者互补:主动学习减少错误,被动防御确保记忆不丢失