参考

结果与 PASS

Result 怎么读;pass@k 是 job 指标,不是整份 dataset 的 PASS。

不要搞混

  1. run.py 跑完 ≠ PASS
  2. 轨迹 / token / agent 自述 ≠ 分数(含 evaluation/observation.jsonl 与 evaluation/checks.json)
  3. PASS / FAIL 仅来自 evaluator.py 的返回值
  4. 整份 dataset / job 汇总(含 pass@k)≠ 整份 dataset 的 PASS
  5. 跑完之后的 analyzer 报告 ≠ 分数,也不改写 evaluation/checks.json

终端上

  • Result:绑定到这次运行的状态与评测结论
  • logs:这次运行的证据路径(相对 dataset 根,如 .ageval/runs/<run_id>;单次 k=1 常见)
  • 整份跑完时的 pass_rate / mean_score:job 汇总

Always-k 与 pass@k / pass^k

用 -k / --n-attempts 跑满 k 次后,整份跑完的 summary.json → metrics 会写:

键含义
pass_at_kpass@k(至少一次成功的无偏估计;Harbor 同构)
pass_power_kpass^k(k 次都成功的估计)
n_attempts本 job 的 Always-k 预算(来自 CLI / job,不是 task.yaml)
k_values本 summary 计算过的 k 列表
per_task各 task 的 n / c 与 per-k 映射(审计)
整份汇总分各 task 上该指标的 mean(样本不够的 task 不进分母)

带 fork 的 Attempt 不进入默认 pass@k 和 pass^k。它们仍作为单独的行保留。

metrics.pass_at_k / pass_power_k 契约

每个键是 字符串化的 k(如 "1"、"2"、"5"),值为:

{
  "1": { "value": 0.75, "n_tasks": 4, "incomplete_tasks": 0 },
  "2": { "value": 0.5,  "n_tasks": 3, "incomplete_tasks": 1 }
}
字段含义
value对该 k 可计算的 task 取 mean;若无 task 可算则为 null
n_tasks进入该 k 分母的 task 数
incomplete_tasks因 n < k(pass@k)等原因未进入分母的 task 数

上传 / Registry:

  • ageval results upload-suite 在本地先 ensure / recompute(有 attempts[] 或 task n/c 即可补全 k 指标),再 POST 整份 metrics blob。
  • Registry 原样存入 metrics_json,list/get 不剥除 pass_at_k / pass_power_k。
  • 主列仍是 pass_rate / mean_score;k 指标在 metrics 内读。
  • 不写入 config_fingerprint / job identity;不同 k 的 job 可并列,身份仍是 agent×model 绑定。
  • 无 k 数据的旧上传:metrics.pass_at_k 缺失 → Hub 显示 —。

task_refs(多 attempt): 可含 n、c、attempt_run_ids(及主 run_id),供审计与 --with-attempts 上传全样本。

Hub 上看得到什么

上传命令产物Hub 主界面
ageval results upload --run …单次运行一般不进 Dataset Leaderboard / Task Jobs 主列表
ageval results upload-suite --suite-run …整份运行的一行 + metrics / task_refs完备且绑定 release 才上 Leaderboard;缺题或 draft 绑定只出现在 Task Jobs
… --with-attempts额外上传各 attempt 目录Jobs 可点进 Attempt 详情 / 轨迹

因此:要在 Hub 上看整份 dataset 的结果,流程是 整份跑完 → upload-suite,并且绑定已发布 release。不是只 upload 单题。

本地查看

ageval view 打开一份 dataset 根、一个放着多份 dataset 的目录,或已缓存的 registry ref。顶栏是 Datasets、Jobs、Agents、Plugins。选中的那一份走 Jobs → Tasks → Attempt。
Attempt 页可有 Timing(及有数据时的 Tokens)条。存在 analysis/<analyzer>/report.json 时,证据页签里有 Analysis,列出这些观察;它不是分数。轨迹按文件顺序展示(thought 紧挨着它后面的工具)。轨迹行带 elapsed_ms 时步骤头显示单步耗时。Verifier 会把 evaluation/checks.json 在文件树预览里结构化渲染(同时有 observation.jsonl 时用 Trajectory / Files 切换)。

失败怎么分

类型直觉
配置 / lock还没进入正式执行
执行 ERROR执行边界内出错。error 记下 phase、title、message。ScriptError 保留你传入的 title;其它异常用类名。Viewer 和 Hub 在 ERROR 旁显示这个 title。PASS 和 FAIL 的 error 为空
FAIL评测认为没过
PASS评测通过
run 阶段 limitevaluator 照常打分;limit 为 wall_time_seconds 或 agent_invocations
阶段时钟environment 或 evaluate 到期记 ERROR

具体 exit code 与字段以当前 CLI 输出和 skill ageval-cli 为准。

本页目录