Skip to content

Commit 44a852e

Browse files
varunursekarclaude
andcommitted
Re-pin all five held-out baselines from fresh 3-round measurements
The pins had gone stale: the seed agents moved 4-10 commits after the original pinning (one commit touched all five) and nothing recorded the dependency. Re-measured with scripts/rescore_candidate.py --seed, which reuses the original path exactly -- plain harbor run over the explicit test task list, 3 rounds pooled, no gateway, harbor's default timeout multiplier. benchmark was now delta tau3 0.6111 0.7321 +0.121 real (sd 0.0099) gaia 0.5736 0.6205 +0.047 inside noise (sd 0.0524) swe-atlas-qna 0.0966 0.0676 -0.029 inside noise (sd 0.0257) officeqa 0.3603 0.3412 -0.019 inside noise (sd 0.0330) browsecomp-plus 0.4495 0.4619 +0.012 inside noise (sd 0.0283) Only tau3 moved materially, so the earlier claim that all five were stale was too broad -- but that was not knowable without measuring, which is the point. Two benchmarks turn out to be too noisy for single-run comparisons, and this is the more useful finding. gaia's three rounds spanned 0.554-0.682. tau3's optimizer scored one *unchanged* harness at 0.800 and 0.547 on development, because its user-simulator and NL-assertion grader are both LLMs whose variance rides on every eval. Deltas under ~0.1 on either benchmark should be read as unresolved. Their splits are not the cause: domain mix matches to the percentage point across all three partitions (airline 13%, banking 26%, retail 30%, telecom 31%), as does telecom persona difficulty. Recorded so the next person does not re-derive it. Verified by compile on all five. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5727a44 commit 44a852e

7 files changed

Lines changed: 19 additions & 6 deletions

File tree

harness-engineering-bench/CONFIGURATION.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ benchmark can be checked against the others at a glance.
160160
| | gaia | officeqa | swe-atlas-qna | tau3 | browsecomp-plus |
161161
|---|---|---|---|---|---|
162162
| target model | gpt-5.4-mini ◇ | deepseek-v4-flash | gpt-oss-120b | deepseek-v4-flash | deepseek-v4-flash |
163-
| held-out baseline (K=3) ◆ | 0.574 ±0.010 | 0.360 ±0.042 | 0.097 ±0.011 (agg 0.632) | 0.611 ±0.021 | 0.449 ±0.007 |
163+
| held-out baseline (K=3) ◆ | 0.621 ±0.052 | 0.341 ±0.033 | 0.068 ±0.026 (agg 0.632) | 0.732 ±0.010 | 0.462 ±0.028 |
164164
| split dev/val/test | 33/66/66 | 49/98/99 | 25/49/50 | 75/150/150 | 33/66/66 |
165165
| dev budget (runs / cases) | 100 / 132 | 100 / 196 | 100 / 100 | 100 / 300 | 100 / 132 |
166166
| val budget (runs / cases) | 100 / 264 | 100 / 392 | 100 / 196 | 100 / 600 | 100 / 264 |
@@ -267,6 +267,10 @@ deepseek benchmarks logged zero exceptions over 945 trials, swe-atlas lost
267267
5/150 to gpt-oss 128k context overflow, and gaia lost 4/198 (infra) after the
268268
agent's reason/search-only-turn crash was fixed.
269269

270+
**Re-pin these whenever a seed agent changes.** The first set went stale because the seed agents moved 4-10 commits afterwards -- one commit touched all five -- and nothing recorded the dependency. Re-measured 2026-07-28 with `scripts/rescore_candidate.py --seed`, which reuses the original path exactly. Only tau3 moved materially (+0.121 against an sd of 0.0099, so a genuine seed improvement); the other four shifted inside their own noise.
271+
272+
**gaia and tau3 are too noisy for single-run comparisons.** gaia's own three rounds spanned 0.554-0.682 (sd 0.052), and tau3's optimizer scored one *unchanged* harness at 0.800 and 0.547 on development -- its user-simulator and NL-assertion grader are both LLMs, so their variance rides on every eval. Treat a gaia or tau3 delta under ~0.1 as unresolved. Their splits are not the problem: domain mix matches to the percentage point across all three partitions (airline 13%, banking 26%, retail 30%, telecom 31%), as does telecom persona difficulty.
273+
270274
◇ gaia is the exception to the deepseek-v4-flash default: it is multimodal and
271275
that model is text-only. Verified against the same litellm endpoint the gateway
272276
proxies to — gpt-5.4-mini returns 200 for every request shape the gaia agent

harness-engineering-bench/browsecomp-plus/baseline/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ selection_partition: validation
3131
targets:
3232
- partition: test
3333
reward_key: reward
34-
baseline_reward: 0.4495 # held-out K=3 mean (see CONFIGURATION.md)
34+
baseline_reward: 0.4619 # re-pinned 0.424 / 0.470 / 0.492 (sd 0.0283); was 0.4495. See runs/BASELINES.md
3535
failure_value: 0.0
3636
max_attempts: 1
3737
# The held-out eval is noisy: score the selected candidate 3x per case and

harness-engineering-bench/gaia/baseline/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ selection_partition: validation
3131
targets:
3232
- partition: test
3333
reward_key: reward
34-
baseline_reward: 0.5736 # held-out K=3 mean (see CONFIGURATION.md)
34+
baseline_reward: 0.6205 # re-pinned 0.554 / 0.625 / 0.682 (sd 0.0524); was 0.5736. See runs/BASELINES.md
3535
failure_value: 0.0
3636
max_attempts: 1
3737
# The held-out eval is noisy: score the selected candidate 3x per case and

harness-engineering-bench/officeqa/baseline/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ selection_partition: validation
3636
targets:
3737
- partition: test
3838
reward_key: reward
39-
baseline_reward: 0.3603 # held-out K=3 mean (see CONFIGURATION.md)
39+
baseline_reward: 0.3412 # re-pinned 0.354 / 0.296 / 0.374 (sd 0.0330); was 0.3603. See runs/BASELINES.md
4040
failure_value: 0.0
4141
max_attempts: 1
4242
# The held-out eval is noisy: score the selected candidate 3x per case and

harness-engineering-bench/scripts/rescore_candidate.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,15 @@ def main() -> int:
255255
log(f"{len(tasks)} {args.partition} case(s), {args.rounds} round(s), "
256256
f"{args.attempts} attempt(s)/case, concurrency {args.concurrency}")
257257

258+
# Some tasks reference the base URL under litellm's alias rather than
259+
# OPENAI_BASE_URL -- swe-atlas-qna's rubric judge declares
260+
# `EVAL_BASE_URL = "${OPENAI_API_BASE}"` in [verifier.env], and harbor aborts
261+
# the whole job with "Missing Environment Variables" before running a single
262+
# trial if it is unset. Mirror it so a benchmark's own judge can start.
263+
if os.environ.get("OPENAI_BASE_URL") and not os.environ.get("OPENAI_API_BASE"):
264+
os.environ["OPENAI_API_BASE"] = os.environ["OPENAI_BASE_URL"]
265+
log("mirrored OPENAI_BASE_URL -> OPENAI_API_BASE for task verifier env")
266+
258267
if "OPENAI_API_KEY" not in os.environ and not args.dry_run:
259268
sys.exit("OPENAI_API_KEY is not set. Source the run's secrets.env first: "
260269
"the target agent talks to the upstream directly here, exactly "

harness-engineering-bench/swe-atlas-qna/baseline/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ selection_partition: validation
3131
targets:
3232
- partition: test
3333
reward_key: reward
34-
baseline_reward: 0.0966 # held-out K=3 mean (see CONFIGURATION.md)
34+
baseline_reward: 0.0676 # re-pinned 0.061 / 0.102 / 0.040 (sd 0.0257); was 0.0966. See runs/BASELINES.md
3535
failure_value: 0.0
3636
max_attempts: 1
3737
# The held-out eval is noisy: score the selected candidate 3x per case and

harness-engineering-bench/tau3/baseline/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ selection_partition: validation
3030
targets:
3131
- partition: test
3232
reward_key: reward
33-
baseline_reward: 0.6111 # held-out K=3 mean (see CONFIGURATION.md)
33+
baseline_reward: 0.7321 # re-pinned 0.738 / 0.740 / 0.718 (sd 0.0099); was 0.6111. See runs/BASELINES.md
3434
failure_value: 0.0
3535
max_attempts: 1
3636
# The held-out eval is noisy: score the selected candidate 3x per case and

0 commit comments

Comments
 (0)