跳转到主要内容
NiceEval 的核心设计是把“评测逻辑”与“如何连接被测对象”分开。NiceEval 负责发现、调度、评分和报告;Adapter 负责调用被测系统;Sandbox Provider 负责隔离文件系统。

四层架构

NiceEval 负责什么

评估用例发现

发现 *.eval.ts 文件和 fixture 目录,并从路径推导稳定 ID。

并发调度

控制运行池大小、重试、attempt 和 early-exit。

断言与评分

收集 t.check、作用域断言、judge 分数和测试结果。

缓存

用 fingerprint 跳过已通过且输入未变的 case。

报告

输出控制台、JSON、JUnit 等报告。

Artifacts

保存 summary、event stream、transcript、diff 和测试输出。

Adapter

AgentNiceEval 看到的抽象;Adapter 是你写的具体实现。NiceEval 不知道你的 agent 私有协议、CLI 参数或鉴权方式。
这条边界让 NiceEval 保持通用。评估你自己的 AI agent、Claude Code、Codex 或自定义 agent 时,runner 和 scorers 的逻辑不需要改变。

Sandbox

本地容器 Provider,适合开发和 CI 中的 coding-agent 评估用例。

关键术语

一个测试用例:描述和 test(t) 函数,agent-neutral——用哪个 Agent 由 experiment 决定。
NiceEval 通过名字调用的一条连接,负责返回标准 Turn
Agent 的具体实现,知道如何调用你的 runtime 或 CLI。
给 coding agent 使用的隔离运行环境。
一次 t.send() 的不可变结果快照。
运行后落盘的结构化结果文件。
用矩阵方式比较多个 agent、model 或 flags 的运行配置。

端到端流程

1

Discovery

发现评估用例文件和 fixture。
2

Scheduling

根据并发、缓存和 attempt 计划运行。
3

Agent send

调用 adapter,让被测对象产出 Turn
4

Scoring

执行断言、judge 和测试。
5

Verdict

把所有结果折叠为 passedfailederroredskipped
6

Reporting & artifacts

输出报告并保存结构化文件。

相关阅读

  • 评估 — 评估用例是什么,以及生命周期细节。
  • Adapter — 如何写 adapter,并在 experiment 中引用它。
  • Drivet.send()、session 与 HITL:如何产出断言要读的 Turn 数据。
  • Assert — 断言词汇和判定规则。
  • Judge — LLM-as-judge,评开放式质量。