1Salesforce AI Research 2Salesforce Agentforce
◦First authors *Core authors †Senior authors
An LLM agent's capability depends not only on model weights but on its harness: prompts, tools, skills, and control flow. Self-improvement loops already edit harnesses, yet single-lineage search is path-dependent and local wins often regress other tasks. We introduce DarwinX, which treats self-evolution as selection over a population of harnesses with the model frozen: a preserve-and-extend contract admits only variants that extend coverage without regressing, an archive keeps alternative lineages for recombination, and failure-, teacher-, and self-derived evidence share one edit interface. Fitness comes from each benchmark's own verifier: no gold solutions, no hand-picked winners.
Across four benchmarks that progressively separate the evolution signal from the test, one loop adds about 17 points on average: Terminal-Bench 2.1 rises +7.7 to 83.2% on a matched base and to the verified frontier at 84.7% on a stronger one; TerminalWorld's held-out split reaches 68.3%, ahead of every off-the-shelf agent; WebArena-Infinity real-task pass@1 rises from 43.5% to 93.0% audit-clean; and a Terminal-Bench 2.1 harness transfers unchanged to SWE-bench Verified. What evolves is general agent competence, not benchmark-specific patches, so it survives changes of task, verifier, and base model. A frozen model need not be a fixed agent: harness selection turns evaluation compute into durable capability.
A run maintains an archive shaped as a tree, where each node is a harness snapshot with its edit delta, per-task scores, trial evidence, and distilled lessons. Nothing is discarded: a variant that loses overall may still hold the one edit that, combined with another branch's, unlocks a task neither solves alone. Parallel branches target different capability clusters, so the archive grows specialists with different solved-task signatures.
A child is admitted only when the measured evidence shows it solved something new without breaking what it already solved, which bounds what a win is allowed to cost elsewhere. When variants solve complementary tasks, their additive edits are merged, and the merged child is kept only if it covers the union of its parents' wins. Fitness is the benchmark's own verifier at avg@k — no gold solutions and no hand-picked winners.
Failure-derived diagnosis, teacher-derived demonstrations, and self-derived rollout contrast are all converted into harness edits rather than model-weight updates. The base model never changes, so every gain reported here is a statement about the harness alone.
The four benchmarks progressively separate the evolution signal from the test: in-domain (Terminal-Bench 2.1), held-out task split (TerminalWorld), synthetic → real intent shift (WebArena-Infinity), and zero-shot cross-benchmark transfer (SWE-bench Verified).
89 tasks. Evolution and evaluation share the task distribution; the model is frozen and only the harness changes.
| Agent | Model / effort | avg@5 |
|---|---|---|
| Monet (DarwinX) | GPT-5.6 Sol / medium | 84.7 ± 1.2 |
| Claude Code | Fable 5 / xhigh | 83.8 ± 1.2 |
| Monet (DarwinX) | GPT-5.5 / high | 83.2 ± 1.2 |
| Codex | GPT-5.5 / xhigh | 83.1 ± 1.1 |
| OpenAI reference | GPT-5.6 Sol / medium | 81.8 |
| Terminus 2 | GPT-5.5 / xhigh | 78.0 ± 1.2 |
| Monet (base) | GPT-5.5 / default | 75.5 ± 3.5 |
At 84.7% DarwinX matches or exceeds the verified leader (Claude Code + Fable 5, 83.8% at xhigh) while running at a lower effort setting, and adds +2.9 points over OpenAI's own native single-agent GPT-5.6 Sol at the same medium effort. Against a neutral harness on the same GPT-5.5 base (Terminus 2, 78.0%), the pure harness gain is +5.2 points — so the improvement is the harness, not the model or the effort setting.
Per-cluster avg@5 on a frozen GPT-5.5. Sort by any column and hover a bar for exact rates.
Gains concentrate where a frozen base has the most headroom: ML & scientific computing (+14.8, the largest cluster at 23 tasks) and data & databases (+13.8). Clusters where the base is already strong barely move, and none regresses beyond the per-task noise band. Paired protocol over 88 tasks, which excludes one task with no paired evolved trial; the headline 83.2% uses the stricter 89-task leaderboard rule above.
Per-task compute, median over clean attempts.
Evolve on 94 verifier-scored training tasks, then freeze the harness and evaluate on 41 disjoint held-out tasks. Single-attempt pass@1, no retries and no best-of-k, so no held-out reward can feed back into the archive.
| Agent | Model | pass@1 |
|---|---|---|
| Monet (DarwinX) | Opus 4.8 | 68.3% |
| Claude Code | Opus 4.8 | 65.9% |
| Monet (base) | Opus 4.8 | 61.0% |
| Terminus-2 | GPT-5.5 | 61.0% |
| Terminus-2 | Opus 4.8 | 58.5% |
| Monet (DarwinX) | GPT-5.5 | 56.1% |
| Codex | GPT-5.5 | 51.2% |
| Monet (base) | GPT-5.5 | 48.8% |
Held-out generalization reflects archive diversity: four evolved specialists each solve a different subset of the 41 tasks, and the merged Monet (DarwinX) exceeds every specialist and the Claude Code reference (dashed).
During evolution the training-subset score saturates from 0.505 to 1.000, yet held-out pass@1 is 68.3% — a 31.7-point gap between the proxy the search maximizes and the held-out truth it never sees. Crucially, the variant that best fits the proxy is not the best generalizer: four high-scoring specialists solve 24, 25, 26, and 27 of the 41 held-out tasks on overlapping but distinct subsets, and their merge reaches 28/41. Keeping a population, rather than following the single best-scoring lineage, is what converts an overfit proxy into held-out gain.
Every cell is one of the 41 held-out tasks, filled when at least one selected specialist solves it. Toggle specialists to watch coverage grow, and turn on the comparison to see how the harness DarwinX actually produced differs from the plain union. Hover any cell for its task id. Built from the per-task records of the five evaluation runs.
Evolution sees synthetic intents only; evaluation is the official 1,260-task real suite across 10 applications. We report audit-clean pass@1 throughout: trajectories flagged invalid by the validity audit count as failures even when the verifier passes them.
| Application | Kimi | Qwen | Gemini+BU | GPT-5.5+BU | Monet (base) | Monet (DarwinX) | Δ |
|---|---|---|---|---|---|---|---|
| Elation clinical records | 50.0 | 54.2 | 81.7 | 92.5 | 95.8 | 96.7 | +0.9 |
| Elation prescriptions | 23.3 | 41.7 | 80.8 | 90.8 | 20.0 | 95.0 | +75.0 |
| GitLab plan and track | 39.3 | 37.1 | 63.6 | 77.9 | 63.6 | 97.9 | +34.3 |
| Gmail | 70.0 | 56.7 | 75.0 | 85.0 | 25.0 | 98.3 | +73.3 |
| Gmail accounts and contacts | 40.0 | 33.3 | 61.7 | 87.5 | 21.7 | 91.7 | +70.0 |
| Handshake career exploration | 50.0 | 50.5 | 50.5 | 83.5 | 36.5 | 84.0 | +47.5 |
| Linear account settings | 54.2 | 65.8 | 73.3 | 81.7 | 43.3 | 94.2 | +50.9 |
| PayPal wallet | 70.7 | 71.4 | 88.6 | 90.0 | 49.3 | 95.7 | +46.4 |
| Superhuman general | 15.0 | 25.8 | 50.0 | 80.8 | 31.7 | 87.5 | +55.8 |
| Xero invoicing | 52.5 | 55.8 | 80.8 | 93.3 | 39.2 | 96.7 | +57.5 |
| Overall | 43.3 | 48.3 | 69.3 | 86.1 | 43.5 | 93.0 | +49.5 |
93.0% audit-clean beats the strongest same-model baseline (GPT-5.5 + Browser Use, 86.1%) by 6.9 points and the top public agent (Gemini 3 Flash + Browser Use, 69.3%) by 23.7 points. Given differing action spaces across public agents, we treat the same-model gap as the primary comparison. In counts, the base solves 548/1,260 and the evolved harness 1,171/1,260.
Screening score of every evaluated variant in the WebArena-Infinity run, in archive order. Hover a point for its score; the line is the best-so-far envelope.
| Measure | Monet (base) | Monet (DarwinX) | Δ |
|---|---|---|---|
| Audit-clean pass@1 | 43.5 | 93.0 | +49.5 pp |
| Confirmed invalid | 23.5% | 1.4% | −22.1 pp |
| Human review | 5.1% | 0.1% | −5.0 pp |
| Blocked attempt | 14.3% | 0.1% | −14.2 pp |
Evolution does not buy the gain with shortcuts: it cuts invalid trajectories from 293 to 17, the evaluation-plane, privileged-knowledge, and exploit mechanisms disappear entirely, and the residual 17 are all raw-state mutations concentrated in a single application. Dropping unaudited successes too still leaves 92.9%.
Invalid trajectories before vs. after evolution. On a shared scale the second row is almost invisible, which is the result: 293 invalid trajectories become 17. Scale each row to its own total to inspect what the remainder is made of.
Each line runs from raw pass@1 to pass@1 after the validity audit. A long line means the harness was leaning on trajectories the audit rejects.
The best Terminal-Bench 2.1 harness is run unchanged on all 500 SWE-bench Verified instances. No SWE-V feedback ever enters the loop; we report it as a transfer target only and run no in-domain SWE-V evolution.
| Harness | Solved | pass@1 |
|---|---|---|
| Monet (DarwinX), TB2.1-specialized, transferred unchanged | 421/500 | 84.2% |
| Fix-skill reference | — | 80.8% |
+3.4 points over the reference without receiving any SWE-V feedback. The transferred agent preserves strong repository-level competence, so what evolved on terminal tasks is general agent capability rather than benchmark-specific patching.
Anchored on Terminal-Bench 2.1, we compare base Monet (75.5%) with the evolved best (83.2%) along two axes: the skill-bundle diff between the two harnesses, and where on the benchmark the gains land. This is an exploratory attribution, not a per-skill causal ablation — the skills were co-selected, not independently randomized.
| Evolved skills | Role |
|---|---|
verifier-contractcontract-candidate |
Derive the task's acceptance contract and check the solution against it before finalizing. |
graded-artifact-final-checkartifact-verification-loop |
Verify the graded artifact (output file, format, and values) and iterate a fix-and-recheck loop. |
real-tool-artifacttool-grounded-artifact |
Ground outputs in real tool execution rather than asserted or simulated results. |
security-contract-repair |
Repair the solution against security and contract checks. |
Gains concentrate where a frozen base has the most headroom and where verifying against a contract unblocks fragile multi-step work: ML & scientific-computing (+14.8, 60→75%) and data/database (+13.8, 84→98%). Clusters where the base is already strong barely move (system administration 92→98%, security 85→84%, within noise), and no cluster regresses beyond the per-task noise band. That asymmetry is the empirical footprint of the preserve-and-extend rule: extend the fragile clusters, hold the solved ones fixed. The unblocked difficulty is procedural — long dependency installs, environment setup, output verification, multi-step tool use — rather than knowledge-bound, which matches a verification/artifact-contract bundle rather than a stronger model.
WebArena-Infinity, the same family in a different modality. The evolved browser harness adds the same kind of skills (state and action contracts), and its confirmed-invalid rate falls from 23.5% to 1.4% while audit-clean pass@1 rises 49.5 points, with the largest gains on state-changing applications. Verification-before-finalization is thus visible under a different interaction modality and reward source.
TerminalWorld, diversity rather than a single skill. Individual specialists solve 24–27 held-out tasks and the merged harness solves 28, so the archive is valuable as a source of complementary behaviors even when the training-subset ranking is noisy.
Together these make verification-before-finalization and contract-aware tool use a plausible shared mechanism across benchmarks, offered as an explanation rather than a per-skill causal estimate.
@article{zhang2026darwinx,
title = {DarwinX: Evolving Agent Harnesses Through Natural Selection},
author = {Zhang, Yifan and Dai, Yutong and Tan, Juntao and Yang, Luyu and
Mullur, Rishi and Hoang, Thai and Hu, Zhiyuan and Zhu, James and
Mui, Phil and Savarese, Silvio and Xu, Ran and Chen, Zeyuan},
journal = {arXiv preprint arXiv:2608.07545},
year = {2026}
}