分析

Stockfish 的 Elo 与级别

适用于 iPhone、iPad、Mac 和 Android。无需账户。

Stockfish 有多强?以最强棋力下,它远远强于任何人类棋手。但 Stockfish 也可以刻意下得弱一些,国际象棋应用和网站正是这样为每位棋手提供不同级别的。本页介绍这些级别背后的设置,引擎级别上的 Elo 数字意味着什么、不意味着什么,Lichess 上的 Stockfish 级别是怎样设置的,以及如何选择适合你的级别。

Stockfish 如何限制棋力

Stockfish 内置了两种降低棋力的方法。两者都是 UCI 选项,也就是国际象棋程序在引擎开始搜索前发送给它的设置。

  • Skill Level,从 0 到 20。 20 是最强棋力,0 是最弱的设置。低于 20 时,Stockfish 会比较几个候选着法,并带一点随机性地刻意选一步较弱的棋。级别越低,它在搜索中越早做出这个选择,接受的错误也越大。
  • UCI_LimitStrength 和 UCI_Elo。 打开 UCI_LimitStrength 后,程序可以用 UCI_Elo 指定一个以 Elo 表示的目标棋力。在 Stockfish 19 中,允许的范围是 1320 到 3190。Stockfish 在内部把这个 Elo 换算成一个技能级别。

这个范围写在源代码中(Stockfish 19 的 search.h)。根据那里的一条注释,这个换算是根据不同技能级别的 Stockfish 与另一款引擎之间的对局拟合出来的,大致覆盖 CCRL 快棋尺度上的 1320 到 3190。CCRL 是引擎的等级分榜单,而不是人类的。

还有第三种方法,任何程序都可以使用:限制搜索本身。固定的节点数(引擎查看的局面数)、固定的深度或很短的每步思考时间,都会让 Stockfish 变弱,因为浅层搜索会漏掉深层搜索能找到的战术。许多应用会把这类限制与技能级别结合起来使用。

为什么引擎 Elo 不是你的等级分

一个 Elo 数字只有在它自己的棋手池里才有意义。引擎级别是在引擎之间的对局中测出来的。你的等级分则来自人与人之间的对局,而且是在某个特定网站或某个棋协中。

  • 棋手池不同。 UCI_Elo 以一份引擎等级分榜单为基准。Lichess 和 Chess.com 的等级分来自各自平台上棋手之间的对局,FIDE 等级分来自线下的正式计分对局。
  • 错误类型不同。 受限的引擎大多走强着,只是时不时随机走出一步较弱的棋。人犯的是其他类型的错误:忽略了一个威胁、误判了一个计划,或者时间不够用。一个在纸面上与你等级分相当的级别,下起来可能难得多,也可能容易得多。
  • 条件不同。 每步的思考时间和设备的速度,都会改变一个级别实际下出的棋力。

就连人类的等级分彼此也对不上。同一位棋手在 Lichess、Chess.com 和 FIDE 上的数字各不相同,国际象棋等级分换算中的对比就说明了这一点。所以,把引擎级别的 Elo 当作阶梯上的一级台阶,而不是可以与你自己的等级分相比的数字。

最强棋力的 Stockfish 有多强?

远超任何人类。在 Stockfish 18 发布时,Stockfish 团队写道,即使在较旧或低端的硬件上,引擎也比任何人类棋手都强(公告)。在 2026 年 10 月 16 日的 CCRL 40/15 等级分榜单上,使用四个处理器核心的 Stockfish 19 以 3650 Elo 排名第一。

这个数字属于引擎尺度,是在固定条件下与其他引擎对局测出来的。它不能准确告诉你与人类的比赛会是什么结果。它能告诉你的是:以最强棋力下,Stockfish 是分析工具,而不是人类的陪练对手。要和它对弈,你需要一个受限的级别。最新版本有哪些变化,请参阅 Stockfish 19。

Lichess 上的 Stockfish 级别

在 Lichess 上,你可以与电脑在 1 到 8 级下棋。电脑的着法来自 fishnet,即 Lichess 的分布式 Stockfish 服务。在撰写本文时,它的源代码(api.rs)为每个级别设置了三项限制:

Lichess 级别Skill Level深度限制每步时间
1-9550 毫秒
2-55100 毫秒
3-15150 毫秒
435200 毫秒
575300 毫秒
6118400 毫秒
71613500 毫秒
820221000 毫秒

有三点值得注意。1 到 3 级使用低于 0 的技能值,超出了官方 Stockfish 选项的范围。在 8 级,技能限制是关闭的(20),但深度和时间仍有上限,所以 8 级非常强,却不是最强棋力的 Stockfish。此外,代码设置的是技能、深度和时间,而不是 Elo。你看到的任何 Lichess 级别的 Elo,都是来自别处的估计,而不是 Lichess 代码中的数字。

ChessWOW 中的五个级别

ChessWOW 的五个级别使用 Stockfish 19 自带的设置:

级别目标设置方式
初学者Elo 800Skill Level 0,外加较小的节点数上限
俱乐部棋手Elo 1600UCI_LimitStrength,UCI_Elo 1600
大师Elo 2200UCI_LimitStrength,UCI_Elo 2200
特级大师Elo 2700UCI_LimitStrength,UCI_Elo 2700
最强棋力不限不限制棋力,使用全部处理器核心

初学者级别需要另一种方法。UCI_Elo 不能低于 1320,而单独使用 Skill Level 0,对刚学棋的人来说仍然下得太好。所以 ChessWOW 把 Skill Level 0 与较小的节点数限制结合起来。这样引擎搜索得非常少,连简短的战术也会漏掉。所有 Elo 值都是 Stockfish 尺度上的目标,而不是 Lichess 或 Chess.com 的等级分;设备和用时也会影响一个级别的实际表现。

你可以在与 Stockfish 对弈页面顶部的棋盘上,在浏览器中试试同样的五个级别。浏览器运行的是网络更小的 Stockfish 19 精简版本。

如何选择合适的级别

  1. 步骤 1

    从一个看起来稍微简单的级别开始。 刚接触国际象棋:初学者。经常下棋、懂基本战术:俱乐部棋手。较强的俱乐部棋手或比赛棋手可以从大师开始。

  2. 步骤 2

    下三到五盘,不用提示,让结果反映你自己的水平。

  3. 步骤 3

    统计你的成绩。 如果几乎每盘都赢,就升一级;如果几乎每盘都输,就降一级。

  4. 步骤 4

    停在有赢有输的级别。 这些对局让你学到的最多。

  5. 步骤 5

    每盘棋后看报告。 对局报告会显示对局在哪里发生了转折。下一盘之前,先把这些局面练一练。

升级之后,先输几盘是正常的。级别之间的台阶大小并不相等,在 Lichess 上和在任何应用中都一样。如果某一级台阶感觉太大,就在较低的级别多下几盘,或者从一个你占优的局面开始,练习把它赢下来。

你可能想知道

问题与解答

Stockfish 的 Elo 是多少?

以最强棋力下,使用四个核心的 Stockfish 19 在 2026 年 10 月 16 日的 CCRL 40/15 榜单上是 3650。这是引擎尺度,不能与人类的等级分相比。

Lichess 上 Stockfish 8 级的 Elo 是多少?

Lichess 的代码没有给出这个数字。8 级使用 Skill Level 20,深度限制为 22,每步最多一秒。

Stockfish 最低可以设置到多少 Elo?

在 Stockfish 19 中,用 UCI_Elo 最低是 1320。要更弱,需要使用 Skill Level 和搜索限制,例如节点数上限。

Skill Level 20 是什么意思?

最强棋力。在 20 级,Stockfish 不会刻意选择较弱的着法。

ChessWOW 的初学者级别真的是 Elo 800 吗?

它是 Stockfish 尺度上的目标,通过 Skill Level 0 和节点数上限实现。它不等同于 Lichess、Chess.com 或 FIDE 上的 800 等级分。

更多指南

继续阅读

ChessWOW

找到你对阵 Stockfish 的合适级别。

五个级别,使用完整网络,在 iPhone、iPad、Mac 和 Android 上离线可用。