From Single-Agent Self-Discovery to Multi-Agent Adaptation: Scaling Laws of Partner Feedback and Convention Rigidity in Meta Reinforcement Learning Algorithms
Organizations: University of Cambridge · Models2 AI
Abstract
A key milestone toward Recursive Self-Improvement (RSI) is replacing hand-crafted optimizers with meta-learned update rules (such as Disco103 and OPEN) that discover how agents learn. Yet when a self-discovered RL model trains with adapting teammates, does co-evolution sustain capability gains or trap agents in brittle conventions? Across 1,800+ runs in continuous collective robotics (VMAS) and discrete coordination (Overcooked), we establish five laws of multi-agent adaptation. First, four-cell counterfactual partner swaps expose an evaluation illusion: apparent team progress often masks focal regression (+1.066 team gain concealing -0.119 focal loss) and inflates transfer by +0.649 to +1.210. Second, a 288-run physical-coupling sweep () reveals a linear scaling law (, , Spearman ): live reciprocal feedback keeps Disco103 invariant (AUC 0.297--0.322), whereas severing feedback triggers a monotonic collapse (-0.172 to -0.490), with OPEN establishing a sensitivity spectrum (Disco103 > OPEN > MAPPO). Third, extending navigation training eightfold (1.05M steps) enables Disco103 to overtake MAPPO (+0.087 team return, +0.133 bank gain), while decoupled training boosts cross-partner completion by +10.16% (56.25% vs. 46.09%). Fourth, in Overcooked, MAPPO's self-play conventions induce a 28.13% cross-partner collision rate, whereas Disco103 cuts collisions to 12.77% and achieves 3.33x higher bank return (9.96 vs. 2.99; net gain +6.43), further improved by decoupled meta-adaptation (+1.39 with scripted partners). Finally, perturbation pulses (), auxiliary entropy diagnostics (8.485 nats), and 48 multi-lifetime meta-evolved rules () trace these dynamics to partner-gradient blindness and auxiliary drift, informing multi-agent self-discoverd algorithms.
Figures & tables
| Task | Comparator | Full-training mean difference | Last-50 mean difference |
|---|---|---|---|
| simple adversary v3 | IPPO | -1.2948 [-1.8708, -0.6955] | -0.6816 [-1.4061, 0.0115] |
| simple adversary v3 | MAPPO | -3.2139 [-3.8083, -2.5618] | -2.0433 [-3.0532, -1.4034] |
| simple spread v3 | IPPO | 2.1032 [1.1201, 3.0882] | 2.2441 [0.1441, 4.0856] |
| simple spread v3 | MAPPO | -2.9257 [-3.5545, -2.2492] | -3.3035 [-4.6051, -1.8829] |
| simple tag v3 | IPPO | -3.6350 [-3.9168, -3.3962] | -5.8658 [-7.1030, -4.8254] |
| simple tag v3 | MAPPO | -6.4143 [-6.7764, -6.0673] | -9.4879 [-11.6218, -7.5665] |
| Task | Contrast | n | Estimate [95% CI] | Holm p |
|---|---|---|---|---|
| signal coordination | switch interaction | 12 | -0.0050 [-0.0351, 0.0258] | 1.0000 |
| signal coordination | recent replay repair | 12 | 0.0235 [0.0142, 0.0334] | 0.0010 |
| navigation | switch interaction | 12 | 0.0145 [-0.0427, 0.0842] | 1.0000 |
| navigation | recent replay repair | 12 | -0.0021 [-0.0292, 0.0255] | 0.8843 |
| navigation | source feedback matching | 12 | -0.0138 [-0.0568, 0.0228] | 0.8086 |
| overcooked cramped room | source feedback matching | 12 | 0.5260 [-0.6536, 1.6406] | 0.8086 |
| Task | Source | Target data | n | Bank gain [95% CI] | Team [95% CI] |
|---|---|---|---|---|---|
| navigation | eta0 | coupled | 12 | 0.0996 [0.0764, 0.1255] | 0.4016 [0.2554, 0.5078] |
| navigation | eta0 | decoupled | 12 | 0.0635 [0.0314, 0.0975] | 0.4589 [0.3792, 0.5333] |
| navigation | coupled | coupled | 12 | 0.0385 [-0.0162, 0.1267] | 0.4183 [0.3018, 0.5579] |
| navigation | coupled | decoupled | 12 | 0.0468 [-0.0049, 0.1275] | 0.4494 [0.3645, 0.5547] |
| navigation | decoupled | coupled | 12 | 0.0109 [0.0022, 0.0195] | 0.3773 [0.3481, 0.4034] |
| navigation | decoupled | decoupled | 12 | 0.0055 [-0.0122, 0.0202] | 0.3624 [0.2961, 0.4313] |
| Task | n | Response contrast [95% CI] | 97.5% CI | Holm p |
|---|---|---|---|---|
| wind flocking | 12 | -0.2336 [-0.3695, -0.1239] | [-0.3914, -0.1115] | 0.0010 |
| navigation | 12 | -0.3345 [-0.4525, -0.2227] | [-0.4708, -0.2075] | 0.0010 |
| Task | n | Score [95% CI] | 97.5% CI | Holm p | Pass |
|---|---|---|---|---|---|
| wind flocking | 12 | 0.0002 [-0.0019, 0.0022] | [-0.0022, 0.0024] | 0.8887 | No |
| navigation | 12 | -0.0016 [-0.0032, 0.0000] | [-0.0035, 0.0003] | 0.1768 | No |
| Method | Training data | FT minus F0 return [95% CI] |
|---|---|---|
| disco103 | coupled | -3.3802 [-6.3751, -0.3698] |
| disco103 | decoupled | -8.7240 [-10.3958, -6.7448] |
| mappo | coupled | -9.8125 [-10.5417, -9.0521] |
| mappo | decoupled | -9.2083 [-10.4375, -7.8385] |
| open | coupled | -6.6094 [-10.5783, -2.4219] |
| open | decoupled | -9.2083 [-12.4010, -5.2135] |
| Source | Target data | Bank gain [95%] | FT completion [95%] | Completion change [95%] |
|---|---|---|---|---|
| eta0 | coupled | 0.3750 [-0.1276, 0.9115] | 0.1208 [0.1173, 0.1246] | -0.0046 [-0.0081, -0.0010] |
| eta0 | decoupled | -0.4714 [-0.8594, -0.0911] | 0.1132 [0.1100, 0.1161] | -0.0122 [-0.0155, -0.0089] |
| coupled | coupled | -0.3646 [-1.2969, 0.4089] | 0.1148 [0.1046, 0.1229] | -0.0105 [-0.0212, -0.0021] |
| coupled | decoupled | -1.2344 [-2.5079, -0.1224] | 0.1122 [0.1017, 0.1191] | -0.0132 [-0.0237, -0.0065] |
| decoupled | coupled | 0.2057 [-0.0260, 0.4453] | 0.1214 [0.1191, 0.1234] | -0.0040 [-0.0068, -0.0016] |
| decoupled | decoupled | -0.1380 [-0.4427, 0.1302] | 0.1208 [0.1181, 0.1232] | -0.0046 [-0.0076, -0.0020] |
| Alpha | Interaction [95%] | Disco coupled | Disco reference | MAPPO coupled | MAPPO reference |
|---|---|---|---|---|---|
| 0 | 0.4845 [0.3873, 0.5754] | 0.2969 | -0.1722 | 0.5453 | 0.5607 |
| 0.25 | 0.4938 [0.4168, 0.5707] | 0.3016 | -0.1977 | 0.5395 | 0.5340 |
| 0.5 | 0.6069 [0.5339, 0.6818] | 0.3148 | -0.3366 | 0.5269 | 0.4825 |
| 0.75 | 0.6648 [0.5793, 0.7538] | 0.3218 | -0.3474 | 0.4871 | 0.4827 |
| 1 | 0.7460 [0.6391, 0.8623] | 0.3133 | -0.4371 | 0.4578 | 0.4534 |
| 1.5 | 0.8366 [0.7514, 0.9552] | 0.3023 | -0.4903 | 0.4772 | 0.5212 |
| Task | Horizon | Method / regime | n | Initial | Final | Net gain |
|---|---|---|---|---|---|---|
| wind flocking | 131,120 | open / coupled | 12 | -0.5570 | 0.7860 | +1.3431 |
| wind flocking | 131,120 | open / decoupled | 12 | -0.5570 | 0.6182 | +1.1752 |
| wind flocking | 1,048,640 | open / coupled | 4 | -0.5326 | 1.2308 | +1.7634 |
| wind flocking | 1,048,640 | open / decoupled | 4 | -0.5326 | 0.9907 | +1.5233 |
| navigation | 1,048,640 | disco103 / coupled | 4 | -0.3491 | 1.7881 | +2.1372 |
| navigation | 1,048,640 | mappo / coupled | 4 | -0.4091 | 1.6819 | +2.0910 |
Appendix figures & tables19 assets
Supplementary material from the paper’s appendix.
Appendix
| Set | Arm | Task | Method / partner | n | AUC [95% CI] | Team gain [95% CI] |
|---|---|---|---|---|---|---|
| RC | critic | navigation | mappo / fixed initial | 4 | 0.3490 [0.2947, 0.4032] | 0.7693 [0.6350, 0.9036] |
| RC | critic | navigation | mappo / online | 4 | 0.8073 [0.7284, 0.8661] | 1.6148 [1.3169, 1.7874] |
| RC | critic | wind flocking | mappo / fixed initial | 4 | 0.1647 [0.1347, 0.1901] | 0.7795 [0.6493, 0.9096] |
| RC | critic | wind flocking | mappo / online | 4 | 0.2813 [0.1900, 0.3463] | 1.2280 [1.0830, 1.3414] |
| RC | mechanism | navigation | disco103 / fixed initial | 4 | -0.2495 [-0.3265, -0.1657] | -0.0257 [-0.0637, 0.0123] |
| RC | mechanism | navigation | disco103 / fixed trained | 4 | 0.2316 [0.1025, 0.3607] | -0.0005 [-0.0910, 0.0901] |
| Batch | Task | Method / route / source / phase | Records | Final team | AUC |
|---|---|---|---|---|---|
| expanded validation | wind flocking | /learning/eta0/independent target | 4 | 0.4047 | 0.3411 |
| expanded validation | wind flocking | /learning/eta0/seed split | 4 | 0.4189 | 0.3304 |
| expanded validation | wind flocking | /learning/etaF/independent target | 8 | 0.4509 | 0.3739 |
| expanded validation | wind flocking | /learning/etaF/seed split | 8 | 0.3984 | 0.3566 |
| expanded validation | wind flocking | /learning/etaL/independent target | 8 | 0.4591 | 0.3778 |
| expanded validation | wind flocking | /learning/etaL/seed split | 8 | 0.3718 | 0.3715 |
| Family | Task | Contrast / condition | n | Estimate [95% CI] |
|---|---|---|---|---|
| method gaps | wind flocking | Disco103 minus MAPPO independent bank endpoint fixed initial | 12 | -0.3031 [-0.5122, -0.0979] |
| method gaps | wind flocking | Disco103 minus MAPPO independent bank focal gain fixed initial | 12 | -0.3320 [-0.5447, -0.1266] |
| method gaps | wind flocking | Disco103 minus MAPPO original team endpoint fixed initial | 12 | -0.4830 [-0.5884, -0.3867] |
| method gaps | wind flocking | Disco103 minus MAPPO independent bank endpoint online | 12 | 0.2997 [-0.0399, 0.7657] |
| method gaps | wind flocking | Disco103 minus MAPPO independent bank focal gain online | 12 | 0.2708 [-0.0732, 0.7341] |
| method gaps | wind flocking | Disco103 minus MAPPO original team endpoint online | 12 | -0.2663 [-0.3649, -0.1817] |
| Task | Method | Selected LR | Entropy | AUC difference [95% CI] |
|---|---|---|---|---|
| wind flocking | disco103 | 0.0003 | 0.03 | 0.0014 [-0.0212, 0.0271] |
| wind flocking | mappo | 0.001 | 0.01 | 0.0623 [0.0018, 0.1208] |
| navigation | disco103 | 0.001 | 0.0 | 0.0164 [-0.0427, 0.0778] |
| navigation | mappo | 0.001 | 0.0 | 0.1214 [-0.0118, 0.2679] |
| Source seed | Contrast | Target blocks | Team AUC difference | Team endpoint difference |
|---|---|---|---|---|
| 2301 | etaF minus eta0 frozen | 4 | 0.0049 | 0.0036 |
| 2301 | etaL minus eta0 frozen | 4 | 0.0022 | 0.0063 |
| 2301 | etaL minus etaF frozen | 4 | -0.0027 | 0.0027 |
| 2301 | etaF minus eta0 learning | 4 | 0.0074 | -0.0113 |
| 2301 | etaL minus eta0 learning | 4 | 0.0093 | 0.0080 |
| 2301 | etaL minus etaF learning | 4 | 0.0019 | 0.0193 |
| Task | Metric | n | Estimate [95% CI] | Holm p |
|---|---|---|---|---|
| joint passage | auc | 12 | 0.2292 [0.0134, 0.4312] | 0.1377 |
| joint passage | portable gain | 12 | -0.5389 [-0.8253, -0.2187] | – |
| joint passage | team | 12 | 0.1671 [-0.0441, 0.3757] | – |
| joint passage | team gain | 12 | 0.1671 [-0.0441, 0.3757] | – |
| joint passage | success | 12 | 0.0000 [0.0000, 0.0000] | – |
| navigation | auc | 12 | 0.0064 [-0.0654, 0.0759] | 0.8662 |
| Task | Batch | Method / arm | n | Team | Bank gain | Team succ. | Bank succ. |
|---|---|---|---|---|---|---|---|
| signal coordination | mechanism confirm | disco103/control reset | 12 | 27.6979 | -0.0208 | 0.7578 | 0.4067 |
| signal coordination | mechanism confirm | disco103/switch reset | 12 | 20.0911 | -0.0217 | 0.2500 | 0.3264 |
| signal coordination | mechanism confirm | disco103/replay | 12 | 20.0990 | 0.0122 | 0.2500 | 0.3485 |
| signal coordination | mechanism confirm | mappo/control reset | 12 | 31.4036 | 0.0208 | 1.0000 | 0.3333 |
| signal coordination | mechanism confirm | mappo/switch reset | 12 | 29.9766 | 0.0286 | 0.9167 | 0.2500 |
| signal coordination | mechanism confirm | mappo/replay | 12 | 31.4323 | 0.0104 | 1.0000 | 0.2083 |
| Task | Contrast / metric | n | Estimate [95% CI] | Holm p |
|---|---|---|---|---|
| signal coordination | switch interaction / post auc portable gain | 12 | -0.0050 [-0.0351, 0.0258] | 1.0000 |
| signal coordination | switch interaction / portable gain | 12 | -0.0087 [-0.0456, 0.0260] | – |
| signal coordination | switch interaction / post auc team | 12 | 0.1381 [-2.1293, 2.5351] | – |
| signal coordination | switch interaction / post auc success | 12 | 0.0149 [-0.1252, 0.1646] | – |
| signal coordination | switch minus control disco103 / post auc portable gain | 12 | -0.0064 [-0.0226, 0.0089] | – |
| signal coordination | replay minus control disco103 / post auc portable gain | 12 | 0.0116 [-0.0037, 0.0265] | – |
| Step size | Comparisons | Above tolerance | Maximum relative error | Maximum absolute error |
|---|---|---|---|---|
| 1e-03 | 432 | 1 | 1.22e-06 | 1.16e-07 |
| 1e-04 | 432 | 0 | 9.84e-08 | 1.16e-09 |
| 1e-05 | 432 | 0 | 7.34e-07 | 2.81e-11 |
| Task | Block | Response contrast |
|---|---|---|
| wind flocking | 1 | -0.1743 |
| wind flocking | 2 | -0.2536 |
| wind flocking | 3 | -0.0354 |
| wind flocking | 4 | -0.0684 |
| wind flocking | 5 | -0.3319 |
| wind flocking | 6 | -0.8049 |
| Task | Method | Repeat correlation | Mean bank gain | M0 loss | M1 loss |
|---|---|---|---|---|---|
| wind flocking | disco103 | 0.1206 | 0.1713 | 0.2578 | 0.2603 |
| wind flocking | mappo | 0.6624 | -0.9709 | 0.7142 | 0.7115 |
| navigation | disco103 | -0.0670 | 1.1499 | 0.3317 | 0.3309 |
| navigation | mappo | 0.0554 | 1.1966 | 1.0981 | 1.1021 |
| Task | Block | Prediction score |
|---|---|---|
| wind flocking | 1 | -0.0002 |
| wind flocking | 2 | -0.0060 |
| wind flocking | 3 | -0.0023 |
| wind flocking | 4 | 0.0079 |
| wind flocking | 5 | -0.0016 |
| wind flocking | 6 | 0.0009 |
| Method / feedback | View | Metric | Change [95% CI] |
|---|---|---|---|
| disco103/coupled | BC | team return mean | -0.1693 [-0.4688, 0.1823] |
| disco103/coupled | BC | native completion fraction | -0.0163 [-0.0267, -0.0046] |
| disco103/coupled | BC | active interact | -0.0097 [-0.0192, 0.0002] |
| disco103/coupled | BC | movement | -0.0867 [-0.1337, -0.0445] |
| disco103/coupled | BC | mutual collision block | 0.0411 [0.0075, 0.0812] |
| disco103/coupled | RL | team return mean | 0.1042 [0.0000, 0.2344] |
| Source | Target | Stratum | Return gain [95%] | Completion gain [95%] |
|---|---|---|---|---|
| eta0 | coupled | BC | -0.3125 [-0.4883, -0.1237] | -0.0179 [-0.0254, -0.0104] |
| eta0 | coupled | Scripted | 2.3828 [-0.1693, 5.1172] | 0.0072 [-0.0000, 0.0137] |
| eta0 | coupled | RL | 0.0586 [0.0065, 0.1107] | 0.0029 [0.0003, 0.0055] |
| eta0 | decoupled | BC | -0.5729 [-0.7292, -0.4167] | -0.0296 [-0.0374, -0.0218] |
| eta0 | decoupled | Scripted | -1.2891 [-3.2161, 0.5990] | -0.0059 [-0.0104, -0.0013] |
| eta0 | decoupled | RL | 0.0391 [-0.0000, 0.0781] | 0.0020 [0.0000, 0.0039] |
| Method | Data | Alpha | AUC [95%] | Initial return [95%] | Adjusted AUC [95%] |
|---|---|---|---|---|---|
| disco103 | coupled | 0 | 0.2969 [0.2750, 0.3179] | -0.2953 [-0.3323, -0.2561] | 0.5922 [0.5454, 0.6331] |
| disco103 | reference | 0 | -0.1722 [-0.2740, -0.0650] | -0.2953 [-0.3323, -0.2561] | 0.1231 [0.0061, 0.2475] |
| mappo | coupled | 0 | 0.5453 [0.5048, 0.5825] | -0.3127 [-0.3639, -0.2607] | 0.8580 [0.7804, 0.9295] |
| mappo | reference | 0 | 0.5607 [0.5333, 0.5897] | -0.3127 [-0.3639, -0.2607] | 0.8734 [0.8115, 0.9296] |
| disco103 | coupled | 0.25 | 0.3016 [0.2768, 0.3222] | -0.3256 [-0.3590, -0.2897] | 0.6272 [0.5879, 0.6643] |
| disco103 | reference | 0.25 | -0.1977 [-0.2908, -0.1021] | -0.3256 [-0.3590, -0.2897] | 0.1279 [0.0348, 0.2265] |
| Method | Data | Alpha | F0 bank return [95%] | FT bank return [95%] | Gain [95%] |
|---|---|---|---|---|---|
| disco103 | coupled | 0 | -0.4029 [-0.4296, -0.3785] | -0.1751 [-0.2581, -0.0807] | 0.2277 [0.1519, 0.3187] |
| disco103 | reference | 0 | -0.4029 [-0.4296, -0.3785] | -0.4909 [-0.9450, -0.1335] | -0.0880 [-0.5354, 0.2666] |
| mappo | coupled | 0 | -0.4133 [-0.4554, -0.3655] | -0.0864 [-0.2417, 0.0586] | 0.3268 [0.1698, 0.4817] |
| mappo | reference | 0 | -0.4133 [-0.4554, -0.3655] | -0.3097 [-0.6210, -0.0316] | 0.1035 [-0.2029, 0.3965] |
| disco103 | coupled | 0.25 | -0.4341 [-0.4598, -0.4104] | -0.1880 [-0.2758, -0.0983] | 0.2461 [0.1675, 0.3288] |
| disco103 | reference | 0.25 | -0.4341 [-0.4598, -0.4104] | -0.5272 [-0.8999, -0.2214] | -0.0931 [-0.4610, 0.2159] |
| Block | Slope |
|---|---|
| 0 | 0.1959 |
| 1 | 0.3420 |
| 2 | 0.2723 |
| 3 | 0.4610 |
| 4 | 0.1074 |
| 5 | 0.1990 |
| Arm | Block | Outer steps | Rule distance | Physical worlds | Meta-train time (h) |
|---|---|---|---|---|---|
| matched coupled | 0 | 512 | 3.8481 | 1425408 | 0.6258 |
| matched reference | 0 | 512 | 4.4615 | 1425408 | 0.6322 |
| dual same | 0 | 512 | 4.6713 | 1425408 | 3.0594 |
| dual cross | 0 | 512 | 4.7360 | 1425408 | 3.1242 |
| matched coupled | 1 | 512 | 4.2957 | 1425408 | 0.6172 |
| matched reference | 1 | 512 | 3.0041 | 1425408 | 0.6281 |
| Task | Horizon | Method / regime | n | Initial | Final | Net gain |
|---|---|---|---|---|---|---|
| wind flocking | 131,120 | open / coupled | 12 | -0.5570 | 0.7860 | +1.3431 |
| wind flocking | 131,120 | open / decoupled | 12 | -0.5570 | 0.6182 | +1.1752 |
| wind flocking | 1,048,640 | disco103 / coupled | 5 | -0.5095 | 1.2071 | +1.7167 |
| wind flocking | 1,048,640 | disco103 / decoupled | 5 | -0.5095 | 1.2323 | +1.7418 |
| wind flocking | 1,048,640 | disco103 / curriculum | 5 | -0.5095 | 1.1970 | +1.7065 |
| wind flocking | 1,048,640 | mappo / coupled | 5 | -0.5158 | 1.2912 | +1.8070 |
Multi-Agent Reinforcement Learning
Multi-agent reinforcement learning studies how interacting agents learn coordinated or competitive policies through shared experience and rewards.
See all 389 papers