FSRS 是什么?间隔重复调度器的工作原理(2026)
你查看一张闪卡的答案,想了一会儿才记起来,然后按下 Good。这张卡会暂时消失。另一张卡被评为 Again,很快又会出现。FSRS 并不知道一个答案讲的是解剖学,另一个讲的是西班牙语。它看到的只有复习时间、卡片原有的记忆状态,以及你选择的评分。
FSRS 全称为自由间隔重复调度器(Free Spaced Repetition Scheduler),是一种开源调度算法。它会估算你回忆起每张卡片的概率,并按照设定的记忆保持率目标选择下次复习日期。 它会参考复习历史、经过的时间,以及 Again、Hard、Good 和 Easy 四档评分。闪卡应用仍然负责存储卡片、显示复习界面、执行学习步骤和提供其他产品功能。
这就是对 FSRS 是什么 的简短回答。要理解 FSRS 如何工作,需要先了解三个量——难度(Difficulty)、稳定性(Stability)和可提取性(Retrievability)——以及一个重要细节:这三个量并不都是固定存储的分数。
事实核查日期: 2026 年 8 月 25 日。

FSRS 是调度器,不是闪卡应用
Anki 可以使用 FSRS,Flashcards Open Source App 也使用 FSRS,其他产品和程序库同样可以实现它。open-spaced-repetition 项目公开发布了这一模型、相关实现和配套工具。
产品和调度器各有分工:
| 层级 | 负责什么 |
|---|---|
| 闪卡应用 | 存储卡片、显示复习界面、同步数据,并记录你选择的评分 |
| FSRS 调度器 | 更新卡片的记忆状态,并计算合适的下次复习间隔 |
| FSRS 优化器 | 在宿主应用提供优化功能时,根据复习历史拟合模型参数 |
| 你 | 决定卡片要测试什么、给出答案,并如实评价这次作答 |
分清这两者,就不容易误解 Anki FSRS 之类的说法。Anki 是应用,FSRS 是在其中启用的调度器。比较 Anki、SuperMemo 和 FSRS 时也要注意同样的区别:Anki 和 SuperMemo 是产品,而 FSRS 可以集成到产品中。
优化器和日常使用的调度器也不是一回事。调度器一开始可以使用默认参数。之后,优化器可以分析兼容的复习历史,找出更符合这些复习记录的参数。它不会重写你的卡片,也不会替你判断学习材料有多重要。
FSRS 的思维模型:两个持续保留的状态和一个实时估算值
官方的 FSRS 算法文档介绍了难度—稳定性—可提取性模型,通常简称 DSR。在 FSRS-6 中,难度和稳定性共同构成记忆状态,会从一次复习保留到下一次。可提取性则是针对某个具体时刻,根据稳定性和经过的时间计算出来的。
这个区别很重要。即使没有人修改卡片,可提取性也会随着时间流逝而下降。调度器可以在需要时即时计算,不必把它当作第三个固定输入值。
难度:这段记忆有多难进一步巩固
**难度(Difficulty)**估算提升一张卡片的记忆稳定性有多难。按照这个模型,在其他条件相同时,难度较高的卡片经过一次成功复习后,稳定性的增幅往往会小于较简单的卡片。
这不是对主题本身难度的客观评分。FSRS 没有读过你的解剖学定义,也没有检查你的西班牙语语法。难度只是根据这张卡片的复习模式和评分得出的内部估算值。
稳定性:记忆消退得有多慢
**稳定性(Stability)**描述记忆消退得有多慢。更准确地说,它是模型预测的回忆概率降至 90% 时所对应的时间间隔。
即使你选择的期望记忆保持率不是 90%,这个 90% 仍然属于稳定性的定义。稳定性是记忆模型内部的尺度,并不会自动等同于卡片的下次复习间隔。成功复习后,稳定性通常会提高,因此可以把下次复习安排得更晚,等更久后,预测回忆概率才会降到同一水平。
可提取性:此刻能够回忆起来的概率
**可提取性(Retrievability)**是模型预测你此刻能够回忆起这张卡片的概率。刚成功复习后,它会很高;随着时间推移,它会沿着模型的遗忘曲线逐渐下降。
可提取性是预测值,不是从大脑中读取的传感器数据。FSRS 无法确定你看到卡片时能否想起答案,只能根据卡片状态、经过的时间、参数和复习历史来估算概率。
把这三个量放在一起,就得到一套清晰的思维模型:
- 难度影响稳定性改变的容易程度。
- 稳定性决定可提取性下降的速度。
- 可提取性表示卡片此刻位于遗忘曲线上的位置。
一次真实复习中,FSRS 如何工作
对于已经进入长期复习阶段的卡片,调度循环大致如下:
- FSRS 根据卡片的稳定性和距离上次复习经过的时间,计算当前的可提取性。
- 你查看答案,然后选择 Again、Hard、Good 或 Easy。
- FSRS 根据这次评分和卡片之前的状态,更新难度和稳定性。
- 它计算预测可提取性将在何时接近你设定的期望记忆保持率。
- 宿主应用再套用最大间隔、模糊处理(fuzz)等相关规则,然后保存下次到期时间。
公开的 FSRS 公式定义了这些更新方式。学习时不需要自己计算。真正需要理解的是:下次复习间隔来自不断变化的单卡估算,而不是“一天、三天、一周”这样的固定阶梯。
一张卡片,几次复习
假设有一张卡片问海马体的作用。具体间隔取决于应用、设置、复习时间、参数和评分,因此下面刻意只做定性描述。
| 复习时刻 | 你的评分 | 接下来会发生什么 |
|---|---|---|
| 你看到一张新卡片,并正常回忆出答案 | Good | 在卡片进入长期复习前,应用可能会继续执行配置好的学习步骤 |
| 卡片后来进入长期复习,而你费了很大力气才想起来 | Hard | FSRS 将其视为一次困难但成功的回忆,并在该状态下的几个长期成功选项中给出最短间隔 |
| 在之后的一次复习中,你没能答出答案 | Again | FSRS 按照失败结果更新记忆状态;应用还可能让卡片进入重新学习步骤 |
| 卡片再次出现时,你正常回忆出答案 | Good | FSRS 根据这次新的成功复习更新难度和稳定性,再按照记忆保持率目标计算下一段间隔 |
这段顺序很重要。Hard 记录的是成功回忆,Again 记录的是失败。按下 Again 也不会抹掉之前的复习历史,把卡片重置成一张全新的空白卡。
Again、Hard、Good 和 Easy 向 FSRS 传达什么
四个按钮描述的是刚才实际发生的回忆情况:
- Again: 你没能回忆出要求的答案,或者答错了。
- Hard: 你答对了,但回忆时明显很吃力,或者有所犹豫。
- Good: 你答对了,所花的力气处于正常水平。
- Easy: 你答对了,几乎没费什么力气。
官方的 Anki FSRS 文档明确划出了关键界线:Again 表示失败,Hard 则表示成功回忆。忘记答案后却按 Hard,会向调度器发出错误信号,还可能让后续的复习间隔变得过长。
请根据自己的回忆情况选择评分,不要看着按钮上方显示的间隔来选。如果 Good 让卡片离开的时间比你预想得更长,说明你该检查设置。为了得到想要的日期而换一个评分,只会改变复习历史,并不能修正设置。
只答对一部分,或者卡片本身含糊不清时,怎么评分并不像四个标签看起来那么简单。Again 和 Hard 的详细指南专门介绍了这些情况。有一条可靠的简短规则:先看成败,再看费力程度。作答失败就选 Again;只有成功后,才在 Hard、Good 和 Easy 中选择。
FSRS 只接收你提交的评分,不会客观评判你口头说出或输入的答案。
期望记忆保持率把模型换算成复习日期
**期望记忆保持率(desired retention)**是你希望卡片到期时达到的回忆概率目标。如果设为 0.90,调度器会尽量让卡片在模型预测你有 90% 概率能够成功回忆时再次出现。
这是模型的目标,并不是承诺你总能答对每十张卡中的九张。预测可能不够准确,评分习惯也可能改变,真实的学习条件更是复杂多变。
这也能帮助我们理解稳定性。稳定性的定义基于 90% 的可提取性,因此当期望记忆保持率设为 0.90 时,进入长期复习的卡片所计算出的间隔会与稳定性密切相关。取整、模糊处理和最大间隔限制仍然可能改变你最终看到的日期。仍在学习阶段的卡片则遵循应用设置的短期步骤流程。
工作量上的取舍很直接:
- 提高期望记忆保持率,会让卡片更早回来,复习量随之增加。
- 降低期望记忆保持率,可以拉长间隔,但遗忘也会增多。
Anki 手册的期望记忆保持率章节提醒说,当目标接近 100% 时,工作量会迅速增加。没有一个数值能适合所有牌组和学习目标。
期望记忆保持率不是优化器从历史中学出来的,而是由你选择,用来表达学习目标。参数描述记忆模型;记忆保持率目标则告诉调度器,你希望回忆概率降到什么水平时安排复习。
关于实际设置和工作量之间的取舍,请阅读单独的 FSRS 设置指南。
优化器是可选的,期望记忆保持率仍由你决定
FSRS 公式使用一组通常称为**参数(parameters)**的权重,来更新难度和稳定性,并对遗忘过程建模。具体实现可以使用默认参数;如果宿主应用带有优化器,也可以根据兼容的复习历史来拟合参数。
目前的 Anki 中,Optimize 操作会分析复习历史,并生成与这些历史相匹配的参数。Anki 参数文档建议用户不要手动修改这些值,也不要复制别人的参数。其他 FSRS 应用可能只使用默认值,并不提供优化功能。
这里的“已优化”含义很窄:按照优化器的评价标准,这些参数与所提供的复习数据更加吻合。它并不表示卡片内容准确、学习计划合理,也不保证未来的每次预测都会正确。
默认参数仍然很重要。即使没有进行个性化拟合,调度器也可以正常工作,并继续为每张卡片维护各自的记忆状态。
学习步骤处理的是另一种时间尺度
进入长期间隔前,新卡片通常会在几分钟后再次出现。已经进入长期复习的卡片如果作答失败,也可能很快返回。闪卡应用把这些短暂延迟设置为学习步骤(learning steps)和重新学习步骤(relearning steps)。
- 学习步骤是在引入新卡片时设置的短暂延迟。
- 重新学习步骤是已经进入长期复习的卡片被评为 Again 后采用的短暂延迟。
- 卡片从学习阶段毕业后,下一段长期间隔由 FSRS 记忆模型决定。
所以,修改一个十分钟的学习步骤,与修改期望记忆保持率并不是一回事。学习步骤直接控制卡片何时在短期内返回;期望记忆保持率则影响基于模型计算的长期间隔。具体实现不同,调度器也可能在学习阶段更新记忆状态。因此,学习步骤只是工作流程上的分界,并不代表另一套独立的记忆理论。
Anki 当前的 FSRS 学习步骤指南建议把步骤设在同一天内可以完成的范围。如果把步骤字段留空,Anki 还提供了一个实验性选项,让 FSRS 负责短期调度。其他应用可能采用不同的设计,所以在照搬 Anki 设置前,先确认自己的应用支持哪些功能。
FSRS 无法替你决定什么
FSRS 可以把糟糕的输入安排得非常精确,但再先进的间隔也不会让卡片本身变得更好。
调度器无法:
- 理解卡片表达的含义
- 核实保存的答案是否正确、是否仍然有效
- 决定只答对一部分是否应该算作正确
- 修复含糊的题面或信息过多的背面
- 判断某条知识对你的目标是否重要
- 独自把源源不断且难以承受的新卡片变得可管理
- 保证你会在卡片到期时完成复习
假设一张卡片问:“解释免疫系统。”反复按 Again 或许会带来更多复习,但任何调度器都无法把这么宽泛的题目变成一项清晰的回忆任务。这个问题要在卡片编辑器里解决。制作更好闪卡的指南介绍了这一层的改进方法。
分清这条边界,也更容易诊断学习问题。长期复习时间异常,通常应该检查设置、评分历史或具体实现。如果你总在为卡片背面的内容和自己的回答较劲,问题往往出在卡片质量上。队列过于庞大,原因也可能是新增卡片太多,而不是 FSRS 算法本身。
Flashcards 如何实现 FSRS
披露: 我是 Kirill Markin,也是 Flashcards Open Source App 的开发者。本节描述的是已经发布的产品行为,并不是说每位学习者都应该离开自己正在使用的其他应用。
Flashcards 目前实现的是 FSRS-6,并与官方 ts-fsrs 5.2.3 的调度流程保持一致。它采用标准的 Again、Hard、Good 和 Easy 评分。后端、iOS 和 Android 调度器保持相同行为,Web 端的复习流程则复用后端调度器。
当前默认设置为:期望记忆保持率 0.90,学习步骤 1 分钟和 10 分钟,重新学习步骤 10 分钟,最大间隔 36,500 天,并启用模糊处理。工作区所有者可以调整这些设置。修改只会影响未来的复习,不会悄悄重算已有卡片的到期时间。
Flashcards v1 固定采用官方的 FSRS-6 默认权重。用户无法配置这些权重,产品目前也不会根据每位用户的复习历史拟合个性化 FSRS 参数。与 Anki 的优化器比较时,这项限制很重要。
公开的 Flashcards FSRS 调度规范记录了当前的状态模型、默认设置、设置边界和跨平台一致性规则。更完整的功能页面则说明了调度器如何融入产品,而不是把 FSRS 本身说成一款应用。
FSRS 常见问题
FSRS 是什么的缩写?
FSRS 是 Free Spaced Repetition Scheduler(自由间隔重复调度器)的缩写。它是一种开放式调度器,用来计算闪卡应该何时再次出现。
FSRS 只能用于 Anki 吗?
不是。Anki 包含一种 FSRS 实现,但 FSRS 是一种调度器,其他应用和程序库也可以实现它。编辑、同步、导入和复习界面等产品功能由宿主应用提供。
FSRS 知道我的答案是否正确吗?
不知道。FSRS 接收的是应用记录的评分。你仍然需要将自己的答案与卡片对照,再判断这次作答应该评为 Again、Hard、Good 还是 Easy。
难度、稳定性和可提取性都会存储在卡片上吗?
不一定。在 FSRS-6 中,难度和稳定性构成持续保留的记忆状态。可提取性则根据稳定性和经过的时间,针对特定时刻计算得出。应用可能还会为自己的工作流程存储其他调度字段。
90% 的期望记忆保持率意味着我会记住全部内容的 90% 吗?
不是。它告诉调度器,在卡片到期时以 90% 的预测回忆概率为目标。这并不保证每张卡片、每次学习、每场考试或现实场景都能达到 90%。
我需要优化后的 FSRS 参数吗?
刚开始时不需要。FSRS 可以使用默认参数。如果你的应用支持优化,而且你已经积累了有用的复习历史,拟合后的参数可以更好地反映这些记录。不要复制其他人的参数。
FSRS 比 SM-2 更好吗?
两者使用不同的调度模型。FSRS 引入了明确的记忆保持率目标,并更新每张卡片的记忆模型,而不是沿用同一套由间隔和难度系数组成的结构。专门的 FSRS 与 SM-2 对比介绍了相关证据和取舍,同时避免把算法与应用功能混为一谈。
我应该先了解哪项 FSRS 设置?
先从期望记忆保持率开始,因为它直接体现回忆率和工作量之间的取舍。然后检查学习步骤和重新学习步骤。除非你的应用提供受支持的优化流程,否则不要改动模型参数。
记住这套分工
应用显示卡片,你判断自己的回忆情况。FSRS 更新难度和稳定性,计算当前时刻的可提取性,再按照期望记忆保持率安排下一次复习。学习步骤负责短期内的再次出现,可选的优化器则可以根据复习历史拟合模型参数。
这套分工也说明了问题应该在哪里解决。工作量或长期复习时间感觉不对时,调整设置;题面或答案有问题时,编辑卡片;每次复习时,则要如实评价自己的作答。
FSRS 可以算出一个基于模型的日期。真正有用的信号,仍然始于一张清晰的卡片,以及你按下的那个按钮。