MetaShare: Failure-Aware Collective Self-Improvement for Open-Ended Agents
Organizations: PricewaterhouseCoopers (PwC)
Abstract
Humans often learn fastest not by repeating success, but by remembering which failures not to repeat. Open-ended self-improving agents can share experience across lineages, as in GEA, or edit their own improvement mechanisms, as in DGM-Hyperagents, yet failed improvement attempts are rarely retained as reusable cross-branch knowledge, and search can collapse onto redundant strategies. We introduce MetaShare, a failure-aware framework that records successful and unsuccessful agent modifications together with signed performance deltas. Before each generation, MetaShare retrieves diverse high-performing strategies alongside high-confidence failures from other lineages, letting agents reuse effective mechanisms while avoiding known dead ends. A task-blind auditor periodically injects absent or underrepresented mechanism categories, while embedding-based de-ranking limits redundancy during retrieval. Multiple meta-agents propose modifications in parallel at heterogeneous temperatures behind a deterministic selector that gates applicability, scope, compilability, and size. Experiments across paper review, coding, math grading, robotics reward design, and financial audit-risk assessment show that MetaShare's median matches or exceeds DGM-Hyperagents' final performance and reaches its own best-performing agent in 1.7--2.9 fewer evolution iterations.
Figures & tables
| Domain (budget) | DGM-H | Ours | Ratio |
|---|---|---|---|
| Paper Review (100) | 83M | 52M | |
| Polyglot (100) † | 135M | 163M | |
| IMO-grading (200) | 88M | 213M |
| Configuration | Train | Val | Gens |
|---|---|---|---|
| Success only | 0.68 [.68,.69] | 0.69 [.69,.72] | 63 |
| + failure ( ) | 0.70 [.69,.70] | 0.73 [.72,.74] | 60 |
| + parallel ( ) | 0.77 [.76,.79] | 0.78 [.76,.83] | 48 |
| + auditor (full) | 0.81 [.79,.83] | 0.83 [.80,.88] | 36 |
| Pool disabled, | 0.70[.70,.71] | 0.72 [.72,.73] | 55 |
| Configuration | Accuracy | Gens |
|---|---|---|
| w/o auditor | 0.30 [.30,.31] | 80 |
| Shuffled failures | 0.38 [.37,.39] | 65 |
| Full ( , hetero temps) | 0.45 [.44,.46] | 42 |
| Pool disabled, | 0.28 [.28,.30] | 100 † |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Value | Role |
|---|---|---|
| generations | cadence of the task-blind audit; an audit also requires at least five records in the pool | |
| Pool bound | records | capacity of the strategy pool; on overflow the records with the largest are retained, so the strongest positive strategies and the most informative failures both survive eviction |
| positive retrieval budget | ||
| failure retrieval budget | ||
| Token budget | approximate size of the retrieved context | |
| Embedding model | text-embedding-ada-002 | embeds each record for the de-ranking step |
| Domain | ||||
|---|---|---|---|---|
| Paper review | 3 | |||
| Polyglot coding | 3 | |||
| IMO grading | 3 | |||
| Robotics reward | 3 | |||
| Audit risk | 3 |
| Setting | Value |
|---|---|
| Audit model | Claude Sonnet-4.5 |
| Temperature | 0.0 |
| Max output tokens | 8000 |
| Pool entries per audit | up to 56; a per-call cap on the size of the digest, below the pool bound of Table 4 |
| Diff truncation | 2500 characters per entry, added lines only |
| Requested output | numbered list of 6–10 mechanism categories |
| Label | Definition |
|---|---|
| prompt_engineering | Changes to system prompts, instructions, or personas |
| tool_creation | Adding new tools or capabilities |
| memory_system | Adding performance tracking, history, or knowledge bases |
| evaluation_logic | Changes to how the meta agent evaluates performance |
| self_modification | Meta agent changing its own improvement logic |
| structural_refactor | Reorganizing code without functional change |
| Function | Returns | Passes when |
|---|---|---|
| scope_ok(diff) | the diff modifies at least one allowed file | |
| applies(diff, repo) | git apply --check succeeds against the parent repository, i.e. the patch is applicable without altering the working tree | |
| compiles_after(diff, repo) | the allowed files, copied into a scratch repository with the diff applied, all pass python -m py_compile | |
| size_band(diff) | added plus removed lines fall within |
| Component | Specification |
|---|---|
| CPU nodes | Azure Standard D8as v5: 8 vCPU, 32 GiB memory, 2 threads per core |
| GPU nodes | Azure Standard NC8as T4 v3: 8 vCPU, 56 GiB memory, 1 thread per core, NVIDIA T4 |
| Operating system | Linux, Ubuntu 24.04 LTS |
| Python | 3.12.3 |
| Container runtime | Docker; each of the parallel proposals runs in its own container and repository copy, and each domain evaluation runs in its own container |
| Key libraries | litellm 1.74.9 (all model calls), docker 7.1.0 (sandboxes), GitPython 3.1.44 (diff extraction and patch application), datasets 3.6.0, pandas 2.3.2, sympy 1.14.0, backoff 2.2.1, requests 2.32.4 |
| # | Inherent Risk Factor | Definition |
|---|---|---|
| 1 | Account nature | Whether the account is routine and recurring, or unusual and non-recurring. |
| 2 | Misstatement history | Whether the account has a history of proposed or booked audit adjustments. |
| 3 | Fraud indicators | Whether fraud risk factors, or prior instances of fraud, are present in the account. |
| 4 | Control deficiency history | Whether significant deficiencies or material weaknesses have historically related to the account, as opposed to lesser or no identified deficiencies. |
| 5 | Transaction volume and value | The number of transactions processed through the account and their monetary magnitude. |
| 6 | Transaction complexity | How complex the transactions processed through the account are. |
| Split | Clients | High | Medium | None | Total |
|---|---|---|---|---|---|
| Train | 8 | 457 | 420 | 2344 | 3221 |
| Validation | 2 | 132 | 127 | 506 | 765 |
| Test | 5 | 130 | 105 | 675 | 910 |
| Total | 15 | 719 | 652 | 3525 | 4896 |
| DGM-H | MetaShare | |||||
|---|---|---|---|---|---|---|
| Run | Gens | Accuracy | NMAE | Gens | Accuracy | NMAE |
| 1 | 46 | 0.448 | 0.309 | 30 | 0.512 | 0.342 |
| 2 | 42 | 0.445 | 0.366 | 24 | 0.544 | 0.305 |
| 3 | 44 | 0.450 | 0.370 | 26 | 0.550 | 0.309 |
| 4 | 45 | 0.452 | 0.371 | 27 | 0.553 | 0.302 |
| 5 | 43 | 0.456 | 0.369 | 25 | 0.560 | 0.302 |
| Risk factor | DGM-H | MetaShare | |
|---|---|---|---|
| Account nature | 0.10 | 0.06 | |
| Misstatement history | 1.00 | 1.00 | |
| Fraud indicators | 0.04 | 0.57 | |
| Control deficiency history | 1.00 | 1.00 | |
| Transaction volume and value | 0.30 | 0.05 | |
| Transaction complexity | 0.01 | 0.15 |
| Run | Best accuracy | Generations to best |
|---|---|---|
| 1 | 0.902 | 8 |
| 2 | 0.907 | 9 |
| 3 | 0.912 | 10 |
| 4 | 0.917 | 10 |
| 5 | 0.922 | 10 |
| Median | 0.912 | 10 |
| Run | DGM-H | MetaShare | |
| 1 | 21 | 27 | |
| 2 | 22 | 26 | |
| 3 | 21 | 27 | |
| 4 | 22 | 27 | |
| 5 | 21 | 24 | |
| Median | 21 | 27 |
| Mechanism type | Gen. 1–19 (pre-audit) | Gen. 20–24 (post-audit) |
|---|---|---|
| evaluation_logic | 12 | 1 |
| prompt_engineering | 7 | 0 |
| tool_creation | 0 | 1 |
| structural_refactor | 0 | 1 |
| memory_system | 0 | 0 |
| self_modification | 0 | 0 |
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 171 papers