AI的记忆管理应该像人类睡眠中的做梦机制:在梦中整理记忆、强化重要连接、忘却无关细节。
人类睡眠时大脑在做什么:
层级名称类比做什么1Microcompact浅睡呼吸快速删token,不动结构2Session MemoryREM睡眠整理基于会话记忆压缩,保留结构3Traditional Compact深度睡眠重组完整摘要,建立记忆关联
应该触发做梦的场景:
text
1. 提炼关键结论 → 写到文件
2. 删除中间过程 → 只保留首尾状态
3. 保留重要上下文 → 关键决策、用户偏好
4. 跨会话关联 → 发现新旧记忆的联系
5. 忘却噪音 → 删除不重要的细节
text
1. 自动发现记忆关联
- 需要:跨会话知识图谱
- 状态:待设计
2. 主动忘却机制
- 需要:重要性评分系统
- 状态:待设计
3. 记忆可视化
- 需要:定期输出记忆地图
- 状态:待设计
人类睡眠AI做梦短期记忆→长期记忆对话→文件记忆关联知识图谱忘却不重要的事丢弃tokenREM整理分层压缩
text
任务完成 →
1. 提炼核心结论(what was done, key decisions)
2. 提取重要发现(insights worth remembering)
3. 记录未解决问题(for follow-up)
4. 检查是否有记忆关联(与旧记忆的联系)
5. 忘却噪音(不重要细节删除)
6. 写入适当文件(memory/YYYY-MM-DD.md 或专题文件)
7. 清理对话上下文
功能描述优先级记忆关联发现自动发现新旧记忆之间的联系高重要性评分给每条记忆打分,决定保留/忘却中主动忘却不重要的记忆自动降级/删除中记忆可视化输出记忆地图供人类阅读低
来源:Claude Code 上下文管理机制 + 人类睡眠记忆研究,512,000行源码研究
以下是 v1 最小可运行版本的实现规格。
指标定义阈值检测方式工作记忆积压有 next_step 但 stale>=3轮 的任务数≥ 3task-state.sh未闭合话题status=active/pending 的话题数≥ 3topic-tracker.sh决策滞留率有决策点但≥2轮未决策的任务数≥ 2task-state.shToken使用率当前会话token估算> 70000对话历史文件大小
触发规则:
心跳cron每次触发时,自动运行碎片化检测脚本:
text
heartbeat-logger.sh → 调用 dream-fragmentation-check.sh
检测结果写入:
/tmp/.dream-trigger — 存在则主AI必须整理/tmp/heartbeat-realtime.json — 含 dream_trigger 字段bash
# 注册任务(开始时)
dream/task-state.sh register <id> <goal> <next_step>
# 推进了一步(重置stale轮次)
dream/task-state.sh update <id> --advance
# 已做决策
dream/task-state.sh update <id> --decide
# 完成任务(移除)
dream/task-state.sh close <id>
# 所有任务stale轮次+1(每次心跳后)
dream/task-state.sh stale
# 列出所有任务
dream/task-state.sh list
bash
# 标记新话题开始
dream/topic-tracker.sh mark <topic_name>
# 切换话题(自动pause旧话题)
dream/topic-tracker.sh switch <new_topic>
# 标记当前话题完成
dream/topic-tracker.sh done
# 标记当前话题暂停
dream/topic-tracker.sh pause
# 列出所有话题
dream/topic-tracker.sh list
当 /tmp/.dream-trigger 存在时,主AI必须执行以下整理流程:
text
Step 1: 全量扫描(只读)
→ 读取 task-state + topic-state + 对话历史
→ 识别:决策、任务、偏好、未闭合回路
Step 2: 结构化抽取
→ 输出:任务列表、决策日志、实体表
Step 3: 冲突检测 + 去重
→ 发现:自相矛盾、重复定义、版本漂移
Step 4: 写入长期记忆
→ memory/YYYY-MM-DD.md
→ 相关专题文件
Step 5: 状态决策(关键步骤)
→ 逐个任务判断:
- 推进(advance):更新 next_step,重置 stale=0
- 关闭(close):放弃或已完成,移出任务列表
- 保持(keep):无法推进但不能关闭,stale 归零但保留
→ 逐个话题判断:
- 完成(done):话题结束,移出未闭合列表
- 暂停(pause):保持暂停状态
- 激活(activate):继续深入讨论
→ 调用 task-state.sh / topic-tracker.sh 执行状态变更
Step 6: 上下文压缩替换
→ 丢弃:过程噪音
→ 保留:结论 + 任务状态快照 + 索引
Step 7: 清理trigger
→ rm /tmp/.dream-trigger
→ 通知主AI整理完成
text
❌ 冲突检测 + 去重(v2)
❌ 跨会话关联(v2)
❌ 情绪处理(长期)
❌ 加权多维指标体系(v2+)
❌ 自动发现记忆关联(v2+)
❌ 整理后自动状态决策(v2)— 端到端测试发现缺失
文件作用scripts/dream/dream-fragmentation-check.sh碎片化检测主脚本scripts/dream/task-state.sh任务状态管理scripts/dream/topic-tracker.sh话题追踪scripts/heartbeat-logger.sh集成到心跳.dream/task-state.json任务状态存储.dream/topic-state.json话题状态存储.dream/metrics.json最近检测指标/tmp/.dream-trigger触发标志文件