一个评测俳句的仪表盘,排行榜上摆着三个GPT模型的分数,判断标准只有一条:回复必须是三行,每行都不能空。这么朴素的东西,是Simon Willison做了好几年评测工具后,第一次觉得“感觉对了”的版本。

他和Jesse Vincent的应用AI研究实验室Prime Radiant一起放出了开源工具smevals。核心动作很简单:写几个YAML文件,跑一条命令,模型、提示词、agent配置的表现就摆在你面前。它不是又一个大厂排行榜,而是想把评测这件事,还给天天要选模型、调提示词的人。

发生了什么:五条命令跑完一次评测

流程压缩成几步命令。

  • uvx smevals docs —— 把README喂给你的coding agent,让它学会这套工具
  • 让agent照着README帮你搭一个评测套件,本质是一个目录加几份YAML
  • uvx smevals run path/ -m gpt-5.5 -m claude-opus-4.6 —— 并行跑多个模型配置(材料里的模型名只是示例,不代表任何真实性能结论)
  • uvx smevals grade path/ —— 单独打分,和执行环节完全分开
  • uvx smevals servebuild —— 起个本地网页,或者直接导出静态报告,扔到哪个服务器都行
smevals 的五个动作 docs 学工具 build eval 建套件 run 并行执行 grade 独立打分 serve /build 出报告

最关键的设计,是run和grade彻底分开。跑一次模型输出,可以反复换评分方式检查:确定性规则、自定义checker,甚至换一个模型当裁判。评分标准换了,不用重新跑模型。

config这个词也不只指模型名字。系统提示词、模型参数、agent harness的组合方式,都能写进配置里一起比较。它比的是具体组合——提示词、模型、agent逻辑凑在一起表现如何。

谁该用,谁该等一等

大厂榜单回答的是一个通用问题:哪个模型整体更强。开发者要回答的问题窄得多:我这个任务、这套提示词、这个agent流程,换个模型会不会翻车。这两个问题看着像,答案经常对不上。

smevals把目标锁定在后一种问题上。俳句示例里的报告有排行榜、通过率、标签统计,但判断标准从头到尾只有一条:三行,不空行。范围窄,才能反复验证。

两种评测,回答两种问题 公开大厂榜单 评测对象:模型整体能力 更新方式:大厂发布节奏 可复现性:外部难核查 回答的问题:谁整体更强 不针对具体任务 私有 smevals 评测 评测对象:模型+提示词+harness 更新方式:自己随时跑 可复现性:run/grade可重放 回答的问题:我这套配置行不行 直接对应具体任务

适合的是范围窄、能反复验证的问题,不适合拿来证明谁的模型更聪明。落到具体人,能做的事不一样:

角色现在能做什么该注意什么
模型选型 / 提示词工程师把手头现有测试案例转成YAML任务,用run+grade对比换模型前后的表现格式类检查(字数、行数)好判断,涉及正确性、安全性的复杂任务,评分结果仍要人工复核
需要建内部评测流程的技术负责人先挑一两个范围窄、可反复验证的场景试点,别一上来就想覆盖所有业务评分器本身没有独立验证过,先别把私有评测分数当团队KPI或上线门槛

限制也很明确:这是Willison第三次做评测工具,前两次都没让他满意。这次没人宣布它是行业标准,材料里也没有大规模生产环境验证的数据。当内部工具试点可以,拿来对外证明“我们做了严谨评测”还早。

我的判断

run和grade拆开,听着是个小设计,实际是把“测了什么”和“怎么判的”分开留痕。评分标准变了可以重跑,不用怀疑是模型这次运气好还是评分松了。这一点,比很多花哨的评测平台更实在。

但评分器仍是整套流程的天花板。判断三行俳句容易,判断一段代码有没有隐藏bug、一次agent调用有没有绕过安全边界,靠的还是人写的checker或者另一个模型当裁判。裁判怎么想的,谁来查?smevals目前没替开发者省下这层功夫。

流程可复现,不等于判断可靠。评分器和裁判模型带来的偏差,评测结果本身盖不住。

接下来值得盯的,是有没有人把它接进真实CI流程,跑出能公开对比的失败案例,而不是漂亮的排行榜截图。要是有人靠它在生产环境里抓到过一次模型回归,这工具才算真正立住。

Willison自己说这是第三个版本,前两次都没让他满意。这次没有大张旗鼓宣布成为行业标准,只说“感觉对了”。这种克制,比“重新定义评测”这种话更值得信。评测这件事本来就没有一次做对的道理,能持续迭代、能被拆开检查,已经算难得。