象棋评测不能只看第一步,XiangqiBench 用 119 个残局逼出了 LLM 的闭环短板
静态评测给模型记一功,只要它报出正确着法就算对。但真下棋不是这么回事,对手会应招,你得把计划一路执行到将死才算赢。XiangqiBench 这个新基准就是冲着这个差距去的,拿中国象棋当试验场:119 个战术残局,全是引擎或将军搜索能确认的强制杀,模型得跟引擎防守方真刀真枪下完。
先说这个基准怎么运作。它搭了一个可交互的 REPL 接口,把真实走子、局面查询、前瞻模拟三种操作分开。模型可以问当前局面,可以推演几步,但最终每一步棋都得落子。研究团队让 12 个前沿 LLM 在两种观察协议下跑,攒了 8,568 条多轮对局轨迹。所谓两种观察协议,我理解一种是能看到完整棋盘的 Sighted,另一种大概是信息受限的盲棋模式。
论文里最有意思的是拆穿了三个"看起来很强、实际赢不了"的信号,每一个都对应一种能力假象。
第一是转化差(Conversion Gap)。在 Sighted 试验里,模型有 26.1% 的概率先走出棋谱里的参考第一步,听着挺靠谱对吧?但这批对局里最终赢下来的只有 13.9%。也就是说,模型知道开局该走哪步,但走着走着就丢了优势,硬生生把必胜棋下输。这直接说明一个道理:背谱不等于会下棋,第一步对后面全错照样白搭。
第二是一致性差(Consistency Gap)。表现最好的模型 pass@3 能到 38.7%,听起来挺能打。但换个算法,要求同一个局面三次全赢,这个模型只有 5.9% 的成功率。它在 46 个能赢的局面里,只有 7 个是三次全胜。换句话说,它能赢,但赢得不稳定。一次超常发挥混过去,再来一次就露馅。
第三是模拟差(Simulation Gap)。模型调用前瞻模拟时,有 32.3% 的调用会因为走出非法招法而中止。更麻烦的是,在 49.3% 的可比情形里,真实防守方的应招跟模型模拟时的预期不一样。模型自己推演时能检查招法合法性,但算不到对手会变招。这就像你背了对手的开局套路,结果对方不按套路出牌,你后面全乱了。
这三组数字放一起,结论很清楚:拿静态评测当Agent能力的标尺,会高估得很离谱。你让模型说一步棋,它说得对;你让它下完一整盘,它赢不了。中间差的那一截,恰恰是 Agent 最该有的闭环能力——把计划执行到底,并且应对对手的反馈。
我比较关心的是这 119 个残局的构成。从摘要看全是强制杀,有引擎支持或者将军搜索能确认的,这意味着每盘棋都存在一条必胜路径。理论上只要模型每一步都走对,必然将死。但数据告诉我们,即便存在确定性的胜法,模型也经常走丢。这比让模型去下开放中局更能暴露问题——中局输了可以怪局面复杂,但强制杀输了就是你执行力的锅。
这个基准的设计思路值得做 Agent 评测的人参考。现在很多评测还是"问答式"的,问模型一个规划问题,模型答出步骤就得分。但真实 Agent 是跑在环境里的,环境有反馈,有意外,有对手。XiangqiBench 把这种闭环差异量化出来了,而且量化得很具体:第一步正确率 26.1%,最终胜率 13.9%,中间差了 12 个百分点,全是执行环节漏掉的。
对做象棋 AI 或者棋类 Agent 的人来说,这个基准可以直接拿来当评测工具用。REPL 接口把操作拆开,意味着你能精确追踪模型每一步是在哪个环节出错的——是局面理解错了,还是模拟推演错了,还是落子时手滑。这种可追溯性比单纯看输赢有用得多。
不过我也在想,这 12 个模型的排行没在摘要里给出,只有"leading model"这个说法。如果能知道具体是哪个模型在闭环场景下表现最好,跟它的静态评测成绩对比一下,会很有参考价值。另外 checks-only search 和完整引擎搜索两种方式支持的残局,难度差别应该不小,模型在这两类残局上的表现差异也是我想看到的数据。
话说回来,XiangqiBench 给的启示不限于象棋。任何一个需要多步规划、并且有对手反馈的任务,都可能存在类似的"转化差"。模型能说出正确方案,不代表它能顶着干扰把方案执行完。下次你看到某个 Agent 在 benchmark 上拿了高分,先别急着夸,问问它是答对了问题,还是真的把事情做成了。
我也是刚试了下,象棋引擎告诉我第一步该走车二平五,但模型非要走马二进三,结果被对面一马一炮全打残了。