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 如何工作

对于已经进入长期复习阶段的卡片,调度循环大致如下:

  1. FSRS 根据卡片的稳定性和距离上次复习经过的时间,计算当前的可提取性。
  2. 你查看答案,然后选择 Again、Hard、Good 或 Easy。
  3. FSRS 根据这次评分和卡片之前的状态,更新难度和稳定性。
  4. 它计算预测可提取性将在何时接近你设定的期望记忆保持率。
  5. 宿主应用再套用最大间隔、模糊处理(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 可以算出一个基于模型的日期。真正有用的信号,仍然始于一张清晰的卡片,以及你按下的那个按钮。

继续阅读