smevals:用于评估模型、提示词与执行框架的小型评测工具
Simon Willison2026-08-02 05:05
概览
smevals 是一个用于运行小型评测套件的工具,目标是帮助回答不同模型在特定任务上的能力问题。它可以针对不同模型配置运行同一组任务,并根据预先定义的检查规则对结果进行评分。
这个工具适用于评估:
- 不同模型的输出能力
- 不同系统提示词的效果
- 不同模型参数组合
- 不同 agent harness 或执行框架
基本使用方式
官方给出的快速流程可以概括为两步:
- 让编码 agent 运行以下命令,了解工具用法:
uvx smevals docs
- 然后让它帮你构建一个 eval suite。
一个 eval 通常表现为一个目录,目录中包含若干 YAML 文件。创建完成后,可以用下面的方式针对多个模型运行:
uvx smevals run path-to-eval/ -m gpt-5.5 -m claude-opus-4.6
运行与评分分离
smevals 将“运行任务”和“评分结果”分成两个阶段。
运行完成后,可以使用已定义的检查规则进行评分:
uvx smevals grade path-to-eval/
随后可以启动本地 Web 服务查看结果:
uvx smevals serve path-to-eval/
也可以使用:
uvx smevals build
将报告构建为静态 HTML,便于托管到任意静态站点环境中。
示例中还展示了一个用于评估模型写俳句能力的评测套件,检查模型是否能够准确回复三行非空文本。报告界面包含排行榜、近期运行记录、近期评分、标签通过率、测试提示词以及评分器细节等信息。
核心概念
smevals 对评测流程做了一组术语定义:
- eval:一组挑战集合,用来回答关于模型能力的问题。例如:某个模型生成 SVG 的能力如何?
- task:eval 中的具体挑战。例如:“生成一张鹈鹕骑自行车的 SVG”。
- config:运行 eval 时使用的配置。每个 config 通常指定一个待评估模型,也可以包含系统提示词、模型参数或 agent harness 等设置。
- run:记录某个 config 执行某个 task 时发生了什么。
- runner:执行 run 的脚本。
- grader:用于评估一个或多个 run 的组件,会产出 grade。
- grade:评分结果。
- check:grader 执行的一系列检查,可以是简单规则,例如检查输出中是否包含某个字符串,或验证输出是否为合法 XML。
- checker:更复杂的自定义检查脚本,也可以调用其他模型来判断某次运行结果。
为什么值得关注
模型评测在实际应用中往往不只是比较“哪个模型更强”,还需要比较提示词、参数、执行框架和任务设计的组合效果。smevals 的特点是将这些变量放入统一的评测结构中,并提供运行、评分和报告生成流程。
它更适合小规模、针对性强的评测场景,例如:
- 验证某个模型是否适合特定产品任务
- 比较多个提示词版本的稳定性
- 检查模型输出是否满足格式约束
- 为 agent 工作流设计回归测试
- 用可复现方式记录模型配置表现
对于需要频繁试验模型、提示词和 agent harness 的团队来说,这类轻量评测工具可以帮助把主观体验转化为更可追踪的实验流程。