运行

整份 dataset 一次跑完

一次跑完 dataset 里所有 task;可 Always-k 与 pass@k。

省略 --task 时,ageval run 把 dataset 里每一个 task 都跑一遍,各自独立 lock / 执行 / 评测:

ageval run examples/datasets/minimal-demo
ageval run examples/datasets/minimal-demo --max-concurrent-tasks 2

两轴别混

轴干什么不干什么
并发 --max-concurrent-tasks少等一会儿:多开几路压总耗时不改 k,也不改 PASS/FAIL
Always-k --n-attempts / -k每题固定跑满 k 次独立运行,给 pass@k / pass^k 攒样本不是「失败再试」的条件 retry;不进 task.yaml / fingerprint
# 整份 dataset,每题 k=5(只写在 CLI / job 上)
ageval run examples/datasets/minimal-demo -k 5 --max-concurrent-tasks 2

# 只对一题 Always-k
ageval run examples/datasets/minimal-demo --task terminal-jsonl-agg -k 5

# 继续已有 suite:尚未写出 result.json 的槽位原地继续,已以 PASS / FAIL / ERROR 结束的跳过
ageval run examples/datasets/minimal-demo --resume-suite <suite_run_id> --task terminal-jsonl-agg -k 5

# 指定要换的成员(PASS / FAIL / ERROR):新的一次运行,同一个 `suite_run_id`
ageval run examples/datasets/minimal-demo --resume-suite <suite_run_id> --task terminal-jsonl-agg --replace-slot
# Always-k:只换一格 (task_id, attempt_index)
# ageval run examples/datasets/minimal-demo --resume-suite <id> --task terminal-jsonl-agg --replace-slot --attempt-index 1

# 重跑本次过滤里已完成的 ERROR(PASS / FAIL 仍跳过)
ageval run examples/datasets/minimal-demo --resume-suite <suite_run_id> --retry-errors

# 用已收获的 task-artifacts 再评分:新的一次运行,不跑 agent
ageval results regrade examples/datasets/minimal-demo --run <attempt_id>

规则:

  • n_attempts 禁止写进 task.yaml;也不进 config_fingerprint
  • 不加 --replace-slot、也不加 --retry-errors 时,已以 PASS / FAIL / ERROR 结束的槽位跳过。activity.jsonl 头与本次 suite、task、attempt index 及锁定摘要一致、且尚未写出 result.json 的槽位原地继续。没有匹配的活动日志,或摘要对不上,则新开一次 Attempt。缺失的 Always-k index 仍会补上
  • --retry-errors 配合 --resume-suite:重跑本次过滤里的 ERROR 格,不必逐个 --replace-slot。PASS / FAIL 仍跳过。每一格是新的一次运行,旧行进 previous[]
  • --replace-slot 写新的一次运行;旧行留在盘上并进入 previous[];指标只按现行指针重算
  • ageval results regrade 铸造新的一次运行,把该次的 task-artifacts/ 拷进打分环境,只跑评分。评分材料与 evaluator.py 来自当前 dataset。来源 result.json 保持原样。harvest 不够就是 ERROR。轨迹文本不是裁决。task.yaml 里没有开关字段
  • 默认瘦身之后 task-artifacts/ 仍在。清掉活的工作目录不会删掉这份快照
  • Hub / Viewer 历史列表是 patch N + 该次运行开始时间(不是补跑时刻,也不展示 run_id)
  • 因 cancel 未真正跑过 的占位会在 resume 时重跑(避免 pass@k 永久偏低)
  • 进度和取消写在下面;Hub Leaderboard 在有 metrics.pass_at_k 时展示 pass@k / pass^k / n_attempts;本地 summary 始终可写 metrics
  • 系统默认 suite_run_id 为 8 位 hex(无 suite_ 前缀)

汇总指标

写在 .ageval/suite-runs/<suite_run_id>/summary.json 的 metrics:

字段含义
pass_rate / mean_score本 job 各题 mean
pass_at_kpass@k(Harbor 无偏估计);整份汇总分 = 各 task 上该指标的 mean
pass_power_kpass^k(k 次都成功的估计);同样按 task 取 mean
n_attempts本次 job 的 k 预算

样本数不够的 task 不进该 k 的分母。

同目录还有 progress.json(多 unit 进度);一次运行的 result.json 可含 phase_timing(environment / run / evaluate / record / cleanup)。

进度与取消

ageval status <suite_run_id> --dataset examples/datasets/minimal-demo
ageval cancel <suite_run_id> --dataset examples/datasets/minimal-demo
  • status:ControlStore 记录 + 可读 progress
  • cancel:写 cancel.requested,不再开新 unit;有 pid 则 SIGTERM

整份 dataset 一次跑完是 task 轴(多题);campaign 是 同一题扫参数。Always-k 不是 campaign 矩阵轴。

结果写在 dataset 下的 .ageval/suite-runs/。用本地查看器打开这份 dataset,可以看到 Timing 条。Kind 选整份运行时,这些结果也可以换成 Waffle,一格是一次试验。

本地整份运行的 Waffle
同一批结果的 Waffle。一格是一次试验。列标题是模型,下面是 harness。

上传到 Hub(Leaderboard / Jobs)

Hub 的 Dataset → Leaderboard 和 Task → Jobs 读的是 Registry 里整份 dataset 跑完的结果,不是零散的单次上传。

步骤命令
1. 整份跑完ageval run <dataset>(不要加 --task;可用 --profiles)
2. 记下 id输出 / summary.json 里的 suite_run_id(默认 8 位 hex)
3. 上传整份结果ageval results upload-suite <dataset> --suite-run <id> --public(也可 id@version)
4. 需要点开轨迹时加上 --with-attempts
ageval run examples/datasets/minimal-demo --profiles examples/datasets/minimal-demo/profiles.yaml
# suite_run_id 例:d3e5fba6
ageval results upload-suite examples/datasets/minimal-demo \
  --suite-run d3e5fba6 --public --with-attempts \
  --agent acp-pi --model zai-coding-cn/glm-5.2

常见误解: 只跑 ageval run … --task X 再 ageval results upload --run …。那一次运行可能已经进 Registry,但 Leaderboard 通常仍没有一行。要上榜必须先整份跑完,再 upload-suite。

公开榜还有两道门:整份运行必须 完备(绑定版本的每题都有一条 result;题上 FAIL / ERROR 也算),且绑定 release。缺题或绑定 draft 的行只出现在 Task Jobs。先 ageval publish --draft、owner 再 ageval release,或直接 ageval publish 发 release。

本页目录