运行与评测

从生产证据到人工标签、不可变数据集、可复现实验和异步评测结果。

Run 页面

Agent run 页面展示一次任务的对话输出与 execution trace。Trace 是定位 prompt、模型、工具、知识和记忆问题的第一入口。

完成的生产 run 不会直接成为正确答案,也不会立即触发评测。管理员可以点击 Send to review,把它作为待审核证据发送到 Eval Review Inbox

四个评测视图

Eval workbench 对 Agent、回复判断、Workflow、Workflow 节点、Subagent 和 Retrieval 使用同一套流程:

  1. Review Inbox:查看从生产运行主动采样或手动提交的证据。审核人必须填写人工标签、确定性标签或已验证的业务结果,才能接纳样本。
  2. Datasets:每次接纳或发布都会生成完整、不可变的数据集 revision。旧 revision 的用例成员和标签不会被改写。
  3. Experiments:固定 dataset、candidate/control target、grader set 和安全执行环境的 revision。
  4. Attempts:异步排队执行 experiment。取消会保留历史;Retry 会创建新的 attempt,而不是清空或覆盖旧结果。

Review 与标签

Observed output 只是“当时系统输出了什么”的证据,不等同于“正确答案”。尤其是“是否回复”这类业务判断,只允许使用人工复核或可验证的业务结果作为正确性标签。

无法安全重放、trace 不完整或不具代表性的样本应当 Reject,并填写原因。Rejected 样本不会进入 dataset。

Experiment revisions

Experiment 固定以下内容:

  • Dataset revision 与完整 case membership。
  • Candidate target revision;需要对照时也固定 control revision。
  • Grader set revision。每个 grader 固定 implementation revision;LLM rubric grader 还必须固定 judge model、prompt template、prompt version 和 rubric。
  • Offline 或 sandbox 环境、固定时间、fixture、网络与工具 allowlist。

因此,即使后来修改了 Agent、Workflow、grader 或 dataset,历史 attempt 仍能说明自己实际评测的是哪个版本。

安全执行

Eval 环境始终拒绝 write tools。网络默认为 deny 或 fixture-only;外部副作用必须被 deny、mock 或放进隔离 sandbox。Attempt detail 会展示 artifact 的 effect evidence,便于确认执行是否被安全约束。

结果怎么读

Attempt detail 同时展示 ExecutionArtifact、grader metrics 和 evidence。指标名称应说明自己衡量的是什么:

  • replay_consistency 只表示回放是否稳定,不证明业务正确。
  • 正确性指标必须引用可信 expected outcome、rubric 或确定性断言。
  • token、延迟、工具错误等运行指标用于分析成本和效率,不应被包装成正确率。

自动化与 CI

Scheduled Task 和 CI 应当按 experiment ID enqueue attempt,再轮询 attempt 状态。它们不得使用可变的“当前配置”同步执行,也不得覆盖历史 attempt。运行结果统一回到 Attempts 查看。

Scheduled Task 只接受当前管理员拥有且状态为 active 的 experiment。每次调度使用 ExecutionRun ID 作为幂等键,并把创建的 attempt 关联回该 ExecutionRun。Attempt 被取消、失败、废弃、超时或未通过 experiment thresholds 时,Scheduled Task run 会失败;超时会主动请求取消 attempt。

CI 可运行 pnpm eval:ci。需要配置:

  • EVAL_API_URLEVAL_CI_TOKENEVAL_EXPERIMENT_ID
  • EVAL_CI_IDEMPOTENCY_KEY;GitHub Actions 也可以提供 GITHUB_RUN_IDGITHUB_RUN_ATTEMPT,脚本会为同一次 attempt 生成稳定幂等键,并让 workflow rerun 创建新的 eval attempt。
  • 可选的 EVAL_CI_TIMEOUT_MSEVAL_CI_POLL_MSEVAL_CI_REQUEST_TIMEOUT_MS 必须是正数。

服务端把 CI token 固定映射到默认团队工作区,CI 无法指定或跨越团队。脚本只在 attempt 为 completed、threshold summary 合法且明确 passed: true、summary 与 case 数量一致时返回退出码 0;是否允许部分 case 失败由 experiment 的固定 thresholds 决定。failedcancelledabandoned、超时、API 错误、summary 不完整或 threshold 失败都会返回非零退出码;轮询超时还会调用 CI cancel endpoint。