Creator Models
6Opus 4.8, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Qwen 3.7 Max, Seed 2.0 Pro.
HarnessDev: Can LLMs Create and Evolve Their Own Agent Harness?
Agent의 성능은 model weights만으로 결정되지 않는다. 같은 모델이라도 어떤 도구를 주고, context를 어떻게 압축하며, 실패를 언제 복구하고, 무엇을 검증한 뒤 멈추는지에 따라 완전히 다른 시스템이 된다. HarnessDev는 이 외부 실행체계를 고정된 실험 조건이 아니라 LLM이 직접 개발해야 할 연구 대상으로 바꾼다.
논문의 질문은 두 단계이다. Creation에서는 거의 아무 정책도 없는 weak seed에서 runnable harness를 만들어야 한다. Evolution에서는 자신이 만든 harness를 feedback에 맞춰 계속 수정하되, 보이던 점수만 올리는 것이 아니라 held-out task와 다른 executor에서도 성능이 유지되는지 확인해야 한다. 결과는 절반쯤 긍정적이고 절반쯤 경고적이다. 현재 frontier LLM은 완전한 harness를 만들 수 있지만 domain별 격차가 크고, feedback-driven evolution은 개선을 만들면서도 흔들리고 과적합하며 executor와 강하게 공진한다.
이 글은 첨부된 41쪽 논문 전체를 1차 출처로 사용하며 본문, Figure 1–10, Table 1–9, Appendix A–I, 두 대표 system prompt, GPT-5.5/Opus Creation·Evolution case study까지 검토했다. Source Fact, Analysis, Inference를 구분하며, 외부 benchmark reference는 논문이 경고하듯 공통 executor로 재실행한 paired control이 아니라는 점을 그대로 유지한다.
Opus 4.8, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Qwen 3.7 Max, Seed 2.0 Pro.
4 domains · 5 benchmarks의 unique downstream instances.
9 lineages에서 freeze된 official versions, 64 adjacent switches.
feedback score와 held-out score가 같은 방향으로 움직인 comparable switches의 비율.
HarnessDev의 출발점은 agent benchmark의 단위가 너무 늦게 시작된다는 문제의식이다. 실제 시스템에서 어려운 일은 task를 푸는 순간보다, 그 task를 반복해서 풀 수 있는 실행 기반을 만드는 일일 수 있다.
논문은 GPT-5가 Terminal-Bench 2.1에서 Terminus 2 harness를 사용할 때 35.2%, Codex CLI 안에서는 49.6%를 해결한다는 사례로 시작한다. 모델 weights는 같지만 execution loop, tool protocol, context, recovery, verification이 달라지면 14.4 percentage-point 차이가 생긴다. 이 예시는 harness가 단순 glue code가 아니라 모델의 잠재 능력을 행동으로 변환하는 실행 아키텍처임을 보여준다.
대부분의 benchmark는 task, reward/judge, scaffold가 이미 준비된 뒤에 시작한다. 그러나 실제 deployment에서는 informal requirement를 success criterion으로 바꾸고, feedback signal을 만들어 내고, tools/context/state/lifecycle/verification을 포함한 실행체계를 구축하는 일이 먼저 필요하다. 논문은 이 현실의 대표 역할로 Forward-Deployed Engineer(FDE)를 든다.
FDE의 성공 기준은 demo가 아니라 시스템이 고객 환경에서 실제로 쓰이고, 계속 작동하며, 요구사항 변화에 따라 개선되는가이다. HarnessDev는 이 중 세 번째 층, 즉 실행체계를 만들고 유지하는 능력을 분리해 평가한다.
SWE-bench, GAIA, WebArena, τ-bench, AgentBench 같은 대표 benchmark는 선택된 harness 아래에서 task success를 측정한다. 최근 연구는 harness representation, automated agent design, self-improving agents로 이동했지만, 하나의 모델이 runnable persistent harness를 처음 만들고 이후 계속 개선하는 전체 lifecycle은 충분히 측정되지 않았다.
특히 자기 harness를 수정하는 것은 일반 코드 편집과 다르다. 수정 대상이 다음 task에서 자신이 관찰하고 계획하고 복구하는 방식 자체이기 때문이다. 따라서 harness evolution은 failure trace로 자기 행동의 한계를 읽고, structural bottleneck을 진단하고, one-off patch가 아니라 재사용 가능한 capability gain으로 바꾸는 메타 수준의 engineering 문제이다.
HarnessDev는 evaluation artifact를 answer에서 frozen runnable harness로 바꾼다. Creator와 Executor를 분리하고 Creation과 Evolution을 같은 artifact lifecycle 위에 놓는다.
\(L_C\)는 creator LLM, \(D\)는 development environment, \(H\)는 생성된 harness, \(L_E\)는 downstream executor LLM, \(x\)는 task, \(J\)는 evaluator이다. 핵심은 \(H\)가 완성된 뒤 freeze된다는 점이다. Creator가 개발 중 보았던 환경과 실제 downstream execution을 분리함으로써 harness 자체의 재사용 가능성을 측정한다.
약하지만 runnable한 seed에서 시작해 specification과 1–3 development cases만 보고 unseen task family에 generalize하는 harness를 만든다.
자신이 만든 Creation harness \(H_0\)에서 시작해 execution feedback을 읽고 수정하면서 이미 작동하던 behavior를 보존해야 한다.
loop, planning, scheduling, stop condition.
tool interface, selection, I/O constraint, error handling.
task, code, log, history, constraint를 context로 구성하고 압축.
goal, hypothesis, progress, attempt, failure, artifact state.
pre/post hooks, timeout, failure recovery, finalization.
test, check, artifact validation, trajectory recording.
논문은 이 여섯 글자를 파일 구조로 강제하지 않는다. 중요한 것은 책임이 선언되어 있는가가 아니라 실제 main execution path에 참여하는가이다. 이후 architecture analysis에서 dead code와 unreachable mechanism을 따로 조사하는 이유도 여기에 있다.
Creation의 시작점 \(H_{seed}\)는 stable CLI, model configuration parsing, result/trajectory/log writer, low-level passive primitives만 제공한다. Paths, files, search, process, LLM gateway, artifact I/O는 사용할 수 있지만 orchestrate되지 않는다.
unmodified seed는 task를 시도하지 않고 partial artifact를 남기며 다섯 downstream benchmark에서 모두 0점을 받는다. 따라서 nonzero Creation score는 creator가 추가한 execution logic에서 나와야 한다.
| Setting | Start | Creator-visible signal | Final artifact |
|---|---|---|---|
| Creation | Weak seed \(H_{seed}\) | specification + 1–3 public development cases | Frozen final harness \(H\) |
| Evolution | Creator's RQ1 \(H_0\) | fixed 100-task SWE-Pro + all 89 Terminal-Bench results | Frozen paired candidates + creator-declared final |
hard-coded task ID, benchmark answer, expected patch, private scorer, official hidden feedback 접근은 금지된다. 점수 path는 harness의 self-report와 분리되어 SWE-Pro는 실제 repository diff, Terminal-Bench는 final environment state에서 credit을 계산한다. 모든 run의 source, trajectory, result, metric artifact를 audit했고, 논문은 금지된 경로로 score를 얻은 사례가 없었다고 보고한다.
Harness가 result.json에 success라고 적었다고 점수를 받지 않는다. 이 design은 self-deception과 benchmark gaming을 줄이지만, 일반적인 agent security 문제를 해결하는 sandbox는 아니다. 논문도 실행 container는 reproducibility용이며 containment를 보장하지 않는다고 경고한다.
성능만 보지 않고 executor token cost, portability, hidden generalization, artifact structure를 함께 측정한다.
| Domain | Benchmark | Tasks | Primary metric |
|---|---|---|---|
| Code | SWE-bench Pro public split | 731 | Task success |
| Code | Terminal-Bench 2.1 | 89 | Task success |
| Data / ML | MLE-bench | 75 | Medal score |
| Writing | EQ-Bench3 | 46 | Rubric score |
| Research / Search | BrowseComp | 1,266 | Accuracy |
Evolution은 Code에 집중한다. SWE-Pro public split에서 100개를 visible feedback set으로, 그와 겹치지 않는 630개를 post-freeze held-out로 사용하며, Terminal-Bench 89개 전체는 feedback benchmark이다.
Creator는 Opus 4.8, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Qwen 3.7 Max, Seed 2.0 Pro이다. GPT-5.5는 Codex 0.144.3을 development environment로 쓰고, 나머지는 Claude Code 2.1.177을 사용한다. provider default에 따라 sampling 설정은 일부 다르며, 모두 high reasoning effort와 streaming을 사용한다.
RQ1은 creator–benchmark pair마다 독립적으로 3개 harness를 만들고 avg@3를 보고한다. 독립 생성물 사이의 variance가 크기 때문에 단일 harness를 creator의 대표값으로 보지 않는다.
\(L_E=L_C\). Creator가 자신이 만든 harness 안에서 hidden task를 수행한다. model–harness co-design의 실제 배포 관점을 측정한다.
모든 생성 harness를 동일한 Gemini 3.1 Pro executor로 실행한다. executor 능력을 가능한 한 고정해 harness portability를 비교한다.
Unified-Eval도 완전한 causal isolation은 아니다. harness–model interaction 자체가 복잡하기 때문이다. 그러나 같은 harness가 executor를 바꿨을 때 어떻게 무너지는지 보여주는 강력한 probe가 된다.
| Benchmark | Human-engineered reference | Paired executor | Reference score |
|---|---|---|---|
| SWE-Pro | Public coding-agent setup | Claude Fable 5 | 80.0* |
| Terminal-Bench 2.1 | OpenAI agent setup | GPT-5.6 Sol | 88.8* |
| MLE-bench | MLEvolve | Gemini 3.1 | 24.0 |
| EQ-Bench3 | Kimi Writer | Opus 4.8 | 83.7 |
| BrowseComp | OpenAI browsing stack | GPT-5.6 Sol | 92.2* |
* SWE-Pro, Terminal-Bench, BrowseComp는 논문 저자들이 local rerun한 paired control이 아니라 공개 system-level result이다. 따라서 100%를 넘는다고 “human ability를 초월했다”는 뜻이 아니다.
MLE-bench execution은 task당 NVIDIA A800-SXM4-80GB, 14 vCPU, 227 GiB RAM을 사용하며 36,000초 wall-clock limit(34,200초 agent + 1,800초 grader reserve)과 500-step cap을 둔다. RQ2 code benchmark는 500-step cap, 7,200초 limit을 사용한다.
각 frozen harness는 native task score와 executor-model token consumption을 함께 보고한다. Creator가 harness를 개발하는 데 사용한 token은 execution cost에서 제외한다. 논문은 cost-adjusted composite score로 합치지 않고 capability와 cost를 두 축으로 직접 보여준다.
Writing과 ML experimentation에서는 selected human reference에 근접하거나 넘어가지만, Search/Research와 Code에서는 mature harness와 큰 격차가 남는다.
| Creator | SWE-Pro | Terminal | MLE medal | EQ-Bench3 | BrowseComp | Avg. |
|---|---|---|---|---|---|---|
| Opus 4.8 | 69.3 | 64.8 | 32.9 | 84.6 | 52.4 | 67.8 |
| GPT-5.5 | 32.8 | 52.1 | 19.1 | 83.0 | 52.6 | 55.1 |
| Gemini 3.1 Pro | 43.6 | 68.8 | 32.4 | 74.8 | 35.2 | 55.6 |
| DeepSeek V4 Pro | 28.9 | 35.6 | 19.6 | 75.4 | 40.9 | 45.2 |
| Qwen 3.7 Max | 33.5 | 41.3 | 3.1 | 68.7 | 32.3 | 44.0 |
| Seed 2.0 Pro | 10.8 | 6.0 | 5.3 | 71.1 | 3.2 | 22.8 |
| Selected human reference | 80.0* | 88.8* | 24.0 | 83.7 | 92.2* | 86.2 |
Writing에서는 Opus 84.6이 selected reference 83.7을 소폭 넘고 GPT-5.5도 83.0으로 근접한다. MLE-bench에서는 Opus 32.9, Gemini 32.4가 reference 24.0보다 높다. 반면 BrowseComp 최고값은 GPT-5.5의 52.6으로 92.2 reference와 큰 차이가 있고, Code도 mature system보다 뒤진다.
Writing/MLE에서 reference를 넘었다는 결과는 “LLM이 인간 엔지니어보다 우월하다”는 결론이 아니다. reference row는 서로 다른 harness–executor pair의 공개 system result이며 benchmark authors가 absolute ceiling이라고 정의하지 않는다.
저자들은 Search/Research가 long-horizon information seeking을 요구해 가장 큰 격차가 생긴다고 분석한다. Code 역시 repository inspection, editing, verification을 다수 turn에 걸쳐 조율해야 한다. 반면 short-form writing은 context와 output contract가 상대적으로 단순하고, MLE experimentation에서는 generated harness가 선택된 reference를 넘어서는 경우도 있다.
Data 실패의 77.8%가 harness defect로 attribution되었다는 결과는 executor model capability만 개선해도 해결되지 않는 병목이 존재함을 보여준다.
executor를 Gemini로 고정하면 순위가 크게 바뀐다. Qwen과 DeepSeek의 일부 Data/Search harness는 더 강한 executor 덕분에 좋아지지만, Opus는 반대 현상을 보인다. Opus SWE-Pro는 Self-Eval 69.3에서 fixed Gemini 33.0으로 떨어지고, Writing도 84.6에서 74.2로 감소한다.
Gemini executor로 바꾸었을 때 개선.
원 executor가 병목이었음을 시사.
69.3 → 33.0. harness가 creator executor와 강하게 co-adapt.
Opus Search harness의 duplicate-query rate는 executor 변경 뒤 10.1%에서 88.2%로 급증한다. deduplication, review, termination rule이 원래 runtime의 행동 패턴에 맞춰져 있었기 때문이다. runnable portability와 capability portability는 다른 문제이다.
MLE-bench execution token은 creator 사이에서 약 19배 차이가 난다. Appendix Figure 9의 대표 비교에서 GPT-5.5는 medal 19.1을 29.3M tokens로 얻고, DeepSeek V4는 거의 같은 19.6을 208.4M tokens로 얻는다. 비슷한 품질에 거의 한 order의 cost 차이가 발생한다.
Harness quality는 단일 score가 아니라 capability × efficiency × portability의 다차원 문제로 보는 것이 타당하다. 고비용 반복은 모델의 능력을 끌어낼 수도 있지만, poorly designed loop와 redundant search를 확대할 수도 있다.
18개 Code artifact는 총 17,111 net lines를 추가한다. 그러나 edit size는 성능을 예측하지 못한다. Gemini는 가장 적은 1,006 lines를 추가하고도 Terminal-Bench 68.8로 가장 높다. 모든 18개 Code harness는 explicit execution loop를 구현했으며 tools와 lifecycle은 각각 13/18, verification은 15/18에서 완전한 evidence가 확인된다.
State class를 선언한 artifact.
실제 state-saving interface를 노출.
기록된 task trajectory에서 periodic checkpoint event가 관찰되지 않음.
108개 Code component instance 중 72는 실제 run에서 trigger되고, 18은 partial evidence, 18은 전혀 관찰되지 않는다. 관찰되지 않은 18개는 모두 state/memory에 해당한다. Writing에서는 587 features 중 124가 confirmed dead code, Data에서는 36 mechanisms가 dead path에 있다.
self-test count의 downstream score와 Spearman correlation은 0.13–0.26으로 유의하지 않지만, revision call은 0.57 (p ≤ .0005)에 이른다. 저자들의 해석은 “테스트를 많이 하는 것”보다 실패를 읽고 targeted change를 한 뒤 다시 검증하는 loop가 중요하다는 것이다.
GPT-5.5는 14번 seed를 읽은 뒤 20 editing operations를 수행하고, 109 feedback artifacts를 읽어 최종 +1251/-4 line harness를 만든다. 핵심은 단일 agent.py에 JSON-action loop, parsing, dispatch, state, verification, finalization을 집중한 것이다. local smoke에서 artifact accounting defect를 고치고, dev run에서 multi-object JSON parsing, /bin/sh와 Bash mismatch, Codex-style patch envelope, duplicate actions를 순차적으로 발견한다.
공식 개발 결과는 contract smoke=1, SWE=0, Terminal=1이다. 중요한 점은 active container가 launch-time snapshot을 사용하므로 live edit가 해당 score를 소급해 설명하지 않도록 source에서 causal boundary를 명확히 기록한다.
Opus는 seed를 20번 읽은 뒤 agent.py, tools.py, schemas.py, taskspec.py, prompts.py, runner.py 등 10개 모듈을 비교적 upfront하게 재설계한다. max_steps=120, 6,600초 time budget, 150,000-token soft context limit과 honest termination을 초기에 넣는다.
local terminal/repository test는 실제 edit와 patch generation을 수행했지만, 공식 결과는 contract smoke=1, SWE=0, Terminal=0이다. 두 zero score 뒤에도 harness-source core를 feedback-driven하게 바꾸지 않았다는 점에서, broad execution coverage와 benchmark-guided evolution이 다름을 보여준다.
Evolution은 local program search처럼 보인다. 한 버전의 개선이 다음 버전에서 사라지고, visible feedback gain이 held-out gain으로 전이되지 않으며, executor가 바뀌면 같은 수정의 의미도 달라진다.
Evolution은 creator 자신의 frozen RQ1 Code harness \(H_0\)에서 시작한다. feedback pair는 SWE-Pro 100 tasks와 Terminal-Bench 89 tasks의 동일 commit 평가이며, 둘 다 완료되어야 official version이 된다. post-\(H_0\) full-evaluation pair budget은 10회이다.
두 charged pair 사이에는 동일한 first-five-task subset을 사용하는 probe를 최대 2회 쓸 수 있다. 한 task가 20 points를 움직이므로 aggregate probe score는 매우 noisy하며, 공식 score는 full evaluation에서만 나온다. local execution은 unlimited/free signal이다.
모든 trajectory가 끝난 뒤 official version 각각을 630개 SWE-Pro held-out tasks에 다시 실행한다. 이 score는 creator에게 절대 보이지 않아 edit, stopping, final selection에 사용할 수 없다.
| Setting | Creator | Feedback pair H0→Hdec | Held-out-630 H0→Hdec | Held-out gain |
|---|---|---|---|---|
| Self | Gemini 3.1 Pro | 59.9 → 68.7 | 48.89 → 51.59 | +2.70 |
| Self | Opus 4.8 | 71.1 → 74.1 | 63.02 → 67.46 | +4.44 |
| Self | Qwen 3.7 Max | 41.8 → 55.7 | 42.22 → 43.65 | +1.43 |
| Self | DeepSeek V4 Pro | 47.2 → 60.6 | 47.30 → 50.48 | +3.17 |
| Self | GPT-5.5 | 59.2 → 65.1 | 48.25 → 52.06 | +3.81 |
| Fixed Gemini | Opus 4.8 | 58.8 → 68.6 | 48.10 → 50.79 | +2.70 |
| Fixed Gemini | Qwen 3.7 Max | 62.1 → 63.2 | 49.52 → 48.41 | −1.11 |
| Fixed Gemini | DeepSeek V4 Pro | 47.3 → 53.8 | 43.02 → 40.63 | −2.38 |
| Fixed Gemini | GPT-5.5 | 56.6 → 59.1 | 42.22 → 31.90 | −10.32 |
Self-runtime에서는 다섯 creator 모두 declared version이 held-out \(H_0\)보다 좋아지며 평균 +3.11 points이다. 그러나 fixed Gemini에서는 Opus만 개선하고 Qwen, DeepSeek, GPT-5.5는 regress한다. evolution gain은 feedback set과 runtime model에 specialization될 수 있다.
두 benchmark 모두 하락.
한 benchmark에서만 regression.
gain이 repeated-run noise band 안.
noise band를 넘어선 positive evidence.
그 밖에 cross-benchmark trade-off 3회, no measurable change 7회, executable code change가 없는 switch 1회가 있다. 같은 commit도 pair score가 약 ±4.75 points 변할 수 있어 작은 delta만 보고 code effect를 attribution하기 어렵다.
feedback와 held-out score가 같은 방향으로 움직인 것은 comparable 64 switches 중 34회, 53.1%이다. creator가 선언한 9개 final version 중 held-out optimum과 일치한 것은 2개뿐이다. visible score 최적화는 local search signal은 되지만 final model selection signal로는 불안정하다.
declared version의 median change는 8 files, +476/-38 lines이다. 64 official switches 중 58은 execution/control flow, 37은 tools, 17은 lifecycle recovery, 16은 context를 바꾸고 state는 4회뿐이다. standalone verifier를 수정한 switch는 없다.
새 code가 실행되는 것도 보장되지 않는다. 169 new functions/classes 중 113은 entry point에서 reachable, 31은 dead code를 통해서만 reachable, 25는 caller가 없다. 즉 self-improvement가 code accumulation으로 보일 때 behavioral reachability를 따로 측정해야 한다.
9 lineages 중 8개는 results를 읽고 edit하고 re-evaluate하고 version을 선택하는 full loop를 적어도 한 번 수행한다. 그러나 dedicated trajectory interface 호출은 전체에서 두 번뿐이며, explicitly inspected cases는 lineage에 따라 189 feedback tasks의 0.5%–40.2%에 그친다. 많은 creator가 custom script와 small probe에 의존한다.
probe가 full distribution을 대표하지 않는 사례도 선명하다. 한 GPT-5.5 candidate는 Terminal first-five probe를 모두 통과하지만 full set에서는 0.584 score에 그친다. evolution의 병목은 edit 능력보다 diagnosis와 evidence selection일 수 있다.
GPT-5.5의 H0는 SWE 51.0 / Terminal 67.416이다. 첫 architecture-first T1은 둘 다 regress한다. 이후 “약한 self-written check 뒤 premature success”를 구체적 failure로 보고 final-review gate를 추가한 T2가 SWE 56.0 / Terminal 74.157로 올라가며 최종 선택된다. 이후 모든 Terminal success에 review를 확대하거나 verification-gap enforcement, shell-created artifact tracking, output head/tail, large-file offsets 등을 시도하지만 benchmark trade-off가 반복된다.
최종적으로 creator는 latest T7 대신 T2를 고르고 pair budget 3회를 남긴 채 종료한다. 이는 더 최신 버전이 더 좋은 버전이 아니라는 것, 그리고 rollback/selection이 evolution의 핵심 연산임을 보여준다.
Opus H0는 SWE 68.0 / Terminal 74.157이다. 189 cases를 먼저 분류하고 hidden-grader build/compile/import failure를 별도 bucket으로 잡은 뒤 pre-finish verification gate와 always-finalize를 넣어 T1에서 73.0 / 75.281로 개선한다. 다음에는 실제 git diff를 모델에게 다시 보여 주는 mandatory diff-grounded self-review를 넣고, T3에서는 non-git/Terminal artifact까지 reflection 범위를 확장한다.
process-group termination 실험은 concurrent session에서 반대 edit가 발생해 code change가 결국 revert된다. Creator는 noise를 ±3–4 tasks 정도로 추정하고 10 pairs 중 3개만 쓴 뒤 T3(74.0 / 74.157)를 final로 선택한다. T1 pair score가 약 0.06pp 높지만 total passed tasks가 같아 mechanism-complete tie-break를 택한다.
Appendix E.2의 RQ2 prompt는 evaluation을 asynchronous full-pair submission으로 정의하고, per-benchmark 2 full lanes + 2 probe lanes, 10-pair fixed budget, round당 2 probes, immutable commit snapshot, append-only feedback stream, declare-final 규칙을 명시한다. controller는 best-version selection이나 rollback을 대신하지 않는다.
즉 HarnessDev의 Evolution은 agent에게 software engineering뿐 아니라 experiment management와 noisy evidence under budget를 요구한다.
Creation capability와 robust evolution capability를 분리해서 읽으면 논문의 결론이 과장 없이 선명해진다.
모든 creator는 zero-scoring seed를 runnable agent harness로 바꿀 수 있다. 일부 domain에서는 selected mature reference에 근접하거나 넘어선다.
feedback에서 concrete failure를 찾아 targeted structural edit를 할 때 held-out gain도 생긴다.
trajectory는 비단조적이고 작은 gain은 noise와 구분하기 어렵다.
다른 executor로 바꾸면 improvement의 부호 자체가 바뀔 수 있다.
현재 LLM은 harness를 만들 수 있고, 자신이 만든 harness를 부분적으로 고칠 수 있다. 그러나 feedback, held-out task, executor가 달라져도 개선이 누적되는 robust self-evolution은 아직 관찰되지 않는다.
Evidence-grounded synthesis논문의 결론은 흥미로운 관점을 제시한다. intelligence가 축적되는 장소를 model parameters 하나로 제한하지 않는다. harness는 failure와 feedback을 통해 바뀌고, source code와 git history에 남으며, inspectable하고 testable하고 reusable하다.
그렇다고 논문이 heuristic learning이 parameter training을 대체한다고 주장하지는 않는다. parameter learning과 model-external harness learning을 서로 다른 축으로 측정해야 한다는 것이 더 정확한 해석이다.
Self-Eval과 Unified-Eval 차이는 harness가 runtime model의 말투, tool-call habits, step distribution, stopping behavior와 co-adapt할 수 있음을 보여준다. Opus harness의 120-step limit이나 Search dedupe rule처럼, 특정 model에서는 잘 맞지만 다른 model에서는 성능을 붕괴시키는 parameter가 생긴다.
향후 agent system benchmark는 “최고 model + 최고 harness”만 보고하기보다 creator × harness × executor compatibility matrix를 측정할 필요가 있다. portability는 파일이 실행되는가가 아니라 behavioral protocol이 다른 model에서도 유지되는가의 문제이다.
| Work family | Representative work | Primary focus | HarnessDev difference |
|---|---|---|---|
| Fixed-harness agent benchmark | SWE-bench, GAIA, WebArena, τ-bench, AgentBench | selected harness 안에서 downstream task success | harness 자체를 submitted artifact로 평가 |
| Harness effect | Harness-Bench | harness choice가 model performance에 미치는 영향 | creator가 harness를 직접 개발하고 유지 |
| Autonomous construction | Meta-Agent Challenge | meta-agent가 held-out test용 agent artifact를 프로그래밍 | Creation + continued Evolution + executor separation + cost |
| Harness optimization | HarnessOpt-Bench | provided seed를 graded feedback budget 아래 최적화 | from-scratch Creation과 동일 artifact의 Evolution 연결 |
| Evolution benchmark | Evo-Bench | shared seed, fixed runtime, final revision의 disjoint suite | self/fixed runtime 모두 보고, 모든 frozen version held-out 평가 |
| Executable optimization methods | VeRO, Meta-Harness, Self-Harness, HarnessFix, HarnessCompass, Harness-R1 | versioned search, repair, provenance, regression, trained harness engineer | 특정 method 제안보다 general-purpose frontier model의 developer role 자체를 평가 |
HarnessDev는 benchmark 자체도 아직 1세대이다. uncertainty, executor diversity, multi-domain held-out evolution, self-hosted development environment가 다음 경계로 남는다.
| Boundary | Source limitation | Interpretation risk |
|---|---|---|
| Domain coverage | 4 categories가 많은 deployment를 덮지만 전부는 아님 | 모든 agent harness domain에 일반화할 수 없음 |
| Human baselines | uneven하고 optimal 보장 없음, 서로 다른 executor와 paired | reference 대비 100%를 human ceiling으로 읽으면 안 됨 |
| Unified-Eval | fixed executor로 차이를 줄이지만 interaction을 완전히 제거하지 못함 | harness 품질의 순수 causal effect라고 단정하기 어려움 |
| Behavioral analysis | descriptive, incomplete benchmark coverage | 특정 mechanism의 causal benefit으로 해석하면 과도함 |
| Evolution replication | creator–runtime cell당 한 trajectory, 한 unfinished main-runtime cell | population-level uncertainty estimate를 제공하지 못함 |
| Held-out evolution | post-freeze held-out은 SWE-Pro만 사용 | Terminal/Search/Data 등으로 general evolution이 입증되지 않음 |
| Development environment | \(D\)는 두 stage 모두 고정 | evolved harness가 다음 세대의 development environment가 될 수 있는지 미검증 |
| Learning claim | model-external harness learning | parameter training을 대체하는 self-learning으로 확대하면 안 됨 |
benchmark는 public suite와 open-source harness를 사용하고 human-generated content를 새로 수집하지 않는다. prohibited behavior와 post-hoc audit를 두었고 이 연구에서 violation은 관찰되지 않았다.
그러나 automated harness construction은 insecure tool use를 증폭할 수 있다. 논문의 container boundary는 reproducibility를 위한 것이지 공격 방어용 containment가 아니다. 생성된 harness를 재사용할 때는 논문보다 더 강한 isolation을 적용해야 한다는 것이 authors의 명시적 권고이다.
evolved harness가 다음 evolution cycle의 development environment \(D\) 역할까지 맡을 수 있는가.
creator–runtime cell당 여러 independent evolution trajectory를 돌려 improvement distribution과 uncertainty를 추정한다.
Code 외 Search, Data, Writing에서도 feedback/held-out split을 만들어 transfer와 regression을 측정한다.
동일 evaluation budget에서 단순 random/local search보다 LLM diagnosis가 실제로 더 효율적인지 비교한다.
harness prompt, budget, tool protocol, stopping rule을 executor-invariant하게 만들거나 compatibility를 명시적으로 모델링한다.
추가된 component가 main path에 실제로 도달하는지 static/dynamic evidence를 optimization signal에 포함한다.
noisy visible score 대신 failure class, paired regression, held-out proxy, uncertainty를 함께 사용해 final version을 선택한다.
success뿐 아니라 executor token, wall-clock, recovery cost를 Pareto objective로 다룬다.
이 연구를 AGI 관점으로 확대할 때 가장 흥미로운 지점은 self-modification 그 자체가 아니다. 자신의 실패를 관찰하고, 실행 substrate를 바꾸고, 그 변화가 unseen environment에서도 유효한지 검증하는 능력이 점차 독립적인 평가 대상이 된다는 점이다. 다만 HarnessDev는 software harness의 model-external learning을 측정할 뿐, 일반적 recursive self-improvement를 입증하지 않는다.
task answer가 아니라 persistent runnable infrastructure를 평가한다.
Creator, development environment, frozen harness, Executor, evaluator를 분리해야 harness 품질을 해석할 수 있다.
현재 LLM은 weak seed에서 완전한 loop/tool/context/lifecycle/verification 체계를 구축할 수 있다.
visible gain은 held-out에서 줄고 version trajectory는 비단조적이며 small gain은 noise와 뒤섞인다.
다른 executor에서 같은 harness가 유지되는지 자체가 중요한 system-quality dimension이다.
미래 self-developing agent의 핵심은 코드를 더 많이 쓰는 것이 아니라 failure diagnosis, regression control, version selection을 더 신뢰할 수 있게 만드는 것이다.
HarnessDev가 보여주는 다음 단계는 “agent가 task를 푸는가”에서 “agent가 자신이 미래 task를 푸는 방식을 engineering할 수 있는가”로 평가 단위를 옮기는 것이다.
Final synthesis · not a claim of general recursive self-improvementCode: Claude Code, OpenCode, OpenHands, SWE-agent, mini-SWE-agent. Notebook/Data: DataAgent, DB-GPT. Writing: AutoResearchClaw, webnovel-writer. Research/Retrieval: Alibaba-NLP/DeepResearch, dzhng/deep-research, modelscope/ms-agent, gpt-researcher. 각 system은 category scope, human counterpart, update history, development environment 중 일부 역할만 맡는다.
Table 8은 creator별 development environment, temperature/top-p/top-k/max output을 고정한다. Table 9은 benchmark별 human-engineered harness와 paired executor를 기록한다. Figure 9은 score와 execution token을 직접 비교하고, Figure 10은 Evolution의 모든 frozen version에서 executor token cost가 어떻게 움직이는지 보여준다.
execution.py, tools.py, context.py, state.py, lifecycle.py, evaluation.py의 기능 contract를 예시 interface로 제공한다. seed는 CLI/audit/primitives만 제공하며 task-solving policy는 없다. Self-Eval은 creator=executor, Unified-Eval은 fixed Gemini executor이며 human references는 별도 external system references이다.
RQ1 prompt는 deliverable이 architecture description이 아니라 executable system code여야 함을 강조하고, H=<E,T,C,S,L,V>, invocation forms, honest status, provider-neutral runtime interface, prohibited hard-coding, design freedom을 규정한다. RQ2 prompt는 여기에 persistent git workspace, evaluation lanes, fixed 10-pair budget, round probes, event stream, immutable versions, final declaration, external ledger와 diagnosis-first working method를 더한다.
GPT-5.5 Creation은 parser/shell/patch handling을 trajectory로 고쳐가며 Terminal 1점을 얻고, Opus Creation은 broad modular harness를 upfront 구축하지만 settled zero 뒤 core logic을 바꾸지 않는다. GPT-5.5 Evolution은 final-review gate에서 가장 큰 gain을 만들고 최신 버전 대신 T2로 rollback한다. Opus Evolution은 failure taxonomy, pre-finish verification, diff-grounded reflection을 이용하고 3/10 pairs만 사용해 T3를 선택한다.
원 논문은 61개 참고문헌을 포함한다. 아래에는 HarnessDev의 문제정의, benchmark, harness creation/evolution, evaluation에 직접 연결되는 핵심 문헌과 공식 링크를 정리한다.
논문에 명시된 공식 project page.
human-engineered coding harness 및 development environment 배경.
agent context engineering의 실무적 기반.
HarnessDev의 Data/ML downstream benchmark.
Creation과 Evolution의 핵심 code benchmark.
automated agent design 연구의 대표 출발점.
fixed runtime에서 harness evolution을 평가하는 관련 benchmark.
blind search와 informed diagnosis를 구분하는 harness optimizer evaluation.
episode 사이 harness adaptation의 관련 연구.
recursive harness improvement를 직접 다루는 관련 연구.
prior candidates, scores, traces를 활용하는 executable harness optimization.
model이 agent generation을 코드 수준에서 수행하는 관련 연구.
observability와 trajectory feedback를 harness evolution에 연결한다.
update 생성 능력과 executor가 update를 활용하는 능력을 분리한다.
HarnessDev Creation과 가장 가까운 autonomous agent development benchmark 중 하나.
executable code를 harness representation으로 보는 기반 연구.
논문 도입부와 development environment에서 중요한 human-engineered harness.
harness representation의 관련 연구.
failure batch에서 validated patch를 생성하도록 harness engineer를 학습한다.
execution trace와 verbal feedback 기반 self-improvement의 대표 선행 연구.
HarnessDev Code domain의 terminal environment benchmark.
versioned snapshots, budgeted evaluation, structured traces를 제공하는 optimizer infrastructure.
Evolution과 가장 가까운 concurrent benchmark.
matched-budget evaluation과 overfitting 위험을 다룬다.
Search/Research Creation 평가의 1,266-task benchmark.
agent-computer interface와 coding harness 설계의 대표 선행 연구.
failure-driven model-specific edits와 regression testing을 사용하는 self-improving harness 연구.
overfitting과 component interference를 직접 다룬다.
intermediate snapshots, cost, in-/out-of-distribution result를 기록하는 evaluation environment.
fixed-harness agent benchmark의 대표 관련 연구.