How Memory Is Used
Prior: growing chat history against static memory. Recuris: verified working state에서 execution event가 발생할 때 필요한 skill을 검색한다.
Recursive Experiential–Working Memory Evolution for Long-Horizon Agent Harnesses
Recuris의 핵심 주장은 recursive self-improvement의 학습면(trainable surface)을 모델 weight가 아니라 외부의 memory-control layer로 옮길 수 있다는 것이다. Long-horizon task에서 history가 길어질수록 중요한 것은 “더 많은 경험을 저장하는가”보다 “현재 무엇이 아직 끝나지 않았는지 verified state로 유지하고, 그 상태가 요구하는 skill만 정확한 순간에 호출하는가”가 된다.
Recuris는 Experiential Memory(EM)와 Working Memory(WM)를 결합한다. WM은 진행상태와 미완료 목표를 추적하고, EM에서 지금 필요한 skill을 선택한다. 실행 뒤에는 모델의 자기주장이 아니라 tool/environment response를 checker가 검증해 WM을 갱신한다. 이 coupling 자체가 structured evidence를 만들고, 실패를 Skill Memory의 특정 component에 귀속시켜 작은 patch만 적용할 수 있게 한다.
논문의 가장 강한 결과는 단순한 평균점수 향상이 아니다. base LLM과 outer improver를 고정한 채, 4개 long-horizon benchmark와 10개 모델에서 완료된 37개 model–benchmark pair 중 35개에서 task success가 개선된다. 효과는 horizon이 길수록 커져 최장 task에서 +32.2 point에 이르고, memory가 한 mid-sized deployment model에서 진화한 뒤 GPT-5.6 Sol과 Claude Opus 5 같은 다른 frontier model에도 그대로 transfer된다.
agent harness는 memory, skill invocation, task-state tracking, tool interaction, verification을 조정하는 외부 execution layer다. Long-horizon 환경에서 initial instruction이나 full history를 retrieval key로 쓰면 completed step, outdated information, unresolved requirement, execution noise가 섞여 현재 task need와 skill이 어긋난다.
Prior: growing chat history against static memory. Recuris: verified working state에서 execution event가 발생할 때 필요한 skill을 검색한다.
Prior: final outcome으로 whole memory rewrite. Recuris: structured trajectory로 component를 진단하고 scoped patch를 held-out gate로 검증한다.
Reusable skills.
Goal schema와 update proposal.
언제 어떤 skill을 전달할지.
state transition의 evidence 검증.
goal마다 content, status, supporting evidence, optional blocker를 기록하고 status를 pending/done/blocked로 유지한다. 이것이 현재 실행단계에서 relevant experience를 결정하는 compact interface다.
Call-time invocation은 state-changing tool call draft 시 synthetic not-executed result를 반환해 skill을 먼저 context에 넣고 실제 call을 다시 작성한다. Boundary invocation은 turn boundary의 state predicate에서 skill을 공급한다. 모델이 history에서 skill을 직접 고르는 대신 harness가 verified state와 execution event를 근거로 delivery를 제어한다.
skill invocation이나 tool-call attempt는 completion evidence가 아니다. checker가 실제 tool/environment result를 확인해야 goal이 done이 된다. 이 mechanism이 state, skill, action, observation, checker decision을 연결하는 structured trace \(\Gamma_k\)를 생성한다.
fixed Meta-Agent는 failed trace를 읽고 failure를 \(E,W,\rho,C\) 중 localized intervention이 가장 효과적일 component에 귀속한다. 이는 causal identification이 아니라 repair decision이다.
Missing/flawed skill.
Omitted goal/state/update error.
Missed/late/irrelevant invocation.
Wrong completion acceptance/rejection.
implicated component만 edit하고 나머지는 그대로 복사한다. evolve split은 localization/patch generation, dev split은 regression gate, test split은 held-out evaluation에만 사용한다.
accepted patch가 future behavior와 future evidence를 바꾸기 때문에 recursive다. 하지만 base LLM, Meta-Agent, localization/patching procedure, gate, memory-control layer 밖의 harness는 fixed다.
cross-task structure가 없는 isolated task에서는 hidden verifier의 1-bit failure signal과 failed trajectory만으로 experiential memory를 localized update하고 같은 task를 재시도한다. verifier tests나 expected output은 Meta-Agent에 제공하지 않는다.
| Benchmark | Tasks | Focus | Mode |
|---|---|---|---|
| τ²-Retail | 114 | policy-constrained tool use, reads/writes | cross-task evolution |
| τ²-Airline | 50 | state-dependent policy constraints | cross-task evolution |
| SkillFlow | 166 pairs / 20 families | lifelong procedural skill discovery | family-level evolution |
| Terminal-Bench 2.1 | 87 | isolated terminal tasks | within-task adaptation |
deployment/evolution model은 doubao-seed-2-0-pro이며 base model weight는 어디에서도 update하지 않는다. 기본적으로 task당 k=4 attempts, attempt당 최대 200 steps와 10 consecutive tool errors를 사용한다.
| Model | Retail | +R | Airline | +R | SkillFlow | +R | Terminal | +R |
|---|---|---|---|---|---|---|---|---|
| Granite-4.1-3B | 9.7 | 23.0 | 34.3 | 39.8 | 0.3 | 0.0 | 0.6 | 3.1 |
| Qwen3.5-4B | 68.0 | 68.3 | 75.3 | 79.0 | 6.0 | 7.1 | 10.1 | 13.0 |
| Qwen3.5-9B | 77.6 | 79.6 | 75.5 | 78.4 | 15.1 | 18.4 | 17.4 | 20.5 |
| GPT-OSS-20B | 50.6 | 60.8 | 54.8 | 59.3 | 7.8 | 10.4 | 3.9 | 6.7 |
| Qwen3.6-27B | 62.8 | 71.2 | 79.0 | 80.0 | 42.2 | 58.7 | 38.8 | 42.1 |
| Qwen3.6-35B | 78.2 | 78.5 | 80.3 | 81.5 | 35.3 | 48.8 | 33.1 | 36.4 |
| Gemini 3.7 Flash | 73.5 | 78.3 | 86.5 | 85.0 | – | – | 79.8 | 82.4 |
| GPT-5.6 Sol | 58.3 | 76.1 | 79.0 | 86.0 | – | – | 83.2 | 86.4 |
| Claude Opus 5 | 72.4 | 87.9 | 89.5 | 90.5 | – | – | 84.6 | 88.4 |
| Doubao-2.0-Pro | 58.1 | 81.4 | 75.5 | 80.5 | 34.6 | 51.4 | 46.1 | 48.9 |
Figure 1에서 task horizon이 길어질수록 gain은 +12.5, +20.0, +27.9, +28.7, +25.7, +32.2 point로 커진다. 대표 failure mode는 agent-alone=100 기준 hallucinated completion 86%, omitted writes 80%, zero-write episodes 62%, wrong first tool call 44%, error cascades 24%, missed reads 20% 감소한다.
Retail horizon quartile에서 read-action recall은 모든 variant에 걸쳐 88.0–97.9%다. 길어져도 필요한 정보를 읽는 능력은 유지된다. 분리는 write path에서 생겨 Recuris required-write recall이 base보다 26.7 point 높고, write가 필요한데 하나도 실행하지 않는 episode가 42%에서 16%로 감소한다. 첫 correct write의 median turn은 동일하다. speed가 아니라 coverage 문제다.
| Variant | Retail | Δ | Airline | Δ |
|---|---|---|---|---|
| Base | 58.1 | – | 75.5 | – |
| EM only | 60.1 | +2.0 | 77.0 | +1.5 |
| WM only | 82.0 | +23.9 | 79.5 | +4.0 |
| Model-controlled invocation | 65.6 | +7.5 | – | – |
| EM+WM · Recuris | 83.6 | +25.4 | 84.0 | +8.5 |
Retail에서는 WM이 level을 들고 EM은 invocation과 결합할 때 가치가 나타난다. 동일 skill library를 항상 context에 넣는 model-controlled 방식보다 Recuris가 18 point 높다.
Retail에서는 status board 제거가 −17.3 point, Airline에서는 write review 제거가 −13.5 point다. 서로 반대 domain에서는 거의 inert한 double dissociation이 나타난다. 사후 truth guard는 172 unsupported completion claim을 거절했지만 이미 실행된 잘못된 write를 되돌릴 수 없기 때문에 measurable effect가 없다.
| Metric | Base | WM only | Model-controlled | Recuris |
|---|---|---|---|---|
| Success | 58.1 | 82.0 | 65.6 | 83.6 |
| Required-write recall | 55.7 | 80.9 | 61.1 | 82.4 |
| Omitted writes/episode | 0.596 | 0.145 | 0.417 | 0.121 |
| Agent tokens/success (k) | 116 | 102 | 147 | 101 |
Recuris는 더 빨리 첫 write를 하는 것이 아니라 필요한 write를 결국 발행할 확률을 높이고, 한 번의 early mismatch가 후속 오류를 연쇄시키는 regime에 덜 들어간다.
conventional agent는 verbal confirmation 이후 required return/exchange tool call을 실행하지 않는다. Recuris는 goal을 pending으로 유지해 skill을 write 시점에 invoke하고 successful receipt가 있어야 done으로 바꾼다. 이 사례는 mechanism illustration이다.
| Evidence | E | W | ρ | Macro | Macro-F1 |
|---|---|---|---|---|---|
| Outcome only | 0.0 | 38.9 | 0.0 | 13.0 | 10.4 |
| Raw trajectory | 61.1 | 50.0 | 0.0 | 37.0 | 31.2 |
| Structured trace Γ | 72.2 | 83.3 | 38.9 | 64.8 | 63.4 |
invocation fault는 transcript에 “일어나지 않은 event”라 raw log에서 보이지 않는다. Γ는 mechanism event와 state timeline을 기록해 non-event를 관찰가능하게 만든다. Macro precision도 27.6%→64.4%로 오른다.
| Run | Package | Success | Δ vs M0 | Reach |
|---|---|---|---|---|
| Baseline | M0 | 54.07 | – | 0/86 |
| Run A | round 1 | 63.08 | +9.01 | 83/86 |
| Run A | round 2 | 65.99 | +11.92 | 78/86 |
| Run B | round 2 | 64.83 | +10.76 | 86/86 |
| Run B | round 4 | 57.85 | +3.78 | 0/86 |
| Run C | M1 | 64.53 | +10.47 | 84/86 |
| Run C | M2 | 71.51 | +17.44 | 84/86 |
| Run C | final | 63.37 | +9.30 | – |
second round는 compounding할 수 있지만 매 round가 좋아지는 것은 아니다. required-write recall과 success delta는 r=0.97로 함께 움직인다.
| Implementation | Δ over M0 | 95% CI |
|---|---|---|
| Claude Code | +11.92 | [+4.65,+19.19] |
| DeepSeek Harness | +10.47 | [+3.78,+17.15] |
| DeepSeek progressive | +9.30 | [+1.45,+17.44] |
| DeepSeek − Claude | −1.45 | [−7.85,+4.65], p=0.72 |
independent stacks가 service-request authorization WM field, execution-gate check, anti-escalation skills 같은 유사 repair family에 수렴한다.
accepted update는 이미 풀던 42 anchor tasks 중 4개(9.5%)를 깨뜨렸는데 byte-identical rerun의 25.9%보다 낮다. 18개 rejected candidate의 dev CI는 모두 zero를 포함하고 일부는 나중 held-out에서 유의한 gain을 보여 gate가 conservative함을 드러낸다.
8개 accepted patch 동안 51 skills 추가, 2개 수정, deprecation 없음, 17 near-duplicate pairs가 남았다. 단일 skill 제거로 gain이 사라지지 않아 memory는 redundant하며 pruning이 자연스러운 future work다.
Retail 16 evolve / 12 dev / 86 test에서 16 failure로 만든 memory가 unseen 86 tasks에서 +9.01∼+17.44 point를 얻는다. 그러나 held-out에 같은 repairable failure가 남아 있고 memory가 실제 invoke될 때만 transfer된다.
| Model | Domain | Alone | +Recuris | Δ |
|---|---|---|---|---|
| GPT-5.6 Sol | Retail | 58.33 | 76.10 | +17.76 |
| Claude Opus 5 | Retail | 72.37 | 87.94 | +15.57 |
| Gemini 3.7 Flash | Retail | 73.46 | 78.29 | +4.82 |
| GPT-5.6 Sol | Airline | 79.00 | 86.00 | +7.00 |
| Claude Opus 5 | Airline | 89.50 | 90.50 | +1.00 |
| Gemini 3.7 Flash | Airline | 86.50 | 85.00 | −1.50 |
한 mid-sized model에서 진화한 package가 frontier model을 그대로 올릴 수 있다. gain은 model scale보다 memory가 담은 procedure/discipline과 receiving model의 failure pattern에 좌우된다.
same-item exchange에서 original item ID를 replacement ID로 재사용한 failure를 EM workflow gap으로 localize하고 valid variant ID를 먼저 retrieve하도록 skill만 patch한다. unseen matched task에서 성공한다.
| Configuration | Budget | Solved | Δ | Isolates |
|---|---|---|---|---|
| Terminus-2 | 1 | 30/87 · 34.5% | – | – |
| + seed memory | 1 | 28/87 · 32.2% | −2.3 | layer alone |
| + retry | 4 | 51/87 · 58.6% | +26.4 | attempt budget |
| + adaptation | 4 | 53/87 · 60.9% | +2.3 | learning, matched budget |
+26.4 headline의 대부분은 adaptation이 아니라 retry budget이다. matched budget에서 adaptation +2.3은 p=0.774다.
| Metric | Tasks | Seed | Adapted | Δ | 95% CI |
|---|---|---|---|---|---|
| avg@4 learned | 56 | 17.4 | 21.9 | +4.5 | [−0.9,+9.8] |
| pass@4 learned | 56 | 39.3 | 42.9 | +3.6 | [−8.9,+16.1] |
| avg@4 all | 87 | 46.1 | 48.9 | +2.9 | [−0.6,+6.3] |
| pass@4 all | 87 | 60.9 | 63.2 | +2.3 | [−5.7,+10.3] |
네 cut 모두 +2.3∼+4.5 방향이지만 CI가 zero를 포함해 논문은 direction으로만 보고한다.
Voyager, AWM, ExpeL, Buffer of Thoughts, ReasonFlux, Dynamic Cheatsheet, Agent Skills, SkillOpt, SkillComposer. Recuris는 “무엇을 저장”보다 “언제 호출”을 verified state에 grounding한다.
StateAct, ReflAct, Magentic-One, StateFlow, StructAgent. Recuris는 state proposal과 commitment를 분리하고 tool result로 transition을 검증한다.
Gödel Machine, Promptbreeder, Gödel Agent, AgentSquare, AlphaEvolve, MetaSkill-Evolve, EvolveMem 등과 달리 recursion surface를 memory-control layer로 좁힌다.
memory-control layer가 frozen agent의 trainable surface가 될 수 있다. 변화가 component에 귀속 가능하고 reversible하며 다른 model에도 portable할 수 있다는 것이 논문의 결론이다.
95% CI는 10,000회 paired task-clustered bootstrap이며 task를 resample한다. 동일 Retail package의 byte-identical rerun도 CI [−6.98,+7.27]이므로 몇 point 차이는 run-to-run variation으로 본다. paired binary contrast에는 McNemar exact two-sided test도 사용한다.
| Target | Bare | M0 | Harness Δ | 95% CI |
|---|---|---|---|---|
| GPT-OSS-20B | 45.35 | 50.58 | +5.23 | [−1.16,+11.63] |
| Qwen3.5-9B | 77.84 | 77.56 | −0.28 | [−5.11,+4.83] |
| Qwen3.6-35B | 78.78 | 78.20 | −0.58 | [−5.81,+4.65] |
| GLM-4.7-Flash | 61.05 | 61.92 | +0.87 | [−4.94,+6.98] |
neutral M0 harness 자체의 CI는 모두 zero를 포함한다. GPT-OSS-20B에서 measurable gain은 evolution term +10.17에 있다.
20 families: Compensation-Scenario-Modeling, Cross-Format-Data-Reconciliation, DMAIC-Quality-Analysis, Distribution-Center-Auditing, Document-Fraud-Detection, Embedded-Data-Repair, Financial-Statement-Rolling, HWPX-Document-Automation, Healthcare-Cost-Benefit-Analysis, Industry-Correlation-Analysis, Inventory-and-Finance-Integration, Medical-Data-Standardization, OCR-Data-Extraction, Operational-Recovery-Planning, PPT-Formatting-Optimization, Production-Capacity-Planning, SEC-13F-Financial-Analysis, Sales-Pivot-Analysis, Supply-Chain-Replenishment, Weighted-Risk-Assessment.
Retail은 16 evolve / 12 dev / 86 test. Airline 두 lineage는 10/15/25와 11/10/29. SkillFlow template selection은 family 내부 in-sample이므로 main claim은 unseen-task generalization이 아니라 target-model transfer다.
| Regime | Success | First-call prompt | Tokens/episode | Tokens/success |
|---|---|---|---|---|
| Bare | 58.11 | 5,163 | 67,315 | 115,833 |
| WM only | 82.02 | 5,636 | 83,938 | 102,341 |
| Model-controlled | 65.57 | 8,274 | 96,289 | 146,849 |
| Recuris | 83.55 | 5,632 | 84,275 | 100,865 |
model-controlled는 Recuris보다 first call에 3,111 prompt tokens를 더 쓰고 18 point 낮으며 tokens/success는 약 46% 많다. per-turn rendered memory token과 dollar cost는 artifacts에서 복구할 수 없어 저자들은 근사하지 않는다.
Retail Run A round 2에서 refund/exchange/modify/cancel 등 failure cluster는 EM에 귀속되어 skill patch가 제안되지만 “harness itself” cluster에는 patch가 제안되지 않는다. Gate는 source repair rate가 올라가도 dev CI가 zero를 분리하지 못하면 reject한다.
round-2 rejected candidate는 나중 86 held-out tasks에서 M0보다 +11.92 point로 유의한 gain을 보여 gate가 good/bad classifier라기보다 evidence가 불충분한 change를 보류하는 rule임을 보여준다.
Terminal-Bench의 mailman task는 attempt 1 실패 뒤 trajectory만으로 full_config_validation_before_completion skill을 쓰고 attempt 2가 성공한다. Meta-Agent 기록에는 root cause, trajectory evidence, skill id/title/body만 있고 verifier tests와 reference solution은 없다. 그러나 단일 사례를 adaptation 효과의 증거로 확대하지 않는다.
| Family | Canonical | Selected |
|---|---|---|
| weighted-risk-assessment | 0/8 | 7/8 |
| embedded-data-repair | 4/8 | 8/8 |
| healthcare-cost-benefit-analysis | 1/9 | ~6/9 |
같은 model/tasks/budget에서 procedural description만 달라져 큰 차이가 난다. selection은 in-sample이라는 caveat가 붙는다.
instrumented Retail episode에서 agent가 완료를 주장해도 executable request가 실행되지 않았으면 checker가 truth_bounce를 발생시키고 goal을 pending으로 남긴다. state는 model assertion이 아니라 environment evidence에 의해 전진한다.
Recuris는 unrestricted self-modification이 아니다. Failure attribution은 causal identification이 아니라 repair attribution이다. Terminal-Bench learning gain은 matched-budget aggregate에서 statistically established되지 않았다. SkillFlow selected template은 task-level out-of-sample generalization이 아니다. Dev gate는 low-power이고 memory growth는 pruning 문제를 남긴다.
GEPA; Anthropic Agent Skills; τ²-Bench; SAGALLM; selective evolving-memory controller; Mem0; Promptbreeder; Magentic-One; AutoGuide; Automated Design of Agentic Systems; Latent State Persistence; Granite 4.1; DSPy; ReflAct; SSGM; state-grounded dynamic retrieval; SkillsInjector; Agentic Skills benchmark; EvolveMem; AlphaEvolve; gpt-oss; ReasoningBank; ALITA; Self-Improving Coding Agent; StateAct; Gödel Machines; AgentSquare; Misevolution risks; Terminal-Bench; PACE; Reflexion; Ladder; Cognitive Architectures for Language Agents; Dynamic Cheatsheet; Voyager; SAGE; MetaSkill-Evolve; Agent Workflow Memory; StructAgent; StateFlow; A-Mem; Qwen3; ReasonFlux; Buffer of Thoughts; SkillOpt; Gödel Agent; STOP; AgentEvolver; MemSkill; AFLOW; Darwin Gödel Machine; SkillComposer; Failure Attribution of LLM Multi-Agent Systems; SkillFlow; ExpeL; Memento; Where LLM Agents Fail; Self-Adapting Language Models.
본 게시물은 첨부된 36페이지 논문의 Introduction, Method, Experiments, Figures 1–10, Tables 1–13, Related Work, Conclusion, References, Appendices A–E를 기준으로 재구성했다. 논문이 통계적으로 effect라고 부르지 않은 결과는 direction 또는 case illustration로 구분했고, bounded recursion을 unrestricted self-modification으로 확대해석하지 않았다.