LinkLoomAI Editorial

MarkTechPost(Asif Razzaq)

综合资讯研究与评测昨天 06:01精选

72

Score

Can LLMs Engineer Their Own Agent Harness? ByteDance Seed’s HarnessDev Says Only 34 of 64 Changes Generalize

AI 摘要

模型生成,可能有偏差;请以原文为准

字节跳动 Seed 联合多所高校提出 HarnessDev 评测基准,将评估目标转向大模型自主编写与演化的可运行 Agent 框架。实验涵盖 5 个基准、共 2207 个实例,结果显示自建框架在写作与机器学习任务上表现优异,但在代码与搜索领域仍落后于人类设计,且 64 次框架迭代修改中仅 34 次(53.1%)在测试集上有效泛化。该研究量化了模型自建框架对执行器的强依赖与大量死代码问题,为自主 Agent 架构设计与迭代提供了评测标准。

正文

An agent harness is the code around a model: execution loop, tools, context, state, recovery, and verification. Per the Terminal-Bench 2.1 leaderboard, GPT-5 solves 35.2% of tasks inside Terminus 2 but 49.6% inside Codex CLI with identical weights. Most benchmarks keep that harness fixed. HarnessDev proposed by team of researchers from ByteDance Seed, Singapore University of Technology and Design, Georgia Institute of Technology, M-A-P, and TokenWave.AI, flips the target: the artifact under evaluation is the runnable harness the model writes, not the answer it produces.

2 stages: Creation and Evolution

In Creation, every creator receives the same weak seed: passive file, search, and process primitives plus result and trajectory writers, with no loop, planner, verifier, retry, or stopping rule. Unmodified, it scores 0 everywhere. The creator gets a task-family spec, a short design tutorial, and 1 to 3 development cases, builds a full harness, and the harness is frozen before hidden tasks.

In Evolution, the creator starts from its own frozen Creation code harness and revises it using execution feedback from a fixed set of 100 SWE-bench Pro tasks and all 89 Terminal-Bench 2.1 tasks. Each official candidate must complete both evaluations as a pair, with a budget of 10 pairs and at most 2 five-task probes between pairs. Every official version is later scored on 630 held-out SWE-Pro instances the creator never sees.

Harnesses are graded on capability (task success) and efficiency (executor tokens, with creator tokens excluded).

Setup

6 creator LLMs were tested: Opus 4.8, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Qwen 3.7 Max, and Seed 2.0 Pro, working inside Claude Code 2.1.177 (GPT-5.5 used Codex 0.144.3). Creation spans 4 domains and 5 benchmarks totaling 2,207 instances: SWE-bench Pro public split (731), Terminal-Bench 2.1 (89), MLE-bench (75), EQ-Bench3 (46), and BrowseComp (1,266). Each creator builds 3 harnesses per benchmark, reported as avg@3. Self-Eval runs each harness with its creator; Unified-Eval runs all with Gemini 3.1 Pro.

Creation results

Under Self-Eval, Opus 4.8 posts the highest average score at 67.8 against a human-engineered reference of 86.2. The gap depends on domain:

  • Code: Opus 4.8 reaches 69.3 on SWE-Pro versus the 80.0 reference. Gemini 3.1 Pro leads Terminal-Bench at 68.8 versus 88.8.
  • Search: the widest gap. The best BrowseComp score is 52.6 (GPT-5.5) against a 92.2 reference.
  • Writing: Opus 4.8 scores 84.6 on EQ-Bench3, above the 83.7 reference.
  • ML experimentation: Opus 4.8 (32.9) and Gemini (32.4) beat the 24.0 MLE-bench reference.

The SWE-Pro, Terminal-Bench, and BrowseComp references are external results from OpenAI’s GPT-5.6 report, not re-runs.

Code volume did not predict quality: the 18 code harnesses added 17,111 net lines, yet Gemini added the fewest (1,006) and led Terminal-Bench. Self-test count barely correlated with score (Spearman 0.13 to 0.26); revision calls reached 0.57.

Much generated machinery is inert. Of 108 code component instances, 72 trigger in real runs and 18 never fire, all of them state and memory. 11 of 18 harnesses define a State class, yet no checkpoint event appears across 26,679 trajectories. 124 of 587 writing features are dead code.

Cost and executor transfer

MLE-bench token use varied roughly 19-fold. GPT-5.5 hit a 19.1 medal rate with 29.3M tokens while DeepSeek V4 hit 19.6 with 208.4M. Swapping the executor to Gemini reshuffled rankings: Qwen gained 17.6 points on BrowseComp and 12.9 on MLE-bench, while Opus 4.8’s SWE-Pro score fell from 69.3 to 33.0, partly because one harness hard-coded a 120-step limit around its original executor. The Opus search harness’s duplicate-query rate jumped from 10.1% to 88.2% after the switch.

Evolution results

9 lineages (5 self-runtime, 4 fixed-Gemini) produced 73 official versions and 64 adjacent switches. All 5 self-runtime creators improved on held-out tasks, from +1.43 to +4.44 points (mean +3.11). Under fixed Gemini, only Opus improved; GPT-5.5 regressed 10.32 points.

Progress was not monotonic. Of 64 switches, 8 regressed on both benchmarks, 16 on one, 27 gained only within the noise band, and 2 showed clear positive evidence. A single commit can vary by about ±4.75 pair-score points. Feedback and held-out scores moved in the same direction only 34 of 64 times (53.1%), and only 2 of 9 declared final versions were held-out optimal. Of 169 new functions or classes, 25 have no caller.

The clearest win: Opus 4.8 noticed 99 of 100 runs reported success while only 48 passed, traced it to premature completion, and added a completion gate. Failure diagnosis was otherwise the weakest step: the dedicated trajectory interface was called only twice.

Interactive explainer

<meta name="viewport" content="width=device-width,initial-scale=1"></head><body style="margin:0;background:transparent"><style>html,body{margin:0!important;padding:0!important;background:transparent!important}#mtp-harnessdev{box-sizing:border-box!important;width:100%!important;max-width:760px!important;margin:0 auto!important;padding:20px!important;background:#0A1633!important;color:#EEF3FF!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;font-size:15px!important;line-height:1.5!important;border:1px solid #23376B!important;border-radius:14px!important}#mtp-harnessdev *{box-sizing:border-box!important}#mtp-harnessdev h2,#mtp-harnessdev h3,#mtp-harnessdev p{margin:0!important;padding:0!important;color:#EEF3FF!important;background:transparent!important;border:0!important}#mtp-harnessdev h2{font-size:20px!important;font-weight:700!important;line-height:1.25!important}#mtp-harnessdev h3{font-size:16px!important;font-weight:700!important;margin-bottom:6px!important}#mtp-harnessdev p{font-size:14px!important;color:#C7D3F2!important}#mtp-harnessdev .hd-top{display:flex!important;justify-content:space-between!important;align-items:flex-end!important;gap:12px!important;margin-bottom:14px!important}#mtp-harnessdev .hd-src{font-size:12px!important;color:#9AAAD1!important}#mtp-harnessdev .hd-src a{color:#8FB4FF!important;text-decoration:underline!important}#mtp-harnessdev .hd-tabs{display:flex!important;gap:6px!important;flex-wrap:wrap!important;margin-bottom:14px!important}#mtp-harnessdev .hd-tab{flex:1 1 auto!important;border:1px solid #2A4380!important;background:#0F1F45!important;color:#C7D3F2!important;border-radius:8px!important;padding:8px 10px!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;text-align:center!important;transition:background .2s,color .2s!important;font-family:inherit!important}#mtp-harnessdev .hd-tab.on{background:#3B7BFF!important;border-color:#3B7BFF!important;color:#fff!important}#mtp-harnessdev .hd-tab:focus-visible,#mtp-harnessdev .hd-chip:focus-visible,#mtp-harnessdev .hd-btn:focus-visible{outline:2px solid #8FB4FF!important;outline-offset:2px!important}#mtp-harnessdev .hd-slide{display:none!important;background:#0F1F45!important;border:1px solid #23376B!important;border-radius:12px!important;padding:16px!important}#mtp-harnessdev .hd-slide.on{display:block!important}#mtp-harnessdev .hd-btn{border:0!important;background:#3B7BFF!important;color:#fff!important;border-radius:8px!important;padding:8px 14px!important;font-size:13px!important;font-weight:700!important;cursor:pointer!important;font-family:inherit!important}#mtp-harnessdev .hd-btn.sec{background:#1B2E5E!important;border:1px solid #2A4380!important;color:#C7D3F2!important}#mtp-harnessdev .hd-chips{display:flex!important;gap:6px!important;flex-wrap:wrap!important;margin:10px 0!important}#mtp-harnessdev .hd-chip{border:1px solid #2A4380!important;background:#12244F!important;color:#C7D3F2!important;border-radius:999px!important;padding:5px 11px!important;font-size:12px!important;font-weight:600!important;cursor:pointer!important;font-family:inherit!important;transition:background .2s!important}#mtp-harnessdev .hd-chip.on{background:#3B7BFF!important;border-color:#3B7BFF!important;color:#fff!important}#mtp-harnessdev .hd-stage{display:grid!important;grid-template-columns:110px 1fr!important;gap:14px!important;align-items:center!important;margin:12px 0!important}#mtp-harnessdev .hd-seed{background:#12244F!important;border:1px dashed #4A66A8!important;border-radius:10px!important;padding:10px!important;text-align:center!important;font-size:12px!important;color:#9AAAD1!important}#mtp-harnessdev .hd-seed b{display:block!important;color:#EEF3FF!important;font-size:13px!important;margin-bottom:4px!important}#mtp-harnessdev .hd-mods{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important}#mtp-harnessdev .hd-mod{background:#12244F!important;border:1px solid #23376B!important;border-radius:10px!important;padding:8px!important;font-size:12px!important;color:#9AAAD1!important;opacity:.25;transform:translateY(8px);transition:opacity .45s,transform .45s,border-color .45s,background .45s}#mtp-harnessdev .hd-mod b{display:inline-block!important;width:22px!important;height:22px!important;line-height:22px!important;text-align:center!important;border-radius:6px!important;background:#1B2E5E!important;color:#8FB4FF!important;font-size:12px!important;margin-right:6px!important}#mtp-harnessdev .hd-mod.live{opacity:1;transform:none;border-color:#3B7BFF!important;background:#16316E!important;color:#EEF3FF!important}#mtp-harnessdev .hd-mod.live b{background:#3B7BFF!important;color:#fff!important}#mtp-harnessdev .hd-mod.weak{opacity:1;transform:none;border-color:#FFB020!important;color:#EEF3FF!important}#mtp-harnessdev .hd-mod.weak b{background:#FFB020!important;color:#0A1633!important}#mtp-harnessdev .hd-log{min-height:44px!important;margin-top:10px!important;padding:10px!important;background:#0A1633!important;border-radius:8px!important;font-size:13px!important;color:#C7D3F2!important;border:1px solid #23376B!important}#mtp-harnessdev .hd-score{font-size:28px!important;font-weight:800!important;color:#8FB4FF!important;line-height:1!important}#mtp-harnessdev .hd-rows{margin-top:8px!important}#mtp-harnessdev .hd-row{display:grid!important;grid-template-columns:118px 1fr 74px!important;gap:8px!important;align-items:center!important;margin:7px 0!important;font-size:13px!important}#mtp-harnessdev .hd-lab{color:#C7D3F2!important;font-weight:600!important}#mtp-harnessdev .hd-track{position:relative!important;height:16px!important;background:#12244F!important;border-radius:6px!important;overflow:visible!important}#mtp-harnessdev .hd-fill{position:absolute!important;left:0!important;top:0!important;height:100%!important;width:0;background:#3B7BFF!important;border-radius:6px!important;transition:width .8s cubic-bezier(.2,.8,.2,1)!important}#mtp-harnessdev .hd-fill.good{background:#2ED3A5!important}#mtp-harnessdev .hd-fill.bad{background:#FFB020!important}#mtp-harnessdev .hd-ref{position:absolute!important;top:-4px!important;width:2px!important;height:24px!important;background:#fff!important;opacity:.85!important}#mtp-harnessdev .hd-val{text-align:right!important;color:#EEF3FF!important;font-weight:700!important;font-variant-numeric:tabular-nums!important}#mtp-harnessdev .hd-note{font-size:12px!important;color:#9AAAD1!important;margin-top:8px!important}#mtp-harnessdev .hd-seg{display:flex!important;height:26px!important;border-radius:8px!important;overflow:hidden!important;margin:10px 0!important;background:#12244F!important}#mtp-harnessdev .hd-seg span{display:block!important;height:100%!important;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)!important;cursor:pointer!important}#mtp-harnessdev .hd-legend{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:4px 12px!important;font-size:12px!important;color:#C7D3F2!important}#mtp-harnessdev .hd-legend i{display:inline-block!important;width:10px!important;height:10px!important;border-radius:2px!important;margin-right:6px!important;vertical-align:middle!important}#mtp-harnessdev .hd-kpis{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin:12px 0!important}#mtp-harnessdev .hd-kpi{background:#12244F!important;border:1px solid #23376B!important;border-radius:10px!important;padding:10px!important;text-align:center!important}#mtp-harnessdev .hd-kpi b{display:block!important;font-size:22px!important;color:#8FB4FF!important;font-variant-numeric:tabular-nums!important}#mtp-harnessdev .hd-kpi span{font-size:11px!important;color:#9AAAD1!important}#mtp-harnessdev .hd-foot{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-top:14px!important;font-size:12px!important;color:#9AAAD1!important}#mtp-harnessdev .hd-foot b{color:#3B7BFF!important;font-weight:700!important}@media (max-width:640px){#mtp-harnessdev{padding:14px!important}#mtp-harnessdev .hd-stage{grid-template-columns:1fr!important}#mtp-harnessdev .hd-mods{grid-template-columns:repeat(2,1fr)!important}#mtp-harnessdev .hd-row{grid-template-columns:80px 1fr 62px!important;font-size:12px!important}#mtp-harnessdev .hd-kpis{grid-template-columns:1fr 1fr!important}#mtp-harnessdev .hd-tab{font-size:12px!important;padding:7px 6px!important}#mtp-harnessdev .hd-top{flex-direction:column!important;align-items:flex-start!important}}@media (prefers-reduced-motion:reduce){#mtp-harnessdev *{transition:none!important}}</style><div id="mtp-harnessdev"><div class="hd-top"><h2>HarnessDev explainer: can a model build and evolve its own harness?</h2><div class="hd-src">Source: <a href="https://arxiv.org/abs/2609.01437" target="_top">arXiv:2609.01437</a></div></div><div class="hd-tabs" role="tablist"><button class="hd-tab on" data-t="0" type="button">1. Seed to harness</button><button class="hd-tab" data-t="1" type="button">2. Creation scores</button><button class="hd-tab" data-t="2" type="button">3. Swap the executor</button><button class="hd-tab" data-t="3" type="button">4. Evolution</button></div><div class="hd-slide on" data-s="0"><h3>Every creator starts from the same weak seed</h3><p>The seed parses config, exposes passive tools, and writes logs. It has no loop, planner, verifier, or stopping rule, so it scores 0 on all 5 benchmarks. Press Build to watch a creator add the 6 control modules.</p><div class="hd-stage"><div class="hd-seed"><b>Weak seed</b>CLI, files, exec<br>no policy<br><span class="hd-score" id="hd-sc">0</span><br>score</div><div class="hd-mods" id="hd-mods"><div class="hd-mod" data-k="E"><b>E</b>Execution loop</div><div class="hd-mod" data-k="T"><b>T</b>Tool policy</div><div class="hd-mod" data-k="C"><b>C</b>Context</div><div class="hd-mod" data-k="S"><b>S</b>State and memory</div><div class="hd-mod" data-k="L"><b>L</b>Lifecycle</div><div class="hd-mod" data-k="V"><b>V</b>Verification</div></div></div><div style="display:flex!important;gap:8px!important;flex-wrap:wrap!important"><button class="hd-btn" id="hd-build" type="button">Build the harness</button><button class="hd-btn sec" id="hd-reset" type="button">Reset</button></div><div class="hd-log" id="hd-log">Waiting. The unmodified seed produces an empty or partial artifact.</div><p class="hd-note">In the paper, 18 of 18 code harnesses implement the loop, but state and memory is the weakest module: 11 define a State class, only 1 checkpoints, and no checkpoint event appears in 26,679 trajectories.</p></div><div class="hd-slide" data-s="1"><h3>Creation: self-built harness vs human-engineered reference</h3><p>Pick a creator. Bars show its Self-Eval avg@3 score; the white marker is the human-engineered reference for that benchmark (Table 3).</p><div class="hd-chips" id="hd-c1"></div><div class="hd-rows" id="hd-r1"></div><p class="hd-note">Starred references (SWE-Pro 80.0, Terminal-Bench 88.8, BrowseComp 92.2) are external results from OpenAI's GPT-5.6 report. MLE-bench uses medal rate; EQ-Bench3 uses a rubric score.</p></div><div class="hd-slide" data-s="2"><h3>Same harness, different executor</h3><p>Toggle between each harness run by its creator (Self-Eval) and run by Gemini 3.1 Pro (Unified-Eval). Green means the score rose under Gemini, amber means it fell (Tables 3 and 4).</p><div class="hd-chips" id="hd-c2"></div><div style="display:flex!important;gap:8px!important;margin:6px 0!important"><button class="hd-btn" id="hd-self" type="button">Self-Eval</button><button class="hd-btn sec" id="hd-uni" type="button">Fixed Gemini</button></div><div class="hd-rows" id="hd-r2"></div><p class="hd-note" id="hd-n2">Opus 4.8 falls from 69.3 to 33.0 on SWE-Pro under Gemini; one harness hard-coded a 120-step limit around its original executor.</p></div><div class="hd-slide" data-s="3"><h3>Evolution: 64 official harness switches, sorted by outcome</h3><p>Each segment is a group of adjacent version switches across the 9 lineages. Hover or tap a segment for the count.</p><div class="hd-seg" id="hd-seg"></div><div class="hd-legend" id="hd-leg"></div><div class="hd-log" id="hd-segtxt">27 of 64 switches report gains that stay inside the repeated-run noise band (about plus or minus 4.75 pair-score points).</div><div class="hd-kpis"><div class="hd-kpi"><b data-n="34">0</b><span>of 64 switches move the same way on feedback and held-out</span></div><div class="hd-kpi"><b data-n="2">0</b><span>of 9 declared finals are held-out optimal</span></div><div class="hd-kpi"><b data-n="3.11" data-d="2">0</b><span>mean held-out gain, 5 self-runtime lineages</span></div></div><p class="hd-note">Under a fixed Gemini executor only Opus 4.8 improves on held-out tasks; Qwen, DeepSeek, and GPT-5.5 regress (GPT-5.5 by 10.32 points).</p></div><div class="hd-foot"><span>Data: HarnessDev, ByteDance Seed et al., Sep 2026</span><b>Built by Marktechpost</b></div></div><script>(function(){var root=document.getElementById('mtp-harnessdev');var models=['Opus 4.8','GPT-5.5','Gemini 3.1 Pro','DeepSeek V4 Pro','Qwen 3.7 Max','Seed 2.0 Pro'];var bench=['SWE-Pro','Terminal-Bench 2.1','MLE-bench','EQ-Bench3','BrowseComp'];var ref=[80.0,88.8,24.0,83.7,92.2];var selfE={'Opus 4.8':[69.3,64.8,32.9,84.6,52.4],'GPT-5.5':[32.8,52.1,19.1,83.0,52.6],'Gemini 3.1 Pro':[43.6,68.8,32.4,74.8,35.2],'DeepSeek V4 Pro':[28.9,35.6,19.6,75.4,40.9],'Qwen 3.7 Max':[33.5,41.3,3.1,68.7,32.3],'Seed 2.0 Pro':[10.8,6.0,5.3,71.1,3.2]};var uniE={'Opus 4.8':[33.0,52.4,16.9,74.2,53.6],'GPT-5.5':[27.8,49.4,16.0,46.5,55.4],'Gemini 3.1 Pro':[43.6,68.8,32.4,74.8,35.2],'DeepSeek V4 Pro':[29.2,38.2,9.8,72.9,54.8],'Qwen 3.7 Max':[41.3,48.6,16.0,71.5,49.9],'Seed 2.0 Pro':[15.6,13.1,13.3,73.1,17.3]};var notes={'Opus 4.8':'Opus 4.8 falls from 69.3 to 33.0 on SWE-Pro under Gemini; one harness hard-coded a 120-step limit around its original executor.','GPT-5.5':'GPT-5.5 loses 36.5 points on EQ-Bench3 under Gemini; excluding its zero-valued first harness the Unified mean is 69.7.','Gemini 3.1 Pro':'Gemini 3.1 Pro is the fixed executor, so its Self-Eval and Unified-Eval scores are the same cells.','DeepSeek V4 Pro':'DeepSeek V4 Pro gains 13.9 on BrowseComp under Gemini. Its SWE-Pro and Terminal-Bench Unified cells each contain one collapsed replica.','Qwen 3.7 Max':'Qwen 3.7 Max gains 17.6 on BrowseComp and 12.9 on MLE-bench under Gemini, a sign its own executor was the bottleneck.','Seed 2.0 Pro':'Seed 2.0 Pro improves on every benchmark under Gemini, including 14.1 points on BrowseComp.'};function el(t,c,h){var e=document.createElement(t);if(c)e.className=c;if(h!=null)e.innerHTML=h;return e;}function fire(){var h=root.offsetHeight+40;try{parent.postMessage({type:'mtp-harnessdev-resize',height:h},'*');}catch(e){}}var tabs=root.querySelectorAll('.hd-tab'),slides=root.querySelectorAll('.hd-slide');for(var i=0;i<tabs.length;i++){tabs[i].addEventListener('click',function(){var t=this.getAttribute('data-t');for(var j=0;j<tabs.length;j++){tabs[j].classList.toggle('on',tabs[j]===this);slides[j].classList.toggle('on',slides[j].getAttribute('data-s')===t);}if(t==='1')draw1();if(t==='2')draw2();if(t==='3')draw3();setTimeout(fire,50);setTimeout(fire,900);});}var mods=root.querySelectorAll('.hd-mod'),log=document.getElementById('hd-log'),sc=document.getElementById('hd-sc'),timers=[];var steps=[['E','Execution loop added: the model can now act, observe, retry, and stop.'],['T','Tool policy added: read, write, search, and shell calls are constrained and dispatched.'],['C','Context management added: task, code, logs, and history enter the prompt with budget control.'],['S','State and memory: declared in most harnesses, but this is where mechanisms most often never run.'],['L','Lifecycle added: hooks, timeout handling, and failure recovery.'],['V','Verification added: tests, artifact checks, and a completion gate before finish.'],['done','Harness frozen. Under Self-Eval, Opus 4.8 reached 69.3 on SWE-Pro from this 0-scoring seed.']];function resetBuild(){for(var i=0;i<timers.length;i++)clearTimeout(timers[i]);timers=[];for(var i=0;i<mods.length;i++){mods[i].className='hd-mod';}sc.textContent='0';log.textContent='Waiting. The unmodified seed produces an empty or partial artifact.';}document.getElementById('hd-reset').addEventListener('click',resetBuild);document.getElementById('hd-build').addEventListener('click',function(){resetBuild();steps.forEach(function(s,i){timers.push(setTimeout(function(){if(s[0]!=='done'){for(var k=0;k<mods.length;k++){if(mods[k].getAttribute('data-k')===s[0])mods[k].classList.add(s[0]==='S'?'weak':'live');}}log.textContent=s[1];if(s[0]==='done'){var v=0,iv=setInterval(function(){v+=3.3;if(v>=69.3){v=69.3;clearInterval(iv);}sc.textContent=v.toFixed(1);},30);}},650*i+200));});});function rows(container,vals,opts){container.innerHTML='';for(var i=0;i<bench.length;i++){var r=el('div','hd-row');r.appendChild(el('div','hd-lab',bench[i]));var tr=el('div','hd-track');var f=el('div','hd-fill'+(opts&&opts.cls?' '+opts.cls[i]:''));tr.appendChild(f);if(opts&&opts.ref){var m=el('div','hd-ref');m.style.left=ref[i]+'%';m.title='Human reference '+ref[i];tr.appendChild(m);}r.appendChild(tr);r.appendChild(el('div','hd-val',vals[i].toFixed(1)));container.appendChild(r);(function(f,v){setTimeout(function(){f.style.width=v+'%';},30);})(f,vals[i]);}}function chips(container,onpick){container.innerHTML='';models.forEach(function(m,i){var b=el('button','hd-chip'+(i===0?' on':''),m);b.type='button';b.addEventListener('click',function(){var all=container.querySelectorAll('.hd-chip');for(var j=0;j<all.length;j++)all[j].classList.toggle('on',all[j]===b);onpick(m);});container.appendChild(b);});}var cur1=models[0],cur2=models[0],mode2='self',built1=false,built2=false,built3=false;function draw1(){if(!built1){chips(document.getElementById('hd-c1'),function(m){cur1=m;draw1r();});built1=true;}draw1r();}function draw1r(){rows(document.getElementById('hd-r1'),selfE[cur1],{ref:true});}function draw2(){if(!built2){chips(document.getElementById('hd-c2'),function(m){cur2=m;draw2r();});document.getElementById('hd-self').addEventListener('click',function(){mode2='self';setMode();draw2r();});document.getElementById('hd-uni').addEventListener('click',function(){mode2='uni';setMode();draw2r();});built2=true;}setMode();draw2r();}function setMode(){document.getElementById('hd-self').className='hd-btn'+(mode2==='self'?'':' sec');document.getElementById('hd-uni').className='hd-btn'+(mode2==='uni'?'':' sec');}function draw2r(){var s=selfE[cur2],u=uniE[cur2],v=mode2==='self'?s:u,cls=[];for(var i=0;i<5;i++){cls.push(mode2==='self'?'':(u[i]>s[i]+0.05?'good':(u[i]<s[i]-0.05?'bad':'')));}var c=document.getElementById('hd-r2');if(c.children.length===5){var fills=c.querySelectorAll('.hd-fill'),vals=c.querySelectorAll('.hd-val');for(var i=0;i<5;i++){fills[i].className='hd-fill'+(cls[i]?' '+cls[i]:'');fills[i].style.width=v[i]+'%';vals[i].textContent=v[i].toFixed(1)+(mode2==='uni'?' ('+(u[i]-s[i]>=0?'+':'')+(u[i]-s[i]).toFixed(1)+')':'');}}else{rows(c,v,{cls:cls});}document.getElementById('hd-n2').textContent=notes[cur2];}var segs=[['Regress on both benchmarks',8,'#FFB020'],['Regress on 1 benchmark',16,'#F0C766'],['Cross-benchmark trade-off',3,'#8FB4FF'],['No measurable change',7,'#4A66A8'],['Gain inside noise band',27,'#3B7BFF'],['Clear gain beyond noise',2,'#2ED3A5'],['No executable code change',1,'#C7D3F2']];function draw3(){if(built3)return;built3=true;var sg=document.getElementById('hd-seg'),lg=document.getElementById('hd-leg'),tx=document.getElementById('hd-segtxt');segs.forEach(function(s){var sp=el('span');sp.style.background=s[2];sp.title=s[0]+': '+s[1];var show=function(){tx.textContent=s[1]+' of 64 switches: '+s[0].toLowerCase()+'.';};sp.addEventListener('mouseenter',show);sp.addEventListener('click',show);sg.appendChild(sp);setTimeout(function(){sp.style.width=(s[1]/64*100)+'%';},60);lg.appendChild(el('div','','<i style="background:'+s[2]+'"></i>'+s[0]+' ('+s[1]+')'));});var ks=root.querySelectorAll('.hd-kpi b');for(var i=0;i<ks.length;i++){(function(b){var target=parseFloat(b.getAttribute('data-n')),d=parseInt(b.getAttribute('data-d')||'0'),v=0,st=target/28;var iv=setInterval(function(){v+=st;if(v>=target){v=target;clearInterval(iv);}b.textContent=(d?'+'+v.toFixed(d):Math.round(v));},35);})(ks[i]);}}window.addEventListener('resize',fire);window.addEventListener('load',function(){fire();setTimeout(fire,400);});fire();})();</script></body></html>">

Key Takeaways

  • HarnessDev scores the harness a model builds, not the answer it returns.
  • Self-built harnesses match or beat references on writing and ML experimentation but trail badly on code and search.
  • Harness quality is executor-specific; Opus 4.8 drops from 69.3 to 33.0 on SWE-Pro under Gemini.
  • Evolution gains are small, noisy, and only 34 of 64 changes point the same way on held-out tasks.
  • Much generated state and memory code never executes.


Check out the Paper and Project Page. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.

Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us

The post Can LLMs Engineer Their Own Agent Harness? ByteDance Seed’s HarnessDev Says Only 34 of 64 Changes Generalize appeared first on MarkTechPost.

论文·研究评测·基准智能体编码
Can LLMs Engineer Their Own Agent Harness? ByteDance Seed&#8217;s HarnessDev Says Only 34 of 64 Changes Generalize · LinkLoom