Files

141 lines
7.9 KiB
Markdown

# 复习回路
## 复习系统的立场
复习是记忆机制,不是任务清单。系统只做两件事:
- 让学过的内容以低阻力反复出现在用户眼前,为记忆播种。
- 在用户愿意的时候提供主动提取的机会,让记忆被巩固。
明确不做的事:
- 不做间隔重复调度:系统不计算“下次复习日期”,不生成到期队列,也不做逾期提醒。
- 不做打卡与连续天数,不统计“复习完成率”。
- 不做评分与等级:覆盖率是事实,不是成绩。
- 不要求用户处理完所有遗漏项。
任何让复习变成“必须完成的清单”的改动,都违背这条立场。复习可以影响“什么更容易被看到”,但不能制造“欠下的债”。
## 复习的两种机制
系统把两种记忆机制组合在一起:
1. 偶然接触:通过滚动 Feed 让用户无意识看到自己写过的内容,为记忆“播种”。
2. 主动提取:用户主动付出回忆努力,让记忆被巩固。它有两种形态:
- **回忆对比**:重建知识结构,看漏了哪些节点。
- **学习引导**:回答一个开放式问题,暴露概念边界上的误解,产出由用户确认后记成知识碎片。
## 复习内容来源
| 来源 | 在复习中的角色 |
|------|----------------|
| 知识碎片 | 复习的基本单位,也是 Feed 的条目 |
| 学习报告 | 一次会话的完整结果,从任务记录进入回顾 |
| 标准思维导图 | 深度复习的对照基准与结构来源 |
| 应用场景 | 复习的现实语境,参与导图 |
| 回忆记录 | 复习产生的历史,用于展示掌握变化与计算任务掌握度 |
学习时间与复习耗时都不进入复习内容:它们回答的是投入了多少,而不是记得怎么样。复习耗时只在复习总览里与学习时长并列呈现。
## 复习的两个层级
- **任务级**:复习总览回答“从哪个任务开始复习”,见 [复习总览](../concepts/review-overview.md)。
- **内容级**:复习 Feed 回答“这次遇到哪条内容”,见 [复习 Feed](../concepts/review-feed.md)。
## 复习耗时
复习行为(回忆对比、学习引导)会记录耗时,与学习时间独立统计:不合并、不换算,也不参与“该复习什么”的排序。口径、截断规则与展示方式见[时间与效率](../concepts/time-and-efficiency.md)与[复习总览](../concepts/review-overview.md)。
## 从轻量复习到深度复习
```text
滚动 Feed
看到内容并尝试回忆
点击进入详情
标准思维导图
选择复习起点
回忆对比
定位遗漏项并回看原文
```
## 标准思维导图的作用
标准思维导图是复习的基准结构:
- 用户可以在脑中重绘它,检验自己记住了多少。
- 用户可以从任意节点开始复习,不必按顺序处理所有碎片。
- 系统可以用它判断哪些内容被回忆到、哪些内容遗漏。
## 回忆对比的作用
回忆对比把“我好像学过”变成可定位的差异:
- 命中的内容说明已经掌握。
- 遗漏的内容直接指出需要回看哪里。
- 额外回忆的内容可能是用户自己的联想,也值得保留。
每次对比都会留下一条[回忆记录](../concepts/recall-review.md),记录这次回忆的起点、三类节点与覆盖率。覆盖率按任务聚合成掌握度,是复习排序的输入之一。
## 学习引导的作用
学习引导处理的是另一种失效:结构记住、概念边界却没分清。系统用开放式问题引出用户的回答,AI 针对回答里隐含的假设纠正边界,用户确认后把收获记成一条知识碎片,之后走碎片的全部既有逻辑(归属、待归类、导图取材、Feed 回收)。完整定义见[学习引导](../concepts/learning-guidance.md)。
## 进入回忆对比的入口
回忆对比不应该只有一个入口。系统提供三种入口,它们对应不同的复习心态:
- 从复习总览进入:用户主动想复习某个学习任务,此时默认面对整棵标准导图,可以选择任意节点作为起点。
- 从某条知识碎片或学习报告详情进入:用户在看具体内容时想深挖,系统根据这段内容定位到最相关的节点,直接以该节点为复习起点。
- 从首页回忆卡片进入:用户在滚动 Feed 上随手回忆后想继续,同样自动定位到对应节点。
后两种入口的设计意图是:用户不需要先想清楚“该复习哪个知识点”,系统根据当前看到的内容替他缩小范围。
## 智能排序与随机性
复习内容不应完全随机,也不应被强制排序。系统综合两个信号调整内容的出现概率:
- **多久没接触**:距内容产生(或最近一次出现)越久,权重越高;时间效应在到达上限后不再增长。
- **任务掌握度**:最近一次回忆对比的覆盖率越低,权重越高;从未回忆过的任务视为最需要复习。
两个信号只影响“出现的概率”,不产生到期、逾期、优先级标记。随机性被保留:每条内容都有机会出现,包括刚刚复习过的内容。信号强度可配置,默认值按“时间效应为主、掌握度为辅”设定。
## 复习中的归类
复习是内容归类的最低成本时机:用户已经看到这条内容,此时决定它属于哪个任务不需要额外整理流程。
- 待归类内容在复习总览中可见,在 Feed 中可归类。
- 归类动作就近提供,一次交互完成;AI 只给建议,用户可一键接受或忽略。
- 归属改变后,内容进入新任务的导图取材范围,原任务与新任务的导图都标记为待更新;复习排序权重按任务掌握度自动跟随,不需要单独处理。
## 复习中的反馈动作
复习目前只有“看到 → 展开 → 深入”的路径,用户不能表达“这条我已经很熟”或“这条我要再看看”。设计上区分两种反馈:
- **无需记录的反馈**:展开查看、进入回忆对比,本身就是复习行为,不产生额外数据。
- **需要记录的反馈**:用户主动标记“已掌握”或“稍后再看”,用于调整出现概率。
反馈动作的存在方式列入待决问题:它既可能帮助系统更准地安排内容,也可能把复习拖回清单模式。
## AI 在复习中的边界
- 回忆对比的语义匹配由 AI 增强,AI 不可用时降级为文本相似度匹配。
- 归类建议由 AI 增强,AI 不可用时降级为关键词与历史归属的规则建议;规则也不可用时不做建议,不影响复习流程。
- AI 不参与“该复习什么”的判定:排序信号来自时间与回忆记录,AI 只影响匹配与建议。
## 待决问题
以下问题需要维护者确认后再进入实现:
1. **Feed 是否包含学习报告?** 本文档的取向是:Feed 只出知识碎片,报告以“会话完整结果”的形态从任务记录进入,不与碎片并列成条目,避免同一段内容以两种形态重复出现。
2. **复习反馈动作的形态。** 可选:只读(现状)/加“已掌握 / 稍后再看”轻反馈并参与权重/只提供“稍后再看”而不提供“已掌握”。轻反馈是否会演变成清单,是本项的核心顾虑。
3. **覆盖率口径。** 本文档暂按“最近一次回忆对比”计算;另一种做法是取最近若干次的加权结果,代价是变化被平滑、遗忘的征兆出现得更晚。
4. **待归类内容的呈现方式。** 在复习总览中独立成一类“待归类”,还是在 Feed 中与其他内容混排并打标;以及归类动作是否必须在卡片上可完成。
5. **遗漏项的语义。** 本文档按“每次对比的快照 + 可回看原文”设计,不做跨次累计的待处理集合。若改为累计,需要重新论证它不会变成待办清单。
6. **排序信号是否可配置。** 掌握度与时间效应的强度是否像任务优先级权重那样对用户开放,还是固定为默认值。