跳转到主要内容
experiment 对着哪个 agent、用哪个模型、开哪些 flags、跑几次。用于做 AB 测试、模型对比、feature 对比。

一个 experiment 里有什么

experiment 是 experiments/ 下可签入的 TypeScript 文件,核心就几个字段:
// experiments/concise.ts
export default defineExperiment({
  description: "简洁 prompt 变体",
  agent: webAgent({ baseUrl: "https://staging.example.com" }),  // 已配置好的 agent 实例
  model: "gpt-5.4",                    // 经 ctx.model 透传给 Adapter
  flags: { promptVariant: "concise" }, // 经 ctx.flags 透传;eval 里是 t.flags
  runs: 3,                             // 每条 eval 跑几次(对抗随机性)
});
  • agent:评谁。放的是已经配置好的实例——被测系统的 URL、鉴权传给 Adapter 工厂,不进 experiment 的其它字段。
  • model / flags:透传语义。NiceEval 不解释它们的含义,原样经 ctx 递给 Adapter,由 Adapter 随请求转发、应用按需切换——这正是 Tier 里模型对比(Tier 1)和 feature A/B(Tier 3)的通道。
  • runsbudget、并发、sandbox 等运行参数:怎么跑、跑多少。完整字段见写实验

矩阵对比

要比较的每个变体写一个 experiment 文件:两个模型就是两个文件,只差 model 一行;prompt A/B 就是只差一个 flag。同一批 eval 在多个 experiment 下各跑一遍,pass rate、成本、延迟就有了可比的横截面——niceeval view 里叠着看。适合比什么、结果怎么读,见实验矩阵

相关阅读

  • 写实验defineExperiment 的完整字段:runs、预算、并发与 sandbox。
  • 实验矩阵 — 跨 agent / model / flags 的对比怎么组织、怎么读结果。
  • 评估 — 另一半:eval 是什么、生命周期与 outcome。
  • Tiermodel / flags 各在哪一档生效。