When Agents Fail: Model or Harness--Who's to Blame?
Organizations: Shanghai Artificial Intelligence Laboratory
Abstract
LLM agents combine models with execution harnesses, so agentic benchmark performance reflects their joint behavior. We argue that harnesses should therefore be evaluated through their interactions with underlying models. We develop a framework combining five complementary measures: (i) Valid Completion Rate (VCR), how reliably agents finish normally and deliver evaluable results, irrespective of task correctness; (ii) Model-Harness Fit, how well a harness supports task achievement through valid completion for a given model; (iii) Cross-Model Fit, a harness's overall suitability across evaluated models; (iv) Interaction Residuals, pairing-specific execution strengths and weaknesses hidden by component-level summaries; and (v) Token Load, the token demands of agent execution, including failed attempts. We evaluate four general-purpose harnesses (OpenCode, Codex CLI, Pi CLI, and DeepAgents) with four core models, plus two fixed native model-harness systems, on six benchmarks covering context management, tool use, long-context planning, multimodal interaction, and artifact handoff. Including native references and stress conditions, 111 evaluation settings yield 52,168 trajectories. Harness rankings vary across models and benchmarks; task performance and valid completion can favor different pairings, and similar task scores can accompany distinct execution profiles. OpenCode ranks first in cross-model performance, while DeepSeek V4 Flash Preview maintains consistently high Mean VCR across harnesses on the shared four-benchmark panel. These findings support evaluating model-harness interactions, training transferable harness-use capabilities in models, and harness designs adapted to the model and task.
Figures & tables
| Benchmark | Tasks | Key interaction demands |
| SWE-bench-45 ( Jimenez et al., 2024 ; Chowdhury et al., 2024 ) | 45 | Repository editing, testing, patch handoff |
| Terminal-Bench 2 ( Merrill et al., 2026 ) | 89 | Stateful terminal interaction |
| VitaBench ( He et al., 2026 ) | 400 | Multi-turn services, domain APIs |
| LOCA-Bench ( Zeng et al., 2026 ) | 75 | Long-context planning, exact-state completion |
| ClawMark ( Meng et al., 2026 ) | 100 | Multi-day workflows, state changes, multimodal inputs |
| AgentSkillOS ( Li et al., 2026 ) | 30 | Skill selection, artifact handoff |
| Model | Harness | SWE- bench-45 | Terminal- Bench 2 | VitaBench | LOCA-Bench | ClawMark | AgentSkill OS | |||||
| Best | Mean | Best | Mean | Best | Mean | Best | Mean | Best | Mean | |||
| DeepSeek V4 Flash Preview | DeepAgents | 40.00 | 31.11 | 61.80 | 45.79 | 69.00 | 38.00 | 40.00 | 20.67 | – | – | – |
| OpenCode | 42.22 | 32.22 | 53.93 | 40.45 | 71.50 | 45.38 | 53.33 | 31.00 | – | – | – | |
| Pi CLI | 46.67 | 35.56 | 61.80 | 44.66 | 75.75 | 48.94 | 42.67 | 29.00 | – | – | – | |
| Codex CLI | 46.67 | 36.11 | 50.56 | 37.64 | 77.00 | 49.06 | 76.00 | 50.67 | – | – | – | |
| MiniMax M3 | DeepAgents | 55.56 | 31.11 | 46.07 | 21.63 | 77.25 | 51.00 | 33.33 | 24.00 | 75.06 | 54.78 | 80.07 |
| Harness | MiniMax M3 | Kimi K2.7 | Qwen3.6 | Cross-model |
| OpenCode | 86.86 [85.11, 88.50] | 87.06 [83.02, 90.94] | 88.55 [80.84, 93.36] | 87.48 [84.06, 89.99] |
| Pi CLI | 73.73 [69.87, 77.73] | 76.16 [71.99, 80.27] | 81.70 [74.88, 84.98] | 77.13 [73.49, 79.62] |
| Codex CLI | 72.37 [68.59, 76.61] | 60.45 [56.84, 63.91] | 91.21 [85.55, 93.44] | 73.62 [70.54, 75.82] |
| DeepAgents | 60.56 [56.35, 64.62] | 61.29 [57.11, 65.48] | 71.29 [63.99, 76.22] | 64.20 [60.57, 66.94] |
| Harness | Score Mean | VCR | Affected attempts % [95% CI] | Events per affected attempt |
| Codex CLI | 11.96 | 100.00 | 6.75 [4.50, 9.25] | 1.00 |
| DeepAgents | 58.65 | 53.25 | 0.00 [0.00, 0.00] | – |
| OpenCode | 70.36 | 88.00 | 0.00 [0.00, 0.00] | – |
| Pi CLI | 11.93 | 99.25 | 40.50 [36.25, 44.75] | 1.32 |
| Win rate (%) | Fit variants (0–100) | ||||
| Harness | Outcome | VCR | Outcome-only | Arithmetic | Cross-model |
| OpenCode | 72.22 | 73.15 | 87.84 | 87.49 | 87.48 |
| Pi CLI | 49.07 | 58.33 | 78.20 | 77.20 | 77.13 |
| Codex CLI | 43.52 | 45.37 | 74.56 | 74.68 | 73.62 |
| DeepAgents | 35.19 | 23.15 | 68.15 | 64.38 | 64.20 |
| Omitted | DA | OC | Pi | CX | Order | |
| Model | MiniMax | 66.10 | 87.80 | 78.88 | 74.26 | |
| Model | Kimi | 65.71 | 87.70 | 77.61 | 81.25 | |
| Model | Qwen | 60.92 | 86.96 | 74.94 | 66.14 | |
| Benchmark | SWE-45 | 68.86 | 86.06 | 75.45 | 77.75 | |
| Benchmark | TB2 | 63.29 | 86.29 | 73.66 | 71.91 | |
| Benchmark | Vita | 57.82 | 85.26 | 73.40 | 70.69 |
| Held-out model | Selected Fit | Best harness | Best Fit | Regret |
| MiniMax M3 | 86.86 | OpenCode | 86.86 | 0.00 |
| Kimi K2.7 | 87.06 | OpenCode | 87.06 | 0.00 |
| Qwen3.6 | 88.55 | Codex CLI | 91.21 | 2.66 |
| Harness | Token-use win rate | Outcome-preserving win rate | Pareto-frontier share | Relative load |
| DeepAgents | 51.85 [44.44, 53.70] | 14.81 [11.11, 22.22] | 50.00 [27.78, 55.56] | 1.095 [1.043, 1.159] |
| OpenCode | 44.44 [40.74, 51.85] | 35.19 [31.48, 44.44] | 61.11 [50.00, 72.22] | 1.150 [1.112, 1.202] |
| Pi CLI | 55.56 [50.00, 61.11] | 24.07 [20.37, 33.33] | 50.00 [38.89, 66.67] | 0.906 [0.827, 0.967] |
| Codex CLI | 48.15 [44.44, 51.85] | 24.07 [16.67, 27.78] | 55.56 [44.44, 61.11] | 0.877 [0.838, 0.927] |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Harness | By model | Head-to-head | Overall win rate | |||||
| MiniMax M3 | Kimi K2.7 | Qwen3.6 35B-A3B | vs. DA | vs. OC | vs. Pi | vs. Codex | ||
| DeepAgents | 38.89 | 38.89 | 27.78 | – | 22.22 | 33.33 | 50.00 | 35.19 |
| OpenCode | 83.33 | 72.22 | 61.11 | 77.78 | – | 66.67 | 72.22 | 72.22 |
| Pi CLI | 44.44 | 55.56 | 47.22 | 66.67 | 33.33 | – | 47.22 | 49.07 |
| Codex CLI | 33.33 | 33.33 | 63.89 | 50.00 | 27.78 | 52.78 | – | 43.52 |
| Harness | MiniMax M3 | Kimi K2.7 | Qwen3.6-35B-A3B | |||
| VCR win rate | Mean VCR | VCR win rate | Mean VCR | VCR win rate | Mean VCR | |
| DeepAgents | 25.00 | 60.60 | 27.78 | 59.69 | 16.67 | 79.31 |
| OpenCode | 86.11 | 91.68 | 55.56 | 83.09 | 77.78 | 90.70 |
| Pi CLI | 47.22 | 72.96 | 77.78 | 87.94 | 50.00 | 82.13 |
| Codex CLI | 41.67 | 71.88 | 38.89 | 78.26 | 55.56 | 89.48 |
| Benchmark | Native outcome | Outcome W/T/L | Outcome WR | Native VCR | VCR W/T/L | VCR WR | Joint | |
| GPT-5.5–Codex | ||||||||
| SWE-bench-45 | 16 | 65.56 | 16/0/0 | 100.00 | 99.44 | 13/3/0 | 90.63 | 100.00 |
| Terminal-Bench 2 | 16 | 60.39 | 16/0/0 | 100.00 | 72.47 | 10/0/6 | 62.50 | 62.50 |
| VitaBench | 16 | 46.56 | 11/0/5 | 68.75 | 100.00 | 4/12/0 | 62.50 | 68.75 |
| LOCA-Bench | 16 | 76.00 | 15/0/1 | 93.75 | 96.67 | 8/0/8 | 50.00 | 50.00 |
| ClawMark | 12 | 74.31 | 12/0/0 | 100.00 | 92.25 | 7/0/5 | 58.33 | 58.33 |
| Harness | Lower quartile | Model | Lower quartile |
| DeepAgents | 49.16 | MiniMax M3 | 48.60 |
| OpenCode | 81.67 | Kimi K2.7 | 60.00 |
| Pi CLI | 64.33 | Qwen3.6-35B-A3B | 76.00 |
| Codex CLI | 68.82 |
| Model | Harness | Best | Mean |
| DeepSeek V4 Flash Preview | DeepAgents | 40.00 | 31.11 |
| OpenCode | 42.22 | 32.22 | |
| Pi CLI | 46.67 | 35.56 | |
| Codex CLI | 46.67 | 36.11 | |
| MiniMax M3 | DeepAgents | 55.56 | 31.11 |
| OpenCode | 82.22 | 62.78 |
| Model | DeepAgents | OpenCode | Pi CLI | Codex CLI |
| DeepSeek V4 Flash Preview | 19.76 | -11.49 | -14.41 | 6.15 |
| MiniMax M3 | -8.85 | 7.12 | 1.42 | 0.31 |
| Kimi K2.7 | -19.97 | 18.23 | 21.42 | -19.69 |
| Qwen3.6-35B-A3B | 9.06 | -13.85 | -8.44 | 13.23 |
| Model | DeepAgents | OpenCode | PI | Codex | ||||
| Best | Mean | Best | Mean | Best | Mean | Best | Mean | |
| Qwen3.6-35BA3B | 40.4 | 26.4 | 40.4 | 26.1 | 43.8 | 28.7 | 47.2 | 28.7 |
| DeepSeek | 61.8 | 45.8 | 53.9 | 40.4 | 61.8 | 44.7 | 50.6 | 37.6 |
| MiniMax-M3 | 46.1 | 21.6 | 55.1 | 39.6 | 53.9 | 33.1 | 51.7 | 34.6 |
| Kimi-K2.7 | 44.9 | 30.6 | 53.9 | 39.0 | 59.6 | 43.8 | 48.3 | 31.7 |
| Model | Harness | Delivery | In-store | OTA | Cross | Total | |||||
| Best | Mean | Best | Mean | Best | Mean | Best | Mean | Best | Mean | ||
| MiniMax M3 | DeepAgents | 81.00 | 59.50 | 83.00 | 58.25 | 76.00 | 47.00 | 69.00 | 39.25 | 77.25 | 51.00 |
| OpenCode | 83.00 | 59.00 | 84.00 | 56.75 | 76.00 | 49.00 | 59.00 | 32.75 | 75.50 | 49.38 | |
| Pi CLI | 86.00 | 59.25 | 87.00 | 58.50 | 77.00 | 49.25 | 59.00 | 30.00 | 77.25 | 49.25 | |
| Codex CLI | 85.00 | 53.25 | 82.00 | 48.50 | 67.00 | 35.25 | 76.00 | 43.25 | 77.50 | 45.06 | |
| Kimi K2.7 | DeepAgents | 75.00 | 51.50 | 78.00 | 52.25 | 69.00 | 47.00 | 42.00 | 21.50 | 66.00 | 43.06 |
| Model | DeepAgents | OpenCode | Pi CLI | Codex CLI | ||||
| Best | Mean | Best | Mean | Best | Mean | Best | Mean | |
| DeepSeek V4 Flash Preview | 40.00 | 20.67 | 53.33 | 31.00 | 42.67 | 29.00 | 76.00 | 50.67 |
| Qwen 3.6–35B–A3B | 14.67 | 8.67 | 34.67 | 21.00 | 28.00 | 15.00 | 70.67 | 36.33 |
| MiniMax M3 | 33.33 | 24.00 | 32.00 | 21.00 | 21.33 | 12.67 | 93.33 | 87.00 |
| Kimi K2.7 | 17.33 | 8.33 | 42.67 | 27.67 | 50.67 | 34.33 | 86.67 | 54.00 |
| Model | DeepAgents | OpenCode | Pi CLI | Codex CLI |
| DeepSeek V4 Flash Preview | +19.71 | -10.13 | +10.88 | -20.46 |
| Qwen3.6-35B-A3B | +9.46 | -1.04 | +2.29 | -10.71 |
| MiniMax M3 | -12.21 | +18.63 | -16.38 | +9.96 |
| Kimi K2.7 | -16.96 | -7.46 | +3.21 | +21.21 |
| Harness | Runtime errors | Timeout-like failures | Main observed pattern |
| Codex CLI | 6 | 0 | Most runs terminate normally. |
| Pi CLI | 156 | 154 | Timeouts, and BrokenPipeError ; some error runs still have a correct final state. |
| OpenCode | 120 | 120 | Timeout termination during long tasks. |
| DeepAgents | 251 | 235 | Long timeouts, graph recursion limits, forced completion, and partial-state recovery. |
| Model | Harness | Score | Full Success | ||
| Best | Mean | Best | Mean | ||
| MiniMax M3 | DeepAgents | 75.06 | 54.78 | 21.00 | 11.00 |
| OpenCode | 82.39 | 69.62 | 28.00 | 12.75 | |
| Pi CLI | 78.34 | 62.58 | 28.00 | 14.50 | |
| Codex CLI | 77.25 | 58.49 | 22.00 | 11.75 | |
| Kimi K2.7 | DeepAgents | 72.56 | 58.65 | 20.00 | 8.25 |
| Model | Harness | 200 skills (primary) | 900 skills (stress) |
| MiniMax M3 | DeepAgents | 80.07 | 83.02 |
| OpenCode | 93.49 | 64.08 | |
| Pi CLI | 85.39 | 89.98 | |
| Codex CLI | 36.44 | 36.42 | |
| Kimi K2.7 | DeepAgents | 89.92 | 84.34 |
| OpenCode | 84.94 | 62.87 |
| Condition | Model | DeepAgents | OpenCode | Pi CLI | Codex CLI |
| skill_200 | MiniMax M3 | -2.36 | +11.53 | +9.31 | -18.47 |
| Kimi K2.7 | +0.76 | -10.35 | +9.93 | -0.35 | |
| Qwen3.6-35B-A3B | +1.60 | -1.18 | -19.24 | +18.82 | |
| skill_900 | MiniMax M3 | +7.78 | +6.11 | +5.83 | -19.72 |
| Kimi K2.7 | -0.97 | -0.14 | -0.42 | +1.53 | |
| Qwen3.6-35B-A3B | -6.81 | -5.97 | -5.42 | +18.19 |
| Model | Harness | SWE- bench-45 | Terminal- Bench 2 | VitaBench | LOCA-Bench | ClawMark | AgentSkill OS |
| DeepSeek V4 Flash Preview | DeepAgents | 2.358 | 2.484 | 0.933 | 6.181 | – | – |
| OpenCode | 1.531 | 0.677 | 0.503 | 2.390 | – | – | |
| Pi CLI | 2.434 | 1.666 | 0.296 | 9.073 | – | – | |
| Codex CLI | 3.762 | 1.244 | 0.656 | 1.288 | – | – | |
| MiniMax M3 | DeepAgents | 6.444 | 1.860 | 0.562 | 6.332 | 6.333 | 2.950 |
| OpenCode | 10.722 | 1.882 | 0.404 | 14.644 | 3.563 | 3.679 |
| Model | Harness | Outcome | Token load | Tokens/ success | Coverage |
|---|---|---|---|---|---|
| SWE-bench-45 | |||||
| DeepSeek V4 Flash Preview | DeepAgents | 31.11 | 2.358 | 7.579 | 100.00 |
| DeepSeek V4 Flash Preview | OpenCode | 32.22 | 1.531 | 4.750 | 100.00 |
| DeepSeek V4 Flash Preview | Pi CLI | 35.56 | 2.434 | 6.845 | 100.00 |
| DeepSeek V4 Flash Preview | Codex CLI | 36.11 | 3.762 | 10.419 | 100.00 |
| MiniMax M3 | DeepAgents | 31.11 | 6.444 | 20.714 | 100.00 |
LLM Agent Evaluation
Large language model agent evaluation measures whether tool-using systems complete tasks reliably, safely, and efficiently.
See all 1,203 papers