M Maple 灵枢
← 返回原始报告
rc-69f3894d-296c 2026.04.30 20 KB

MER-236 LearningOS / SuperMemo / Wozniak 深度纵向研究

原始 research campaign 输出,来自 may1 all night learningos memory agent source re。这页保留报告结构和运行痕迹,正式文章会在写作区重写。

MER-236 LearningOS / SuperMemo / Wozniak 深度纵向研究

Campaign: rc-69f3894d-296c | 2026-05-01 | 研究 Agent (Opus 4.6)


研究范围与方法

本报告聚焦 Piotr Wozniak 的 SuperMemo 体系及其对 Maple 自建 LearningOS 的设计启示。研究覆盖:

  • SuperMemo 算法演进(SM-17 → SM-20)
  • 增量阅读(Incremental Reading)完整工作流
  • 自由学习(Free Learning)与 Learn Drive 哲学
  • 知识格式化 20 条规则(20 Rules of Formulating Knowledge)
  • 毒性记忆(Toxic Memory)
  • 优先级队列(Priority Queue)
  • SuperMemo API(2026 早期访问)
  • FSRS 算法现状(v6)与生态
  • 数据可移植性

方法:四路并行 Agent 调研,交叉引用 supermemo.guru、supermemo.com、GitHub 仓库、PyPI/npm 包。整合项目已有 46 篇研究文档(~/maple/research/learning-system/,~750KB)。

证据标注:[P] = 一手来源(Wozniak 本人/官方文档),[S] = 二手来源(社区/博客),[U] = 未经独立验证


一、算法演进:SM-17 → SM-20

1.1 理论基础:DSR 模型

所有 SM-17+ 算法共享 DSR(Difficulty-Stability-Retrievability)三变量记忆模型:

变量 含义 范围
D (Difficulty) 突触模式的复杂度 0.0(易)→ 1.0(难)
S (Stability) 使平均回忆概率为 0.9 的间隔天数 正实数
R (Retrievability) 当前时刻的回忆概率 R = e^(-kt/S),指数衰减

遗忘曲线:单项记忆为指数衰减;混合复杂度的聚合曲线趋近幂函数。

最优间隔 = S 本身(即 R 降至 0.9 时的间隔)。每次成功复习后,S 乘以稳定性增长因子 SInc:

SInc = (3.102 - 1) × S^(-0.529) + 1

SInc 范围从 SIncMin(~1.36,R≈100% 时)到 SIncMax(~26.31,R→0 时),体现了间隔效应:高记忆可提取性时复习收益最低。

来源:[P] Two component model of memory | [P] Stabilization curve

1.2 SM-17(2016)

第一个显式实现 DSR 模型的算法:

  • SInc[] 矩阵(20 稳定性 × 20 难度 = 400 格)取代 SM-15 的 O-Factor/RF 矩阵
  • 为每个稳定性-难度类别独立绘制遗忘曲线推导 SInc
  • 间隔公式:next_interval = S × SInc[S, R, D]
  • 弱点:大型集合中首次复习间隔适应缓慢

来源:[P] Algorithm SM-17

1.3 SM-18(2017-2019)

对 SM-17 的靶向改进

  • 难度计算重设计:放弃"绝对难度",每次复习通过 bet-win 指标独立估算 D,增量调整
  • 稳定化函数逼近改进:400 条独立稳定化曲线可检查、更精确拟合
  • 核心模型(DSR、指数遗忘、SInc 矩阵)不变

来源:[P] Algorithm SM-18 | [P] Item difficulty in Algorithm SM-18

1.4 SM-19(2024)

两个靶向改进:

  • 遗忘后稳定性估算(Post-lapse stability):完全重写失败复习后的 S 重新计算逻辑
  • 首次遗忘曲线处理:结合 SM-15(快速适应)和 SM-17(理论严谨)的优点,解决大型集合首间隔迟缓问题
  • 实时优化:每次复习即时调整参数
  • Universal metric 对比 FSRS 默认参数:18:2 优势

来源:[P] Algorithm SM-19 | [S] SuperMemo blog

1.5 SM-20(2026,新发现)

范式转变——第一个完全基于机器学习优化参数的 SM 算法:

特征 SM-17/18/19 SM-20
参数量 ~40,000(经验矩阵) ~40(ML 优化),目标 10-15
参数来源 启发式规则 + 曲线拟合 ML 拟合个人数据
理论基础 保留 保留(ML 优化拟合,不替代理论)
Universal metric 基准 0.000764%(百万级复习数据集,2026-02-27)

SM-20 计划随 SuperMemo 20 for Windows 发布,发布日期未定(截至 2026-02)。将与 FSRS 和 SM-19 并行提供。

来源:[P] Algorithm SM-20

评估:SM-20 的方向(少量 ML 参数 + 理论约束)与 FSRS 趋同。两者最终可能殊途同归,但 SM-20 闭源,FSRS 开源。对 Maple 的 LearningOS,FSRS 仍是最佳选择——开源、可定制、生态活跃,且 SM-20 的理论改进可被 FSRS 社区吸收。


二、增量阅读(Incremental Reading)

2.1 核心工作流

增量阅读是 Wozniak 1999 年发明的方法,将优先化阅读与间隔重复结合。不是线性读完一篇文章,而是并行阅读数百篇,逐步蒸馏为原子知识

漏斗流程

文章导入 → 分段阅读 → 提取(Extract) → 转为填空题(Cloze) → 间隔重复
  1. 导入:网页、PDF、文本粘贴,自动附加引用来源
  2. 阅读:文章进入优先级队列,每次读一部分,系统调度下次浮现时间
  3. 提取(Alt+X):高亮重要段落,提取为子元素,父引用自动传递
  4. 填空:提取的句子转为 cloze 卡片(如"Sierra Leone 的首都是 […]")
  5. 复习:卡片进入 SM 算法的间隔重复调度

2.2 双轨制:Topics vs Items

类型 性质 调度方式
Topics(文章/提取) 被动阅读材料 用户控制间隔,A-factor 调节
Items(cloze/Q&A) 主动回忆测试 算法自动调度

设计启示:「待处理的素材」和「待记忆的知识」必须分轨调度。这正是 LLM Wiki 的 ingest→compile 流程可以覆盖的——AI 版增量阅读

2.3 局限

  • 学习曲线陡峭,SuperMemo 独占功能
  • Anki/Emacs 有移植但缺完整优先级队列
  • Wikipedia 批评"文档过度依赖单一关联来源"

来源:[P] SuperMemo Incremental Learning Help | [S] Wikipedia: Incremental reading | [S] SuperMemo.wiki


三、自由学习(Free Learning)与 Learn Drive

3.1 核心主张

Wozniak 认为大脑有内置的"学习驱动力"(learn drive)——一种本能,引导好奇心朝向复杂度最优、个人最相关的材料。强制教育用"学校驱动力"(奖惩机制)覆盖了这一本能。

三个关键论点

  1. 好的学习本质上令人愉悦,且不像食物/性愉悦那样饱和
  2. 学习快乐是知识质量的信号——learn drive 产生的记忆"简洁、助记、连贯、稳定、可应用"
  3. 被学校化的人发展出对学习本身的厌恶,不只是对学校的厌恶

3.2 设计原则

  • 学习系统应跟随用户兴趣(learn drive),不施加课程表
  • 优先级应从真实好奇心涌现,不由外部指派
  • 快乐信号是有效的质量指标——用户觉得痛苦 = 系统有问题

3.3 证据评估

[U] 主要是 Wozniak 个人理论写作。借鉴奖赏回路神经科学,但缺乏对照实验。作为设计哲学有说服力,作为实证科学证据薄弱

来源:[P] Free Learning | [P] Learn Drive | [P] Pleasure of Learning


四、知识格式化 20 条规则

1999 年发表,是 Wozniak 最有影响力的实践指南。完整列表:

# 规则 设计可操作性
1 不理解就不学 AI 可检测理解前提
2 先学后记(建立全局图景) LLM Wiki 的 compile 阶段
3 从基础出发 知识图谱的拓扑排序
4 最小信息原则(卡片原子化) AI 制卡核心规则
5 填空题简单有效 自动 cloze 生成
6 使用图像 多模态卡片
7 使用助记术 AI 可建议助记
8 图像删除同理 视觉类知识
9 避免集合(无序集合几乎无法记忆) AI 检测并拆分
10 避免枚举(有序列表仍然困难) AI 检测并拆分
11 对抗干扰(区分相似项) AI 生成对比卡片
12 优化措辞(消除冗余词) AI 精简
13 引用其他记忆 知识图谱交叉链接
14 个性化并举例 基于用户画像的示例
15 依赖情绪状态 时机调度
16 上下文线索简化措辞 领域标签
17 冗余不矛盾最小信息 多角度同一知识点
18 提供来源 自动附加引用
19 提供日期标记 自动时间戳
20 优先级排序 优先级队列

最可操作的规则:4、9、10、12——AI 制卡系统可自动执行这些规则,检测违反并提示修正。

来源:[P] 20 Rules - supermemo.com(证据等级高,1999 年发表,稳定 25+ 年)


五、毒性记忆(Toxic Memory)

5.1 定义

与焦虑或恐惧关联的持久/寄生性记忆,由强制学习或低质量知识格式化产生。

5.2 成因

成因 机制
强制学习 对学习者无兴趣/无准备的材料施加压力
低质量格式化 违反 20 条规则(尤其是记忆集合、不理解就记)
过高难度 步幅太大产生挫败感,挫败感与内容一起编码

5.3 后果

学习恐惧 → 习得性无助 → 可能导致持久行为/精神影响。

5.4 设计启示

学习系统应检测挫败信号(连续失败、长响应时间)并自动:

  • 简化材料或降低优先级
  • 不在用户疲惫/烦躁时推送复习
  • 提供"跳过"而非"必须回答"

来源:[P] Toxic Memory | [P] Coercion in Learning(证据:理论性,单一作者,但内部一致、数十年观察支撑)


六、优先级队列(Priority Queue)

6.1 机制

每个元素获得 0%(最高)→ 100%(最低)的连续优先级值。两个自动工具管理过载:

  • Auto-sort:每次学习开始时按优先级排序当日复习
  • Auto-postpone:延迟低优先级的待处理材料,保护高优先级项目

6.2 A-factor 关系

A-factor 决定间隔增长速度。对 Topics,A-factor 调节曝光频率——更高 = 更少浮现。优先级变更也调整 A-factor。

6.3 设计原则

  • 连续谱优于离散桶:0-100% 比「高/中/低」灵活
  • 优雅降级:完不成当日任务时,只有低优先级材料受影响
  • 优先级偏差校正:新内容不应自动获最高优先级(“新鲜偏差”)
  • FSRS 只管时间不管价值——优先级层是 FSRS 之上的独立策略

来源:[P] Priority Queue | [P] super-memory.com archive


七、SuperMemo API 与技术生态(2026 新发现)

7.1 SuperMemo.com API(早期访问)

SuperMemo 于 2026 年发布 REST API

特征 详情
核心端点 POST /algorithm/review(JSON 输入/输出)
免费层 仅 SM-2 算法,100 次/日,1000 次/月
付费层 SM-20 算法,Dev $49/月 / Scale $299/月
用途评估 可作为对照基准,不适合做核心调度器(闭源+商业锁定)

7.2 桌面版

SuperMemo 18/19 无真正 API。社区项目 SuperMemoAssistant(C#,仅 Windows)通过进程注入实现自动化。XML 导出存在但学习历史迁移有损。

7.3 FSRS v6(当前最新)

特征 详情
版本 FSRS v6,21 个参数(v4 为 17 个)
TypeScript ts-fsrs(MIT)
Python fsrs 6.3.1(MIT)
Rust 绑定 @open-spaced-repetition/binding(NAPI)
Anki 集成 23.10+ 内置为默认调度器

ts-fsrs 使用示例:

import { fsrs, createEmptyCard, Rating } from 'ts-fsrs'
const scheduler = fsrs()
const card = createEmptyCard()
const result = scheduler.next(card, new Date(), Rating.Good)

7.4 现代生态对比

项目 FSRS 增量阅读 适合 LearningOS
Anki v6 内置 调度引擎参考
RemNote v4.5 有(插件) 笔记+SRS 参考
Orbit (Matuschak) 嵌入式 交互设计参考
SiYuan v5 国产开源参考
Logseq/Obsidian 插件 部分 不适合(Maple 已排除 Obsidian 依赖)

7.5 数据可移植性

路径 工具 限制
SM XML → Anki sm2anki / Anki 内置 Q&A 迁移 OK,学习历史丢失
Anki .apkg 事实标准(SQLite + ZIP) 最通用
FSRS review log CSV/JSON ts-fsrs binding 提供转换

建议:以 FSRS review log(CSV/JSON)为内部格式,支持 .apkg 导入导出做生态兼容。

来源:[P] SuperMemo API | [P] ts-fsrs GitHub | [P] fsrs PyPI


八、对 Maple LearningOS 的设计原则提炼

综合本次调研 + 项目已有 46 篇研究成果,提炼以下设计原则:

调度层

原则 来源 实现思路
FSRS 为调度核心 SM-20 与 FSRS 趋同,但 FSRS 开源 ts-fsrs,个人数据训练
优先级层叠加在 FSRS 之上 SM 的 Priority Queue,FSRS 只管时间 0-100% 连续优先级 + auto-sort/auto-postpone
断档后自动校准,不积压 Free Learning 哲学 超过 N 天未复习 → 重置而非补课
睡眠感知 Wozniak 的 sleep & learning 研究 考虑用户作息,不只间隔天数

知识处理层

原则 来源 实现思路
AI 版增量阅读 SuperMemo Incremental Reading LLM Wiki 的 ingest→compile = AI 驱动的「导入→提取→原子化」
AI 自动执行 20 条规则 Wozniak 20 Rules 制卡时自动检测:原子性(规则 4)、集合/枚举(规则 9/10)、冗余措辞(规则 12)
双轨调度 Topics vs Items 「待处理素材」与「待记忆知识」分轨,不同调度逻辑
毒性记忆防范 Toxic Memory 理论 检测挫败信号 → 自动降级/简化,不强推

交互层

原则 来源 实现思路
对话式复习优于卡片翻转 ENFP 认知画像 + 用户偏好 苏格拉底式提问,不是 Y/N 翻转
快乐是质量信号 Learn Drive 理论 用户觉得痛苦 = 系统有问题
知识碰撞促创造力 Neural Creativity + LLM Wiki lint 定期展示看似无关的知识关联
不强制不惩罚 Free Learning 跳过按钮永远可用,无"逾期债务"

技术选型

决策 理由
ts-fsrs(TypeScript,MIT) 算法领先、开源、与 Vyane/Node 生态一致
FSRS review log 为内部格式 原生支持 optimizer 训练
.apkg 导入导出 生态兼容(Anki 是事实标准)
SuperMemo API 仅作对照 闭源+付费,不做核心依赖

九、不确定性与待验证

不确定程度 如何验证
SM-20 具体发布日期和最终参数量 关注 supermemo.guru 更新
SM-19 vs FSRS v6(优化后)的真实差距 需在同一数据集上跑基准测试
SM-20 API 是否开放 SM-20 算法全部能力 测试 API 返回值细节
Wozniak 的 Free Learning/Toxic Memory 理论的实证支撑 中高 缺乏独立对照实验,但设计哲学层面可采纳
ts-fsrs v6 是否支持自定义优先级层 读源码确认,初步判断需自行实现
FSRS optimizer 对小数据集(个人用户早期)的效果 需实测,可能前 200-500 条复习后才有意义

supermemo.guru 访问性注意

本次调研中 supermemo.guru 页面直接 fetch 返回 403,数据通过搜索引擎快照和缓存摘要获取。这意味着:

  • 引用的页面内容可能不是最新版本
  • 细节引用(如具体公式参数)可能因页面更新而过时
  • 后续需人工验证关键数据点

十、推荐后续工作

优先级 任务 依赖
P0 ts-fsrs 技术评估:搭建最小可运行原型,验证 API、参数训练、自定义优先级可行性
P0 设计模式文档(wozniak/12-design-patterns.md):从所有调研提炼可直接编码的 pattern 本报告
P1 增量阅读 × LLM Wiki 交叉设计:定义"AI 版增量阅读"的具体数据流和 UI 交互 LLM Wiki 原型
P1 优先级策略层设计:0-100% 连续优先级 + auto-sort + auto-postpone 在 FSRS 之上的接口 ts-fsrs 原型
P2 SM-20 API 实测:注册早期访问,在小数据集上对比 FSRS v6 API 开放
P2 毒性记忆检测机制设计:定义"挫败信号"的指标(连续失败次数、响应时间、跳过率) 交互层原型
P3 渐构世界模型课程调研(待 Maple 提供素材) Maple 提供

附录:来源索引

一手来源 [P]

来源 URL
Algorithm SM-17 https://supermemo.guru/wiki/Algorithm_SM-17
Algorithm SM-18 https://supermemo.guru/wiki/Algorithm_SM-18
Algorithm SM-19 https://supermemo.guru/wiki/Algorithm_SM-19
Algorithm SM-20 https://supermemo.guru/wiki/Algorithm_SM-20
Two component model of memory https://supermemo.guru/wiki/Two_component_model_of_memory
Stabilization curve https://supermemo.guru/wiki/Stabilization_curve
Item difficulty (SM-18) https://supermemo.guru/wiki/Item_difficulty_in_Algorithm_SM-18
Free Learning https://supermemo.guru/wiki/Free_learning
Learn Drive https://supermemo.guru/wiki/Learn_drive
Toxic Memory https://supermemo.guru/wiki/Toxic_memory
20 Rules https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge
Priority Queue https://help.supermemo.org/wiki/Priority_queue
Incremental Learning Help https://super-memory.com/help/il.htm
SuperMemo API https://api.supermemo.com/
DSR model glossary https://help.supermemo.org/wiki/Glossary:DSR_model
ts-fsrs https://github.com/open-spaced-repetition/ts-fsrs
fsrs (Python) https://pypi.org/project/fsrs/

二手来源 [S]

来源 URL
SM vs FSRS (blog) https://www.supermemo.com/en/blog/supermemo-is-better-than-fsrs-by-far
Wikipedia: SuperMemo https://en.wikipedia.org/wiki/SuperMemo
Wikipedia: Incremental reading https://en.wikipedia.org/wiki/Incremental_reading
SuperMemo.wiki https://www.supermemo.wiki/en/learning/incremental-reading
SuperMemoAssistant https://github.com/supermemo/SuperMemoAssistant

项目已有研究(内部)

路径 内容
~/maple/research/learning-system/SUMMARY.md 整体综合
~/maple/research/learning-system/wozniak/SUMMARY.md Wozniak 11 篇综合
~/maple/research/learning-system/wozniak/10-sm-algorithms.md SM-17/18/19 细节
~/maple/research/learning-system/wozniak/11-sm-vs-fsrs.md SM vs FSRS 对比
~/maple/research/learning-system/01-fsrs-spaced-repetition.md FSRS 算法详解
~/maple/research/learning-system/deep/D11-fsrs-ye-junyang.md 叶俊洋 FSRS 深度