运行与评测
从生产证据到人工标签、不可变数据集、可复现实验和异步评测结果。
Run 页面
Agent run 页面展示一次任务的对话输出与 execution trace。Trace 是定位 prompt、模型、工具、知识和记忆问题的第一入口。
完成的生产 run 不会直接成为正确答案,也不会立即触发评测。管理员可以点击 Send to review,把它作为待审核证据发送到 Eval Review Inbox。
四个评测视图
Eval workbench 对 Agent、回复判断、Workflow、Workflow 节点、Subagent 和 Retrieval 使用同一套流程:
- Review Inbox:查看从生产运行主动采样或手动提交的证据。审核人必须填写人工标签、确定性标签或已验证的业务结果,才能接纳样本。
- Datasets:每次接纳或发布都会生成完整、不可变的数据集 revision。旧 revision 的用例成员和标签不会被改写。
- Experiments:固定 dataset、candidate/control target、grader set 和安全执行环境的 revision。
- 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_URL、EVAL_CI_TOKEN、EVAL_EXPERIMENT_ID。EVAL_CI_IDEMPOTENCY_KEY;GitHub Actions 也可以提供GITHUB_RUN_ID和GITHUB_RUN_ATTEMPT,脚本会为同一次 attempt 生成稳定幂等键,并让 workflow rerun 创建新的 eval attempt。- 可选的
EVAL_CI_TIMEOUT_MS、EVAL_CI_POLL_MS和EVAL_CI_REQUEST_TIMEOUT_MS必须是正数。
服务端把 CI token 固定映射到默认团队工作区,CI 无法指定或跨越团队。脚本只在 attempt 为 completed、threshold summary 合法且明确 passed: true、summary 与 case 数量一致时返回退出码 0;是否允许部分 case 失败由 experiment 的固定 thresholds 决定。failed、cancelled、abandoned、超时、API 错误、summary 不完整或 threshold 失败都会返回非零退出码;轮询超时还会调用 CI cancel endpoint。