Tiered Recall 🧠📚
分层回忆系统 - 解决大模型上下文长度限制,保持项目延续性
🎯 核心问题
大模型上下文有限(约20万token),复杂项目可能跨多天、多窗口进行。每次新session开始时,如何快速恢复上下文,保持工作延续性?
常见痛点:
- - 新开窗口,之前的项目背景丢失
- 跨天任务,第二天不记得昨天做了什么
- 多项目并行,切换时混乱
- 手动回顾太慢,浪费时间
🚀 解决方案:分层回忆
自动加载策略(每次新session)
| 层级 | 内容 | Token预算 | 加载条件 |
|---|
| 🔴 L0 核心 | INLINECODE0 | ~4k | 始终加载 |
| 🟠 L1 近期 |
最近7天日志 | ~15k | 始终加载(智能跳过无记录天) |
| 🟡 L2 项目 | 活跃项目文件 | ~5k | 自动检测 |
| 🟢 L3 索引 | 记忆索引 | ~1k | 始终加载 |
|
总计 | |
~25k | |
总预算:~25k token,约占总上下文的12.5%
可在 config.json 中修改 recentDays 调整自动加载天数
📂 文件结构
CODEBLOCK0
🔄 自动加载流程
Step 1: 检测触发条件
自动触发:
- - 新session开始
- 用户说"继续之前的项目"
- 用户提到项目名称
Step 2: 加载L0核心记忆
CODEBLOCK1
Step 3: 加载L1近期日志
CODEBLOCK2
自动提取:
Step 4: 加载L2活跃项目
CODEBLOCK3
Step 5: 加载L3记忆索引
CODEBLOCK4
🎮 手动深度回忆
当默认加载不够时,用户可以要求深度回忆:
指令语法
| 指令 | 作用 | 示例 |
|---|
| INLINECODE3 | 加载所有记忆文件(动态计算天数) | "回忆全部" |
| INLINECODE4 |
加载最近N天日志 | "回忆最近14天" |
|
回忆 [项目名] | 加载该项目全部记忆 | "回忆搞钱特战队" |
|
回忆 [日期] | 加载指定日期日志 | "回忆3月20日" |
|
回忆 [关键词] | 按关键词搜索记忆 | "回忆抖音小游戏" |
执行流程
CODEBLOCK5
📊 Token 预算控制
默认加载(~20k token)
CODEBLOCK6
深度回忆时(动态调整)
CODEBLOCK7
🛠️ 脚本命令
生成记忆索引
CODEBLOCK8
功能:
- - 扫描
memory/ 目录所有日志 - 提取关键词和主题
- 生成 INLINECODE9
更新活跃项目
CODEBLOCK9
功能:
- - 扫描最近日志中提到的项目
- 更新 INLINECODE10
加载记忆
CODEBLOCK10
参数:
- -
--full 全量加载,加载所有记忆文件 - INLINECODE12 加载最近N天的日志
- INLINECODE13 只加载指定项目
- INLINECODE14 只加载指定主题
- INLINECODE15 深度加载,突破默认token限制
📝 使用示例
场景1:新session自动加载
CODEBLOCK11
场景2:手动深度回忆
CODEBLOCK12
场景3:跨天任务延续
CODEBLOCK13
⚙️ 配置选项
.tiered-recall/config.json
CODEBLOCK14
关键配置说明:
- -
recentDays: 自动加载最近N天(默认7天,可自定义) - INLINECODE18 : 深度回忆时的token预算上限
🔧 技术实现
记忆索引生成算法
CODEBLOCK15
活跃项目检测
CODEBLOCK16
🎯 最佳实践
1. 保持MEMORY.md精简
- - ✅ 只放长期重要的信息
- ❌ 不要放每日琐事
- 目标:< 200行
2. 每日日志结构化
CODEBLOCK17
3. 项目关键词规范
在日志中使用统一的项目名称:
- - ✅ "合成天选打工人"、"搞钱特战队"
- ❌ "那个游戏"、"赚钱的项目"
4. 定期清理索引
CODEBLOCK18
📈 效果对比
| 场景 | 无分层回忆 | 有分层回忆 |
|---|
| 新session启动 | 手动回顾5-10分钟 | 自动加载,即刻恢复 |
| 跨天任务 |
"我们昨天做什么来着" | "继续昨天的X任务" |
| 多项目切换 | 混乱、遗忘 | 自动加载项目上下文 |
| Token消耗 | 随机、不稳定 | 可控、~20k预算 |
🤝 与其他技能协作
| 技能 | 协作方式 |
|---|
| INLINECODE19 | 共享记忆结构,增量更新 |
| INLINECODE20 |
团队会议记录自动索引 |
|
proactive-agent | 心跳检查时更新索引 |
📝 Changelog
v1.2.0 (2026-03-27)
- - 🔄 改为自动加载最近7天
- ✨ 新增
--full 全量加载参数 - ✨ 新增
--days N 自定义天数参数 - 📊 优化token预算分配
v1.1.0 (2026-03-25)
v1.0.0 (2026-03-25)
- - ✨ 初始版本
- 🔄 支持分层自动加载
- 🔍 支持手动深度回忆
💬 Feedback
- - Issues: GitHub Issues
- Rate: INLINECODE24
- Update: INLINECODE25
Made with 🧠 by davidme6
Tiered Recall 🧠📚
分层回忆系统 - 解决大模型上下文长度限制,保持项目延续性
🎯 核心问题
大模型上下文有限(约20万token),复杂项目可能跨多天、多窗口进行。每次新session开始时,如何快速恢复上下文,保持工作延续性?
常见痛点:
- - 新开窗口,之前的项目背景丢失
- 跨天任务,第二天不记得昨天做了什么
- 多项目并行,切换时混乱
- 手动回顾太慢,浪费时间
🚀 解决方案:分层回忆
自动加载策略(每次新session)
| 层级 | 内容 | Token预算 | 加载条件 |
|---|
| 🔴 L0 核心 | MEMORY.md | ~4k | 始终加载 |
| 🟠 L1 近期 |
最近7天日志 | ~15k | 始终加载(智能跳过无记录天) |
| 🟡 L2 项目 | 活跃项目文件 | ~5k | 自动检测 |
| 🟢 L3 索引 | 记忆索引 | ~1k | 始终加载 |
|
总计 | |
~25k | |
总预算:~25k token,约占总上下文的12.5%
可在 config.json 中修改 recentDays 调整自动加载天数
📂 文件结构
workspace/
├── MEMORY.md # L0 核心记忆(长期)
├── memory/
│ ├── 2026-03-25.md # 每日日志
│ ├── 2026-03-24.md
│ ├── 2026-03-23.md
│ └── ...
├── .tiered-recall/
│ ├── index.json # 记忆索引
│ ├── projects.json # 活跃项目清单
│ └── state.json # 加载状态
└── skills/
└── tiered-recall/
└── SKILL.md # 本技能
🔄 自动加载流程
Step 1: 检测触发条件
自动触发:
- - 新session开始
- 用户说继续之前的项目
- 用户提到项目名称
Step 2: 加载L0核心记忆
markdown
MEMORY.md 加载
Step 3: 加载L1近期日志
markdown
最近2天日志
- - memory/2026-03-25.md
- memory/2026-03-24.md
自动提取:
Step 4: 加载L2活跃项目
json
// .tiered-recall/projects.json
{
active: [
{
name: 合成天选打工人,
path: games/merge-worker/,
lastActive: 2026-03-24,
keyFiles: [index.html, README.md]
},
{
name: 搞钱特战队,
path: products/AI-Guide/,
lastActive: 2026-03-24,
keyFiles: [chapter1/]
}
]
}
Step 5: 加载L3记忆索引
json
// .tiered-recall/index.json
{
topics: {
游戏开发: [memory/2026-03-23.md:line100-200, memory/2026-03-24.md:line50-150],
搞钱特战队: [memory/2026-03-24.md:line200-400],
OpenClaw变现: [memory/2026-03-24.md:line400-600]
},
lastUpdated: 2026-03-25T09:00:00
}
🎮 手动深度回忆
当默认加载不够时,用户可以要求深度回忆:
指令语法
| 指令 | 作用 | 示例 |
|---|
| 回忆全部 | 加载所有记忆文件(动态计算天数) | 回忆全部 |
| 回忆 [N天] |
加载最近N天日志 | 回忆最近14天 |
| 回忆 [项目名] | 加载该项目全部记忆 | 回忆搞钱特战队 |
| 回忆 [日期] | 加载指定日期日志 | 回忆3月20日 |
| 回忆 [关键词] | 按关键词搜索记忆 | 回忆抖音小游戏 |
执行流程
用户: 回忆搞钱特战队
↓
- 1. 搜索 index.json 找到相关条目
- 加载相关日期日志的相关段落
- 加载项目文件
- 生成项目上下文摘要
- 输出给用户确认
📊 Token 预算控制
默认加载(~20k token)
L0 MEMORY.md ████████░░ 4k
L1 最近2天日志 ████████████████████████░░ 10k
L2 活跃项目 ██████████░░ 5k
L3 记忆索引 ██░░ 1k
─────────────────────
总计 ~20k token
深度回忆时(动态调整)
用户要求: 回忆搞钱特战队全部记忆
↓
预估: 约50k token
↓
策略:
- 1. 先加载摘要(~10k)
- 询问用户是否继续
- 分批加载,每批~20k
🛠️ 脚本命令
生成记忆索引
bash
python skills/tiered-recall/scripts/build-index.py
功能:
- - 扫描 memory/ 目录所有日志
- 提取关键词和主题
- 生成 index.json
更新活跃项目
bash
python skills/tiered-recall/scripts/update-projects.py
功能:
- - 扫描最近日志中提到的项目
- 更新 projects.json
加载记忆
bash
默认加载(最近7天)
python skills/tiered-recall/scripts/load.py
全量加载(所有记忆)
python skills/tiered-recall/scripts/load.py --full
自定义天数
python skills/tiered-recall/scripts/load.py --days 14
按项目加载
python skills/tiered-recall/scripts/load.py --project 搞钱特战队
按主题加载
python skills/tiered-recall/scripts/load.py --topic 游戏开发
参数:
- - --full 全量加载,加载所有记忆文件
- --days N 加载最近N天的日志
- --project NAME 只加载指定项目
- --topic NAME 只加载指定主题
- --deep 深度加载,突破默认token限制
📝 使用示例
场景1:新session自动加载
[新session开始]
AI:
📖 加载核心记忆... ✓ (MEMORY.md)
📅 加载近期日志... ✓ (2026-03-25, 2026-03-24)
📂 加载活跃项目... ✓ (合成天选打工人, 搞钱特战队)
📑 加载记忆索引... ✓
=== 今日上下文 ===
- 1. 昨天完成:搞钱特战队商业模式确定
- 今天待办:制作引流资料包
- 活跃项目:合成天选打工人、搞钱特战队
================
早安!今天要继续哪个项目?
场景2:手动深度回忆
用户: 回忆合成天选打工人全部记忆
AI:
🔍 搜索中...
找到相关记录: 2026-03-23, 2026-03-24
📖 加载2026-03-23相关段落...
- 游戏版本迭代 v2.6 → v2.24
- 修复7个Bug
- 11人团队评估通过
📖 加载2026-03-24相关段落...
- 准备软著材料
- 抖音小游戏适配讨论
📂 加载项目文件...
- games/merge-worker/index.html (108KB)
- games/merge-worker/VERSION_HISTORY.md
=== 项目摘要 ===
游戏名称:天选打工人
当前版本:v2.24
状态:已完成,可上线
下一步:软著申请、抖音上线
================
需要继续回忆更多细节吗?
场景3:跨天任务延续
用户: 继续昨天的引流资料包制作
AI:
🔍 查找昨天记录...
2026-03-24: 制作免费引流资料包