smevals:轻量级模型和提示词评估框架
Simon Willison 发布的开源工具,可直接用于量化评估 AI 模型和提示词效果,对 AI 工程实践有参考价值。
Simon Willison 发布的开源工具,可直接用于量化评估 AI 模型和提示词效果,对 AI 工程实践有参考价值。
2026 年 7 月 31 日 - 链接博客
我一直在与 Jesse Vincent 的应用 AI 研究实验室 Prime Radiant 合作,共同开发这个 evals 框架,帮助回答有关不同模型能力的问题。
最终成果是 smevals:一个新工具,可以针对不同的模型配置运行小型 eval 套件,并对结果进行评分。
这篇博客详细介绍了这个工具。下面是 10 秒快速上手版:
告诉你的 coding agent 运行 uvx smevals docs 来了解这个工具(该命令会输出 README)。
然后让它为你构建一个 eval 套件。
创建好 eval 后——它的形式是一个包含若干 YAML 文件的目录——你可以像下面这样用不同模型运行它:
uvx smevals run path-to-eval/ -m gpt-5.5 -m claude-opus-4.6
运行和评分会被视为彼此独立的操作。你可以使用下面的命令,根据自己定义的一组检查项对运行结果进行评分:
uvx smevals grade path-to-eval/
然后,你可以启动一个 localhost Web 服务器来查看结果:
uvx smevals serve path-to-eval/
你也可以运行 smevals build 命令,将报告构建为静态 HTML,之后便能托管到任意位置。下面这个示例展示了我为评估模型创作俳句的能力而构建的一套 eval。

这个项目最耗费时间的部分,是确定该使用什么样的术语!下面是我最终采用的定义,引用自发布公告:
eval 是一组 challenge,用来回答与模型有关的某个问题。例如,这个模型生成 SVG 的能力有多强?
每个 eval 都由一组 task 构成。task 是一项具体的 challenge,例如:“生成一张鹈鹕骑自行车的 SVG”。
运行 eval 时,你会针对一个或多个 config 执行它。每个 config 都会指定一个要评估的模型,但也可以包含其他需要测试的参数,例如不同的 system prompt、模型参数或 Agent harness。
run 记录的是:使用某个特定 config 执行某个特定 task 时发生了什么。runner 则是执行 run 的脚本。
收集到一个或多个 run 后,你需要评估结果,看看模型(或 config)的表现如何。这项工作由 grader 完成,并产出一个 grade。
每个 grader 都会依次执行一系列 check。这些 check 可以是简单操作,例如检查输出中是否包含某个特定字符串,或者确认输出是不是有效的 XML;也可以是更复杂的自定义操作,包括使用其他模型回答有关该 run 的问题。这些自定义操作通过名为 checker 的脚本实现。
过去几年里,我一直在尝试寻找一种自己满意的 evals 实现方式。smevals 是我对这个想法的第三次迭代,而这一次的感觉终于对了。我很期待未来继续扩展它,也期待把它应用到自己的一些项目中。
OpenAI 意外对 Hugging Face 发起的网络攻击,是已经发生的科幻故事——2026 年 7 月 22 日
与 Claude Code 团队的 Cat 和 Thariq 炉边对谈——2026 年 7 月 21 日
Kimi K3,以及我们仍能从鹈鹕 benchmark 中学到什么——2026 年 7 月 16 日
这是一篇由 Simon Willison 发布的链接文章,发布于 2026 年 7 月 31 日。
每月赞助我 10 美元,即可收到一封精心整理的邮件摘要,汇总当月最重要的 LLM 进展。
付钱让我少给你发点东西!