experiments/ 里。CLI 的位置参数只负责筛 eval,不负责临时改 agent 或运行配置。
最小实验
agent 放的是已经配置好的 agent 实例。被测系统的 URL、鉴权、协议细节通常传给 adapter 工厂;运行器不会单独保存一个 agentConfig 字段。
传 model 和 flags
model 会作为 ctx.model 传给 adapter;应用接口支持模型选择时,adapter 把它放进请求体、header 或 CLI 参数即可。
flags 会作为 ctx.flags 传给 adapter,也会作为 t.flags 出现在 eval 里。它适合表达 experiment 维度的 feature 开关,例如 prompt 版本、工具集、检索开关。真正按 flag 切换行为的是你的应用或 adapter,NiceEval 只负责原样透传。
一组实验怎么写
一个实验文件是一格配置。要比较多个模型、agent 或 flags,就把多个文件放进同一个文件夹:常用字段
| 字段 | 用途 |
|---|---|
agent | 选择并配置 adapter;必填 |
model | 单个模型名,经 ctx.model 透传 |
reasoningEffort | 单个推理努力程度(如 "high"),经 ctx.reasoningEffort / t.reasoningEffort 透传,归属与 model 一致 |
flags | 任意 JSON 对象,经 ctx.flags / t.flags 透传 |
runs | 每个 eval × 配置最多跑几次 |
earlyExit | 多次运行里通过一次就提前停止 |
evals | 限定这一格配置跑哪些 eval |
timeoutMs | 单个 attempt 的超时 |
budget | 这一格配置的预算上限 |
maxConcurrency | 这一格配置的并发上限 |
sandbox | sandbox agent 使用的后端,如 dockerSandbox() / e2bSandbox() |
ctx.model 和 ctx.flags 见Adapter。