Does Failure Feedback Direct Agent Self-Modification?
Abstract
Self-improving agents use failure feedback to revise their code or instructions, but gains after selection do not establish target-specific repair or generalization. We measure directedness by comparing repair of a randomly selected target failure with repair of the parent's other failures. Across 145 eligible modifications in public Darwin Gödel Machine logs, we find no detectable target-specific advantage. Controlled instruction-revision experiments with small open models show that relevant feedback can improve target repair. In a second study with a pre-specified analysis plan, target feedback raised repair by 20 percentage points for Qwen3-4B relative to matched same-category feedback; the 7-point increase for Phi-4-mini was not significant. Target repair did not reliably imply held-out improvement. Held-out gains were concentrated in settings with identifiable, repairable failure mechanisms, including planted errors and natural tool-interface failures. Benefits of edit localization and regression screening varied across settings, while eight-step revision loops and GEPA ended at similar mean held-out accuracy. Evaluations should report target repair, transfer to related failures, and held-out net change separately.
Figures & tables
| Quantity | Measures | Does not establish |
|---|---|---|
| Directedness | repair of the failure shown, relative to the parent’s other failures | that the editor identified the cause of the failure |
| Category-level spread | repair of other failures in the category of the failure shown, relative to failures elsewhere | generalization across tasks or distributions |
| Net score change | failures repaired minus correct answers broken, on a fixed evaluation set | the long-run gain of a population after selection |
| Working children | All attempts | Survival | |||
|---|---|---|---|---|---|
| Goal | Goal / other | Fisher | Goal / other | Risk diff. ( ) | Goal / other |
| Empty patches | 8/8 / 22/36 | 0.03 | 8/25 / 22/101 | pts (0.21) | 32% / 36% |
| Context length | 6/6 / 26/82 | 0.002 | 6/34 / 26/206 | pts (0.36) | 18% / 40% |
| Agent and editor | Qwen3-4B-Instruct-2507, 4-bit, MLX; the editor is the same model |
| Tasks | 180 BIG-Bench Hard questions, 30 from each of six categories |
| Parents | clean playbook: 79.4%, 37 failures; planted-rule playbook: 53.3%, 84 failures (51 rule-caused, 27 also failed by the clean playbook, 6 other) |
| Evidence | instance : one failure drawn at random, with the agent’s response and the correct answer; named : one category named as weak; none |
| Children | clean parent: 30, 6 and 3 attempts (instance, named, none), of which 27, 6 and 3 viable; planted-rule parent: 28, 6 and 4, all viable |
| Scoring | every viable child and both parents on all 180 questions; greedy decoding, at most 512 tokens; one fixed order and batch layout; strict answer extraction (Appendix C ) |
| Sensitivity | relaxed answer extraction; prefix continuation of truncated outputs (Section 4.4 ) |
| Parent / target | Target | Other | Diff. [95% CI] | Category [95% CI] | |||
|---|---|---|---|---|---|---|---|
| Clean / all (natural) | 27 | 0.519 | 0.274 | [ , ] | 0.007 | [ , ] | 0.09 |
| Planted / all | 28 | 0.607 | 0.244 | [ , ] | [ , ] | ||
| Planted / rule-caused | 18 | 0.500 | 0.226 | [ , ] | 0.009 | [ , ] | 0.042 |
| Planted / natural | 8 | 0.750 | 0.207 | [ , ] | 0.002 | [ , ] | 0.032 |
| Models | Qwen3-4B-Instruct-2507 and Phi-4-mini-instruct (bf16, vLLM); each model edits itself |
| Setting A | 6 BIG-Bench Hard categories; splits D 180, V 180, T 240 (held out); seven-module playbook with a fixed output protocol; parents: clean, and clean plus one planted rule (below) |
| Setting B | tool-using agent (Section 5.3 ): Python programs over an editable helper library; splits D 120, V 120, T 180 (held out); parents: clean, and three planted helper bugs |
| Factorial | feedback (failure shown; another failure of the same category; a failure of another category) scope (whole rewrite; one module chosen with knowledge of the target: its category module in Setting A, or, in Setting B, the helper whose correct version changes the output on the target, an oracle localization); one child per cell and combination, same editor seed within a combination |
| Combinations | per parent: 40 (Qwen) and 41 (Phi) in Setting A, 60 in Setting B, by the pre-specified rule |
| Methods | whole rewrite, a random module other than the target’s category module, editor-localized module, category module, and whole or localized edits with regression screening on V (up to three attempts) |
| Loops | 8 steps, 8 trajectories per parent and loop (Qwen, Setting A); GEPA with a matched budget |
| Qwen3-4B (A, ) | Phi-4-mini (A, ) | Tool agent (B, ) | |
|---|---|---|---|
| H1 | [ , ], 0.003 | [ , ], 0.17 | [ , ], 1.0 |
| H2 | [ , ], 0.014 | [ , ], 0.99 | [ , ], 1.0 |
| H3 | [ , ], 0.63 | [ , ], 0.24 | [ , ], 1.0 |
| Companion | [ , ] | [ , ] | [ , ] |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| Run | Repaired | Expected | (target) | (other) | OR MH | ||
|---|---|---|---|---|---|---|---|
| SWE-bench, DGM | 23 | 0 | 2.8 | 0.000 | 0.125 | 0.00 | 1.00 |
| SWE-bench, fixed editor | 15 | 2 | 1.4 | 0.133 | 0.090 | 1.60 | 0.40 |
| SWE-bench, no archive | 19 | 1 | 1.2 | 0.053 | 0.061 | 0.85 | 0.70 |
| Polyglot, DGM | 53 | 6 | 6.9 | 0.113 | 0.132 | 0.84 | 0.72 |
| Polyglot, fixed editor | 16 | 1 | 1.8 | 0.062 | 0.118 | 0.51 | 0.87 |
| Polyglot, no archive | 19 | 2 | 2.5 | 0.105 | 0.133 | 0.77 | 0.74 |
| Qwen3-4B (A) | Phi-4-mini (A) | Tool agent (B) | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Feedback, scope | Target | Break | Net | Target | Break | Net | Target | Break | Net |
| Shown, whole | 0.60 | 6.4 | 0.28 | 12.8 | 0.15 | 0.3 | |||
| Same category, whole | 0.47 | 6.0 | 0.18 | 14.4 | 0.18 | 0.4 | |||
| Other category, whole | 0.26 | 5.9 | 0.26 | 12.9 | 0.06 | 0.3 | |||
| Shown, one module | 0.69 | 5.9 | 0.35 | 16.7 | 0.56 | 4.7 | |||
| Same category, one module | 0.41 | 5.4 | 0.32 | 15.3 | 0.54 | 5.2 | |||
Self-Improving Agents
Self-improving agents use experience and feedback to update their models, memories, skills, or workflows for better future task performance.
See all 160 papers