AI Research Blog/HarnessDev · Self-Developing AgentsEvidence-Grounded Research Note · 2026-09-08
Agent Harness EngineeringCreationEvolutionCross-Executor Transfer

모델은 자신의 실행체계를 직접 만들고 진화시킬 수 있는가

HarnessDev: Can LLMs Create and Evolve Their Own Agent Harness?

Editorial Abstract

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와 강하게 공진한다.

Evidence Boundary

이 글은 첨부된 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이 아니라는 점을 그대로 유지한다.

Creator Models
6

Opus 4.8, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Qwen 3.7 Max, Seed 2.0 Pro.

Creation Coverage
2,207

4 domains · 5 benchmarks의 unique downstream instances.

Evolution Versions
73

9 lineages에서 freeze된 official versions, 64 adjacent switches.

Held-out Alignment
53.1%

feedback score와 held-out score가 같은 방향으로 움직인 comparable switches의 비율.

Part I · Why Harness Matters

모델이 아니라 ‘모델을 둘러싼 실행체계’를 평가해야 하는 이유

HarnessDev의 출발점은 agent benchmark의 단위가 너무 늦게 시작된다는 문제의식이다. 실제 시스템에서 어려운 일은 task를 푸는 순간보다, 그 task를 반복해서 풀 수 있는 실행 기반을 만드는 일일 수 있다.

§1 · Same Weights, Different System

가중치가 같아도 harness가 바뀌면 성능이 달라진다

논문은 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가 아니라 모델의 잠재 능력을 행동으로 변환하는 실행 아키텍처임을 보여준다.

Agent = Model + Harness라는 식은 비유가 아니라 실험 설계의 문제이다. Harness를 고정한 채 model만 비교하면 실제 배포 시스템의 중요한 설계 공간을 평가 밖에 남길 수 있다.
§2 · The Hidden FDE Layer

현실 배포에서 인간 엔지니어가 해오던 일을 benchmark가 숨긴다

대부분의 benchmark는 task, reward/judge, scaffold가 이미 준비된 뒤에 시작한다. 그러나 실제 deployment에서는 informal requirement를 success criterion으로 바꾸고, feedback signal을 만들어 내고, tools/context/state/lifecycle/verification을 포함한 실행체계를 구축하는 일이 먼저 필요하다. 논문은 이 현실의 대표 역할로 Forward-Deployed Engineer(FDE)를 든다.

FDE의 성공 기준은 demo가 아니라 시스템이 고객 환경에서 실제로 쓰이고, 계속 작동하며, 요구사항 변화에 따라 개선되는가이다. HarnessDev는 이 중 세 번째 층, 즉 실행체계를 만들고 유지하는 능력을 분리해 평가한다.

§3 · The Research Gap

기존 benchmark는 harness를 ‘설정’으로 취급했다

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 문제이다.

Part II · Benchmark Design

정답 대신 실행 가능한 infrastructure를 제출한다

HarnessDev는 evaluation artifact를 answer에서 frozen runnable harness로 바꾼다. Creator와 Executor를 분리하고 Creation과 Evolution을 같은 artifact lifecycle 위에 놓는다.

§4 · Formal View

Creator는 H를 만들고, Executor는 H 안에서 task를 푼다

\[(L_C,D)\rightarrow H,\qquad (H,L_E,x)\rightarrow y\xrightarrow{J}\mathrm{score}\]

\(L_C\)는 creator LLM, \(D\)는 development environment, \(H\)는 생성된 harness, \(L_E\)는 downstream executor LLM, \(x\)는 task, \(J\)는 evaluator이다. 핵심은 \(H\)가 완성된 뒤 freeze된다는 점이다. Creator가 개발 중 보았던 환경과 실제 downstream execution을 분리함으로써 harness 자체의 재사용 가능성을 측정한다.

RQ1 · Creation

약하지만 runnable한 seed에서 시작해 specification과 1–3 development cases만 보고 unseen task family에 generalize하는 harness를 만든다.

RQ2 · Evolution

자신이 만든 Creation harness \(H_0\)에서 시작해 execution feedback을 읽고 수정하면서 이미 작동하던 behavior를 보존해야 한다.

§5 · What Is a Harness?

여섯 책임이 실제 실행 경로에 있어야 한다

\[H=\langle E,T,C,S,L,V\rangle\]
E · Execution

loop, planning, scheduling, stop condition.

T · Tools

tool interface, selection, I/O constraint, error handling.

C · Context

task, code, log, history, constraint를 context로 구성하고 압축.

S · State

goal, hypothesis, progress, attempt, failure, artifact state.

L · Lifecycle

pre/post hooks, timeout, failure recovery, finalization.

V · Verification

test, check, artifact validation, trajectory recording.

논문은 이 여섯 글자를 파일 구조로 강제하지 않는다. 중요한 것은 책임이 선언되어 있는가가 아니라 실제 main execution path에 참여하는가이다. 이후 architecture analysis에서 dead code와 unreachable mechanism을 따로 조사하는 이유도 여기에 있다.

§6 · Weak Seed

runnable하지만 정책은 없다

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되지 않는다.

ProvidedCLI · config · passive tools · audit output
Not Providedloop · planner · tool policy · context mgmt.
Not Provideddurable state · recovery · verifier · stop rule
Creator Must Buildcomplete runnable control layer

unmodified seed는 task를 시도하지 않고 partial artifact를 남기며 다섯 downstream benchmark에서 모두 0점을 받는다. 따라서 nonzero Creation score는 creator가 추가한 execution logic에서 나와야 한다.

§7 · Development Signals and Integrity

보이는 feedback와 숨겨진 evaluation을 분리한다

SettingStartCreator-visible signalFinal artifact
CreationWeak seed \(H_{seed}\)specification + 1–3 public development casesFrozen final harness \(H\)
EvolutionCreator's RQ1 \(H_0\)fixed 100-task SWE-Pro + all 89 Terminal-Bench resultsFrozen 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를 얻은 사례가 없었다고 보고한다.

Evaluation Integrity

Harness가 result.json에 success라고 적었다고 점수를 받지 않는다. 이 design은 self-deception과 benchmark gaming을 줄이지만, 일반적인 agent security 문제를 해결하는 sandbox는 아니다. 논문도 실행 container는 reproducibility용이며 containment를 보장하지 않는다고 경고한다.

Part III · Evaluation Canvas

네 domain, 다섯 benchmark, 두 executor 관점

성능만 보지 않고 executor token cost, portability, hidden generalization, artifact structure를 함께 측정한다.

§8 · Downstream Coverage

Creation은 2,207개의 unique task를 포괄한다

DomainBenchmarkTasksPrimary metric
CodeSWE-bench Pro public split731Task success
CodeTerminal-Bench 2.189Task success
Data / MLMLE-bench75Medal score
WritingEQ-Bench346Rubric score
Research / SearchBrowseComp1,266Accuracy

Evolution은 Code에 집중한다. SWE-Pro public split에서 100개를 visible feedback set으로, 그와 겹치지 않는 630개를 post-freeze held-out로 사용하며, Terminal-Bench 89개 전체는 feedback benchmark이다.

§9 · Creator Models

여섯 frontier LLM이 같은 약한 seed를 서로 다르게 개발한다

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을 사용한다.

논문 보고 · Source Fact

RQ1은 creator–benchmark pair마다 독립적으로 3개 harness를 만들고 avg@3를 보고한다. 독립 생성물 사이의 variance가 크기 때문에 단일 harness를 creator의 대표값으로 보지 않는다.

§10 · Self-Eval vs Unified-Eval

“나에게 잘 맞는 harness”와 “다른 모델에도 좋은 harness”를 분리한다

Self-Eval

\(L_E=L_C\). Creator가 자신이 만든 harness 안에서 hidden task를 수행한다. model–harness co-design의 실제 배포 관점을 측정한다.

Unified-Eval

모든 생성 harness를 동일한 Gemini 3.1 Pro executor로 실행한다. executor 능력을 가능한 한 고정해 harness portability를 비교한다.

Unified-Eval도 완전한 causal isolation은 아니다. harness–model interaction 자체가 복잡하기 때문이다. 그러나 같은 harness가 executor를 바꿨을 때 어떻게 무너지는지 보여주는 강력한 probe가 된다.

§11 · Human References and Compute

성숙한 시스템은 ‘거리’를 보여주지만 절대 상한은 아니다

BenchmarkHuman-engineered referencePaired executorReference score
SWE-ProPublic coding-agent setupClaude Fable 580.0*
Terminal-Bench 2.1OpenAI agent setupGPT-5.6 Sol88.8*
MLE-benchMLEvolveGemini 3.124.0
EQ-Bench3Kimi WriterOpus 4.883.7
BrowseCompOpenAI browsing stackGPT-5.6 Sol92.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을 사용한다.

§12 · Efficiency Metric

비싼 harness가 좋은 harness라는 보장은 없다

각 frozen harness는 native task score와 executor-model token consumption을 함께 보고한다. Creator가 harness를 개발하는 데 사용한 token은 execution cost에서 제외한다. 논문은 cost-adjusted composite score로 합치지 않고 capability와 cost를 두 축으로 직접 보여준다.

Part IV · Harness Creation

만드는 것은 가능하다. 그러나 domain마다 난이도가 전혀 다르다

Writing과 ML experimentation에서는 selected human reference에 근접하거나 넘어가지만, Search/Research와 Code에서는 mature harness와 큰 격차가 남는다.

§13 · Self-Eval Results

Opus가 가장 높은 평균을 기록하지만, 결과는 단일 서열로 요약되지 않는다

CreatorSWE-ProTerminalMLE medalEQ-Bench3BrowseCompAvg.
Opus 4.869.364.832.984.652.467.8
GPT-5.532.852.119.183.052.655.1
Gemini 3.1 Pro43.668.832.474.835.255.6
DeepSeek V4 Pro28.935.619.675.440.945.2
Qwen 3.7 Max33.541.33.168.732.344.0
Seed 2.0 Pro10.86.05.371.13.222.8
Selected human reference80.0*88.8*24.083.792.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보다 뒤진다.

Reference Interpretation

Writing/MLE에서 reference를 넘었다는 결과는 “LLM이 인간 엔지니어보다 우월하다”는 결론이 아니다. reference row는 서로 다른 harness–executor pair의 공개 system result이며 benchmark authors가 absolute ceiling이라고 정의하지 않는다.

§14 · Domain Gap

Search와 Code는 장기 control flow를 요구한다

저자들은 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만 개선해도 해결되지 않는 병목이 존재함을 보여준다.

§15 · Portability

좋은 harness는 누구에게 좋은가

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로 감소한다.

Qwen BrowseComp
+17.6pp

Gemini executor로 바꾸었을 때 개선.

Qwen MLE
+12.9pp

원 executor가 병목이었음을 시사.

Opus SWE-Pro
−36.3pp

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는 다른 문제이다.

§16 · Cost

token을 많이 쓰면 점수가 올라간다는 단순 법칙은 없다

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 차이가 발생한다.

분석 · Interpretation

Harness quality는 단일 score가 아니라 capability × efficiency × portability의 다차원 문제로 보는 것이 타당하다. 고비용 반복은 모델의 능력을 끌어낼 수도 있지만, poorly designed loop와 redundant search를 확대할 수도 있다.

§17 · Architecture Evidence

모든 creator가 loop는 만들지만 state와 memory는 가장 비어 있다

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 classes
11 / 18

State class를 선언한 artifact.

Save interface
1 / 18

실제 state-saving interface를 노출.

Checkpoint events
0 / 26,679

기록된 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가 중요하다는 것이다.

§18 · Two Creation Styles

GPT-5.5는 feedback-driven monolith, Opus는 up-front modular architecture를 택했다

Appendix F · GPT-5.5 Creation case study

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를 명확히 기록한다.

Appendix G · Opus 4.8 Creation case study

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이 다름을 보여준다.

Part V · Harness Evolution

고치는 것은 가능하다. 하지만 ‘계속 좋아지는 것’은 훨씬 어렵다

Evolution은 local program search처럼 보인다. 한 버전의 개선이 다음 버전에서 사라지고, visible feedback gain이 held-out gain으로 전이되지 않으며, executor가 바뀌면 같은 수정의 의미도 달라진다.

§19 · Protocol

10번의 full pair budget과 5-task probes로 version search를 수행한다

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회이다.

Read Feedbackscore · adapter status · raw trajectories
Diagnosefailure mode · hypothesis
Editcode / context / tools / lifecycle
Freeze PairSWE-100 + Terminal-89
Selectcontinue / rollback / declare final

두 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에 사용할 수 없다.

§20 · Feedback vs Held-out

보이는 점수는 모두 좋아져도 unseen gain은 훨씬 작다

SettingCreatorFeedback pair H0→HdecHeld-out-630 H0→HdecHeld-out gain
SelfGemini 3.1 Pro59.9 → 68.748.89 → 51.59+2.70
SelfOpus 4.871.1 → 74.163.02 → 67.46+4.44
SelfQwen 3.7 Max41.8 → 55.742.22 → 43.65+1.43
SelfDeepSeek V4 Pro47.2 → 60.647.30 → 50.48+3.17
SelfGPT-5.559.2 → 65.148.25 → 52.06+3.81
Fixed GeminiOpus 4.858.8 → 68.648.10 → 50.79+2.70
Fixed GeminiQwen 3.7 Max62.1 → 63.249.52 → 48.41−1.11
Fixed GeminiDeepSeek V4 Pro47.3 → 53.843.02 → 40.63−2.38
Fixed GeminiGPT-5.556.6 → 59.142.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될 수 있다.

§21 · Non-Monotonicity

64번의 version switch 중 ‘명확한 개선’은 드물다

Both regress
8

두 benchmark 모두 하락.

One regresses
16

한 benchmark에서만 regression.

Inside noise
27

gain이 repeated-run noise band 안.

Clear positive
2

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로는 불안정하다.

§22 · What Models Actually Edit

control flow는 많이 바꾸지만 state와 standalone verifier는 거의 건드리지 않는다

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를 따로 측정해야 한다.

§23 · Diagnosis Is the Weakest Link

feedback은 많지만 failure를 깊게 읽지 않는다

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일 수 있다.

§24 · Two Evolution Case Studies

좋은 update는 ‘실패 → 구체적 원인 → 검증 가능한 구조 변경’에서 나온다

Appendix H · GPT-5.5 Evolution

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의 핵심 연산임을 보여준다.

Appendix I · Opus 4.8 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를 택한다.

§25 · The Evolution Contract

benchmark는 단순 “코드를 고쳐라”가 아니라 실험 운영 자체를 요구한다

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을 대신하지 않는다.

Diagnose before editing → keep an external evaluation ledger → track the best candidate explicitly → verify locally before spending pair budget → use probes as directional, noisy signal → freeze complete pair evaluations → declare a previously evaluated non-H0 commit

즉 HarnessDev의 Evolution은 agent에게 software engineering뿐 아니라 experiment management와 noisy evidence under budget를 요구한다.

Part VI · What the Paper Actually Shows

Self-developing agent는 이미 시작됐지만, 아직 self-improving system은 아니다

Creation capability와 robust evolution capability를 분리해서 읽으면 논문의 결론이 과장 없이 선명해진다.

§26 · The Direct Answer

“Can LLMs create and evolve their own harness?”에 대한 증거 기반 답

Creation · Yes, partially

모든 creator는 zero-scoring seed를 runnable agent harness로 바꿀 수 있다. 일부 domain에서는 selected mature reference에 근접하거나 넘어선다.

Evolution · Locally, yes

feedback에서 concrete failure를 찾아 targeted structural edit를 할 때 held-out gain도 생긴다.

Stable evolution · Not yet

trajectory는 비단조적이고 작은 gain은 noise와 구분하기 어렵다.

Transfer · Limited

다른 executor로 바꾸면 improvement의 부호 자체가 바뀔 수 있다.

현재 LLM은 harness를 만들 수 있고, 자신이 만든 harness를 부분적으로 고칠 수 있다. 그러나 feedback, held-out task, executor가 달라져도 개선이 누적되는 robust self-evolution은 아직 관찰되지 않는다.

Evidence-grounded synthesis
§27 · Weights Are Not the Only Memory of Intelligence

model-external learning을 별도 축으로 본다

논문의 결론은 흥미로운 관점을 제시한다. intelligence가 축적되는 장소를 model parameters 하나로 제한하지 않는다. harness는 failure와 feedback을 통해 바뀌고, source code와 git history에 남으며, inspectable하고 testable하고 reusable하다.

그렇다고 논문이 heuristic learning이 parameter training을 대체한다고 주장하지는 않는다. parameter learning과 model-external harness learning을 서로 다른 축으로 측정해야 한다는 것이 더 정확한 해석이다.

§28 · Co-Adaptation Is a First-Class Phenomenon

harness quality는 독립적인 software property만이 아니다

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가 생긴다.

분석 · Interpretation

향후 agent system benchmark는 “최고 model + 최고 harness”만 보고하기보다 creator × harness × executor compatibility matrix를 측정할 필요가 있다. portability는 파일이 실행되는가가 아니라 behavioral protocol이 다른 model에서도 유지되는가의 문제이다.

§29 · Related Work Map

HarnessDev는 생성·최적화·평가 연구를 하나의 lifecycle로 연결한다

Work familyRepresentative workPrimary focusHarnessDev difference
Fixed-harness agent benchmarkSWE-bench, GAIA, WebArena, τ-bench, AgentBenchselected harness 안에서 downstream task successharness 자체를 submitted artifact로 평가
Harness effectHarness-Benchharness choice가 model performance에 미치는 영향creator가 harness를 직접 개발하고 유지
Autonomous constructionMeta-Agent Challengemeta-agent가 held-out test용 agent artifact를 프로그래밍Creation + continued Evolution + executor separation + cost
Harness optimizationHarnessOpt-Benchprovided seed를 graded feedback budget 아래 최적화from-scratch Creation과 동일 artifact의 Evolution 연결
Evolution benchmarkEvo-Benchshared seed, fixed runtime, final revision의 disjoint suiteself/fixed runtime 모두 보고, 모든 frozen version held-out 평가
Executable optimization methodsVeRO, Meta-Harness, Self-Harness, HarnessFix, HarnessCompass, Harness-R1versioned search, repair, provenance, regression, trained harness engineer특정 method 제안보다 general-purpose frontier model의 developer role 자체를 평가
§30 · Practical Design Lessons

논문에서 반복해서 살아남는 engineering 패턴

  • 실패를 먼저 분류한다. Opus Evolution의 가장 좋은 update는 189 cases를 읽고 hidden-grader interface failure를 별도 bucket으로 만든 뒤 나왔다.
  • finish 전에 real verification을 강제한다. GPT-5.5의 가장 큰 positive jump도 premature completion을 막는 final-review gate에서 발생했다.
  • 현재 artifact를 다시 보여 준다. git diff나 non-git file state를 모델 memory에 맡기지 않고 explicit review context로 공급한다.
  • rollback과 version selection을 설계한다. latest version이 best가 아니며, noisy feedback를 계속 추적하면 lucky run에 과적합할 수 있다.
  • state를 선언하는 것과 persistence를 실제로 쓰는 것을 구분한다. source code feature count보다 execution evidence가 중요하다.
  • cost를 함께 본다. 더 많은 token이 더 높은 score를 보장하지 않는다.
Part VII · Limitations, Ethics, and Future

다음 연구는 ‘더 잘 고치는 agent’보다 ‘개선이라고 믿을 근거’를 만들어야 한다

HarnessDev는 benchmark 자체도 아직 1세대이다. uncertainty, executor diversity, multi-domain held-out evolution, self-hosted development environment가 다음 경계로 남는다.

§31 · Limitations

강한 결론과 약한 결론의 경계를 분명히 한다

BoundarySource limitationInterpretation risk
Domain coverage4 categories가 많은 deployment를 덮지만 전부는 아님모든 agent harness domain에 일반화할 수 없음
Human baselinesuneven하고 optimal 보장 없음, 서로 다른 executor와 pairedreference 대비 100%를 human ceiling으로 읽으면 안 됨
Unified-Evalfixed executor로 차이를 줄이지만 interaction을 완전히 제거하지 못함harness 품질의 순수 causal effect라고 단정하기 어려움
Behavioral analysisdescriptive, incomplete benchmark coverage특정 mechanism의 causal benefit으로 해석하면 과도함
Evolution replicationcreator–runtime cell당 한 trajectory, 한 unfinished main-runtime cellpopulation-level uncertainty estimate를 제공하지 못함
Held-out evolutionpost-freeze held-out은 SWE-Pro만 사용Terminal/Search/Data 등으로 general evolution이 입증되지 않음
Development environment\(D\)는 두 stage 모두 고정evolved harness가 다음 세대의 development environment가 될 수 있는지 미검증
Learning claimmodel-external harness learningparameter training을 대체하는 self-learning으로 확대하면 안 됨
§32 · Ethics and Security

generated harness는 untrusted code로 다뤄야 한다

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의 명시적 권고이다.

§33 · Future Research Agenda

HarnessDev 이후의 여덟 가지 연구 질문

1 · Self-hosted development

evolved harness가 다음 evolution cycle의 development environment \(D\) 역할까지 맡을 수 있는가.

2 · Replicated trajectories

creator–runtime cell당 여러 independent evolution trajectory를 돌려 improvement distribution과 uncertainty를 추정한다.

3 · Multi-domain held-out

Code 외 Search, Data, Writing에서도 feedback/held-out split을 만들어 transfer와 regression을 측정한다.

4 · Matched-search controls

동일 evaluation budget에서 단순 random/local search보다 LLM diagnosis가 실제로 더 효율적인지 비교한다.

5 · Cross-executor robustness

harness prompt, budget, tool protocol, stopping rule을 executor-invariant하게 만들거나 compatibility를 명시적으로 모델링한다.

6 · Reachability-aware evolution

추가된 component가 main path에 실제로 도달하는지 static/dynamic evidence를 optimization signal에 포함한다.

7 · Evidence-grounded selection

noisy visible score 대신 failure class, paired regression, held-out proxy, uncertainty를 함께 사용해 final version을 선택한다.

8 · Cost-aware harness design

success뿐 아니라 executor token, wall-clock, recovery cost를 Pareto objective로 다룬다.

향후 함의 · Inference

이 연구를 AGI 관점으로 확대할 때 가장 흥미로운 지점은 self-modification 그 자체가 아니다. 자신의 실패를 관찰하고, 실행 substrate를 바꾸고, 그 변화가 unseen environment에서도 유효한지 검증하는 능력이 점차 독립적인 평가 대상이 된다는 점이다. 다만 HarnessDev는 software harness의 model-external learning을 측정할 뿐, 일반적 recursive self-improvement를 입증하지 않는다.

§34 · Key Takeaways

HarnessDev를 여섯 문장으로 압축하면

01 · Change the artifact

task answer가 아니라 persistent runnable infrastructure를 평가한다.

02 · Separate the roles

Creator, development environment, frozen harness, Executor, evaluator를 분리해야 harness 품질을 해석할 수 있다.

03 · Creation is real

현재 LLM은 weak seed에서 완전한 loop/tool/context/lifecycle/verification 체계를 구축할 수 있다.

04 · Evolution is unstable

visible gain은 held-out에서 줄고 version trajectory는 비단조적이며 small gain은 noise와 뒤섞인다.

05 · Portability is a capability

다른 executor에서 같은 harness가 유지되는지 자체가 중요한 system-quality dimension이다.

06 · Improvement needs evidence

미래 self-developing agent의 핵심은 코드를 더 많이 쓰는 것이 아니라 failure diagnosis, regression control, version selection을 더 신뢰할 수 있게 만드는 것이다.

HarnessDev가 보여주는 다음 단계는 “agent가 task를 푸는가”에서 “agent가 자신이 미래 task를 푸는 방식을 engineering할 수 있는가”로 평가 단위를 옮기는 것이다.

Final synthesis · not a claim of general recursive self-improvement
§35 · Appendix Coverage

논문의 부록이 추가로 고정하는 재현성 경계

Appendix A · Candidate harness systems

Code: 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 중 일부 역할만 맡는다.

Appendix B · Creator configuration, human references, execution cost

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가 어떻게 움직이는지 보여준다.

Appendix C–D · Interface specification and role separation

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이다.

Appendix E · Representative system prompts

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를 더한다.

Appendix F–I · Four forensic trajectories

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를 선택한다.

Selected Source Bibliography

References

원 논문은 61개 참고문헌을 포함한다. 아래에는 HarnessDev의 문제정의, benchmark, harness creation/evolution, evaluation에 직접 연결되는 핵심 문헌과 공식 링크를 정리한다.

00
HarnessDev Project Page
ByteDance Seed et al. · 2026

논문에 명시된 공식 project page.

01
Claude Code: an agentic coding assistant
Anthropic · 2024

human-engineered coding harness 및 development environment 배경.

02
Effective context engineering for AI agents
Anthropic · 2025

agent context engineering의 실무적 기반.

03
MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering
Chan et al. · 2024

HarnessDev의 Data/ML downstream benchmark.

04
SWE-bench Pro: Can AI Agents Solve Long-Horizon Software Engineering Tasks?
Deng et al. · 2025

Creation과 Evolution의 핵심 code benchmark.

05
Automated Design of Agentic Systems
Hu, Lu & Clune · 2024

automated agent design 연구의 대표 출발점.

06
Evo-Bench: Can Language Models Improve Agent Harness?
Huang et al. · 2026

fixed runtime에서 harness evolution을 평가하는 관련 benchmark.

07
Towards Direct Evaluation of Harness Optimizers via Priority Ranking
Ong et al. · 2026

blind search와 informed diagnosis를 구분하는 harness optimizer evaluation.

08
Continual Harness: Online Adaptation for Self-Improving Foundation Agents
Karten et al. · 2026

episode 사이 harness adaptation의 관련 연구.

09
Recursive Harness Self-Improvement
Lee et al. · 2026

recursive harness improvement를 직접 다루는 관련 연구.

10
Meta-Harness: End-to-End Optimization of Model Harnesses
Lee et al. · 2026

prior candidates, scores, traces를 활용하는 executable harness optimization.

11
OpenSAGE: Self-Programming Agent Generation Engine
Li et al. · 2026

model이 agent generation을 코드 수준에서 수행하는 관련 연구.

12
Agentic Harness Engineering: Observability-Driven Automatic Evolution of Coding-Agent Harnesses
Lin et al. · 2026

observability와 trajectory feedback를 harness evolution에 연결한다.

13
Harness Updating Is Not Harness Benefit
Lin et al. · 2026

update 생성 능력과 executor가 update를 활용하는 능력을 분리한다.

14
The Meta-Agent Challenge: Are Current Agents Capable of Autonomous Agent Development?
Lu et al. · 2026

HarnessDev Creation과 가장 가까운 autonomous agent development benchmark 중 하나.

15
Code as Agent Harness
Ning et al. · 2026

executable code를 harness representation으로 보는 기반 연구.

16
Codex CLI
OpenAI · 2025

논문 도입부와 development environment에서 중요한 human-engineered harness.

17
Natural-Language Agent Harnesses
Pan et al. · 2026

harness representation의 관련 연구.

18
Harness-R1: Learning to Edit Executable Runtime Harnesses from Agent Failure Trajectories
Shao et al. · 2026

failure batch에서 validated patch를 생성하도록 harness engineer를 학습한다.

19
Reflexion: Language Agents with Verbal Reinforcement Learning
Shinn et al. · 2023

execution trace와 verbal feedback 기반 self-improvement의 대표 선행 연구.

20
Terminal-Bench
Terminal-Bench Team · 2026

HarnessDev Code domain의 terminal environment benchmark.

21
VeRO: A Harness for Agents to Optimize Agents
Ursekar et al. · 2026

versioned snapshots, budgeted evaluation, structured traces를 제공하는 optimizer infrastructure.

22
HarnessOpt-Bench: Evaluating LLMs at Harness Optimization
Ursekar et al. · 2026

Evolution과 가장 가까운 concurrent benchmark.

23
Rethinking the Evaluation of Harness Evolution for Agents
Wang et al. · 2026

matched-budget evaluation과 overfitting 위험을 다룬다.

24
BrowseComp: A Simple Yet Challenging Benchmark for Browsing Agents
Wei et al. · 2025

Search/Research Creation 평가의 1,266-task benchmark.

25
SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
Yang et al. · 2024

agent-computer interface와 coding harness 설계의 대표 선행 연구.

26
Self-Harness: Harnesses That Improve Themselves
Zhang et al. · 2026

failure-driven model-specific edits와 regression testing을 사용하는 self-improving harness 연구.

27
HarnessCompass: Guiding Automatic Harness Evolution toward Generalizable and Effective Agent Harnesses
Zhang et al. · 2026

overfitting과 component interference를 직접 다룬다.

28
SEAGym: An Evaluation Environment for Self-Evolving LLM Agents
Zheng et al. · 2026

intermediate snapshots, cost, in-/out-of-distribution result를 기록하는 evaluation environment.

29
WebArena: A Realistic Web Environment for Building Autonomous Agents
Zhou et al. · 2023

fixed-harness agent benchmark의 대표 관련 연구.