Finding the Right Fit: Model-Harness Interactions across Agent Tasks
Choosing an agent system means picking both a model and the execution harness around it, but most evaluations fix one and vary the other. This paper runs a full cross-product of four configurable harnesses (OpenHands, DeepSeek Harness, PI, openJiuwen) and five models across three terminal-use benchmarks (TUA-Bench, ALE-CLI, Terminal-Bench 4), plus two native vendor pairings, for 66 configurations total. The core finding is that model rankings reverse depending on the harness, best harnesses change across tasks for four of five models, and cost does not reliably predict score, suggesting that model-harness fit should be evaluated as a unit.
The paper makes a credible, empirically grounded case that model-harness fit is task-dependent and should be evaluated together. The 66-configuration matrix is substantial, and linking score differences to concrete harness behaviors (timeouts, continuation policies, error feedback) via matched trajectories goes beyond prior correlation-only reports. The central claim is well supported: "Model rankings reverse across harnesses. On Terminal-Bench 4, Claude leads GPT by 7.94 points in OpenHands but trails it by 30.16 points in PI." However, because the study fixes both model and harness for a single run per task without repetition, the observed differences confound luck, provider-side variance, and genuine systematic fit.
The strongest empirical contribution is the cross-benchmark score matrix in Table 1, which makes it undeniable that a model's best harness depends on the task. The persistence of the openJiuwen-Kimi pairing across all three benchmarks, backed by per-task paired comparisons (Figure 2), is a genuinely useful finding. The trajectory analysis in Section 5 isolates plausible mechanisms: PI's unbounded shell turns hangs into silent failures, while openJiuwen's bounded shell returns timeouts that models can recover from. Similarly, the demonstration that final self-checks often declare success on failed tasks is a concrete criticism of current verification practices. These matched cases give the paper diagnostic depth that earn the authors' recommendations about runtime harness design.
The study reports one scored run per task with no variance estimation, so the reader cannot tell how much of a harness-model gap is reproducible versus one-off. The authors acknowledge this directly: "Model settings, tools, and execution budgets are not uniformly matched, so the observed differences do not isolate the causal effect of any single component, and run-to-run variance is not measured." Additional concerns: (1) Some harnesses were modified for the study, most notably OpenHands' context/output limits were raised to 1M/128K from a 16K default, and openJiuwen had to be assembled from its public API rather than run as an official benchmark entry point, meaning comparison is partly with custom compositions rather than stock harnesses. (2) The Kimi baseline on PI incurred 25 provider stream errors out of 62 Terminal-Bench runs, which are counted as harness failures; this inflates the apparent advantage of alternatives. (3) The 'empirical fit' definition is limited to the evaluated pairings, so claims about native pairings being non-optimal exclude many possible vendor-specific configurations.
The evidence generally supports the claims, and comparisons to prior work are accurate. The quoted 40-fold token difference from Vats and Golev matches their abstract: "Harness choice induces up to a 40× difference in tokens per solved task," and HAL's multi-scaffold, cost-aware, log-analysis approach is fairly described. The Harness-Bench citation is broadly consistent with the source paper's emphasis on execution-alignment failures, though the specific claim that "weaker models are more harness-sensitive" is not visible in the fetched abstract and should ideally be verified. The trajectory analysis is suggestive but rests on small samples: ten same-task, same-model pairs for the main coding, plus six for Kimi, before generalizing to all final attempts. This is defensible as qualitative illustration but weaker as quantitative proof of mechanism.
Reproducibility is mixed. The authors admirably release harness adapters, evaluation code, and all 6,204 scored trajectories in a common format, which is well above current practice. However, several factors would block a clean independent reproduction: only one run per task means no estimate of provider or stochastic variance; tasks with infrastructure failures were rerun and the last run counted, which is reasonable but not deterministic; OpenRouter fallbacks were disabled yet one configuration (openJiuwen–DeepSeek on ALE) had to use DeepSeek V4.1 Flash for image inputs; and harness versions used specific package versions (e.g., DSH 0.1.1-rc.2, PI 0.84.4) that may drift. Sampling parameters were left at provider defaults, so token counts and costs depend on opaque provider-side behavior that may change over time.
Choosing an agent system means choosing both a language model and the harness through which it acts. We ask whether a strong model, harness, or pairing stays strong when the setting changes. We evaluate 66 configurations: four configurable harnesses (OpenHands, DeepSeek Harness, PI, and openJiuwen) paired with five models on TUA-Bench, ALE-CLI, and Terminal-Bench 4, plus the native Codex-GPT and Claude Code-Claude pairings. Model rankings reverse across harnesses. On Terminal-Bench 4, Claude leads GPT by 7.94 points in OpenHands but trails it by 30.16 points in PI. For four of the five models, the best harness changes from one benchmark to another, yet some pairings hold: openJiuwen gives Kimi its highest score on all three benchmarks, by 5.61 to 11.11 points. A model's own vendor harness is not reliably its best, and higher cost does not reliably buy a higher score. On Terminal-Bench 4, GPT scores higher under PI than under DSH at less than a quarter of the cost per task. Matched trajectories suggest why fit varies. Models start almost all repairs themselves, so much depends on whether the harness hands failures back in a form the model can use. GPT does best with PI's lean scaffold, while Kimi, which often issues malformed tool calls, does best in openJiuwen. We argue that the model, the harness, and the task should be evaluated together, and we release the harness adapters, evaluation code, and all 6,204 scored trajectories at https://github.com/liyix/finding-the-right-fit and https://huggingface.co/datasets/yixuanli97/finding-the-right-fit.
Pick a starting point or write your own. Challenges run in the background, so you can keep reading while the AI investigates.
No challenges yet. Disagree with the review? Ask the AI to revisit a specific claim.