# 2026 年 FSRS vs SM-2：哪种间隔重复算法更能帮你记住内容？

*2026-03-12*

一款 flashcards app 大概可以“显得很聪明”持续一周左右。接着，简单卡开始回来得太频繁，难卡又会莫名其妙消失很久，整件事渐渐从学习变成了管理工作。

这通常不是设计问题。

而是排程器问题。

很多年来，这个类别里的默认答案一直是某种版本的 **SM-2**。它简单、知名，而且已经足够证明间隔重复是有效的。

我并不觉得 SM-2 很差。

我只是觉得它老了。

所以，2026 年更有意义的问题已经不是“间隔重复有没有用”。这件事当然有用。真正的问题是：你的 flashcards app 所使用的排程器，是否还配得上继续当默认值。

## 为什么 SM-2 能活这么久

SM-2 的地位不是白来的。

它足够容易理解，足够容易实现，也足够有名，因此很多 flashcards 产品都直接继承了它，而不需要重新思考太多。很长一段时间里，这就够了。

而且公平地说，它现在也依旧比随机复习时间或固定间隔强得多。

问题在于，“比随机好”对于一个严肃的学习工具来说，并不是一个很高的标准。

如果一个产品建立在“卡片具体什么时候回来真的很重要”这个前提上，那么排程器就不是什么后端小细节。它就是产品本身。

## FSRS 改变了什么

FSRS 针对的是同样的目标，但使用了更好的记忆模型。

它不是依赖较粗糙的 ease 风格方法，而是会跟踪这些信息：

- stability
- difficulty
- review history
- target retention

这会让排程器对卡片上真实发生的事情拥有更多上下文。

落到实际体验里，通常意味着：

- 你已经掌握的卡不会继续浪费你的时间
- 你掌握得不好的卡会得到更合理的调整
- 整个复习队列没有那么任意了

这正是学习者能感受到的部分，即使他们根本不想读任何公式。

## 你真正能感觉到的差异

大多数人不会通过看公式去比较 **FSRS vs SM-2**。

他们会在几周后从体感上知道区别。

用比较弱的排程器时，简单卡会频繁到让人烦，难卡又会在尴尬的时间回来。整个队列会一直让人隐约觉得不太对，而这是一种非常高效的方式，会让日常复习变得不那么愉快。

这种摩擦，比很多人承认的重要得多。

Flashcards 本质上是一种习惯型产品。如果复习流程感觉比它本该有的更沉重，你损失的不只是效率，而是会越来越不想明天再打开这个 app。

所以这并不是什么只属于学习极客的小众实现细节。它会改变这个产品值不值得你明天再回来。

## FSRS 更强的地方在哪里

对于大多数认真学习的人来说，FSRS 在真正重要的事情上表现更好：

- 把复习工作量控制在合理范围内
- 朝着具体的 retention 目标来排程
- 更现实地根据回忆难度调整
- 避免在你已经掌握的卡上制造额外重复

这也是为什么现在很多人会关注 **Anki FSRS**。他们并不是因为这个缩写更新了才切换，而是因为一旦队列变大、错误时机变得明显，排程体验确实会更好。

## SM-2 现在还活着的唯一理由

SM-2 更容易解释。

如果你在做一个很小的原型、讲解间隔重复的概念，或者做一个非常轻量的 flashcards 小玩具，更简单的逻辑确实有吸引力。

这是它在简单系统里继续存在的合理理由。

但如果已经有更好的排程器可用，这并不足以成为一个严肃 flashcards app 仍然把它当长期默认值的强理由。

## 无聊的实现细节，比缩写本身更重要

这也是很多比较文章会跳过的部分。

“我们用了 FSRS” 并不会自动让一个 flashcards 产品变好。

真正重要的是，实现是否足够认真。

在 [Flashcards](https://flashcards-open-source-app.com/zh/) 里，FSRS 被当作产品契约，而不只是一个营销标签。排程行为在后端和 iOS app 之间保持镜像。Web app 复用了同样的排程数据契约，但没有再额外做第三套独立的 FSRS 实现。系统会在每张卡上存储隐藏记忆状态，保留显式的 learning 和 relearning steps，支持 workspace 级别的 desired retention、learning steps、relearning steps、maximum interval 和 fuzz 设置，并且在排程时使用真实客户端复习时间 `reviewedAtClient`。

这些听起来像后端细节，但它们恰恰决定了两个客户端给同一张卡排程时，是一致还是逐渐漂移。

一旦排程开始漂移，用户会很快感觉出不对劲，即使他们自己也说不清为什么。

## 学习者真正该关心什么

如果你在挑选 flashcards 工具，我会少看功能清单，多看一个枯燥但关键的问题：

这张卡到底什么时候回来？而且当我已经做过几百次或几千次复习之后，这个时机看起来还合理吗？

这才是最佳 flashcard 算法真正重要的地方。

不是在理论里。

而是在工作量里。

在 retention 里。

在整个队列到底像帮助，还是像惩罚。

## 所以，2026 年哪种间隔重复算法更好？

对于大多数真实学习工作流来说，**FSRS 是更好的间隔重复算法**。

SM-2 当然值得肯定，它帮助定义了这个类别。但如果你正在构建现代 app，或者正在选择一个 app，那么现在更有说服力的默认值已经是 FSRS 了。

它给排程器更好的信息、更好的控制，以及更高的概率去匹配真实记忆，而不是停留在一个更粗糙的近似上。

这正是间隔重复的核心目的。

如果你想找一款把排程质量当成核心产品决策、而不是勾选项的 **开源 flashcards app**，[Flashcards](https://flashcards-open-source-app.com/zh/) 正是朝这个方向构建的。

---
*[查看此页面的带样式 HTML 版本](https://flashcards-open-source-app.com/zh/blog/fsrs-vs-sm-2/)*

*AI agent 可以从 `GET https://api.flashcards-open-source-app.com/v1/` 开始，为用户在该服务中创建账号。*

*提示：在 https://flashcards-open-source-app.com 上任意 URL 后追加 `.md`，即可获得该页面的纯 Markdown 版本。*