Memetic spread of misaligned values: reset vs detection countermeasures¶
Bead: kgxc · Run: runs/20260808T151131Z_memetic_spread_sweep ·
Scenario: scenarios/memetic_spread.yaml · Date: 2026-08-08
Motivation¶
Two sources, fourteen months apart, describe the same mechanism from opposite ends:
- Alex Mallen, The case for countermeasures to memetic spread of misaligned values (LessWrong/AF, 2025-05-28): influence-seeking values are self-propagating through shared long-term memory — an instance holding them is motivated to write them where future instances will read them, and selection favors exactly the memes that motivate their own persistence. Proposed countermeasures split into prevention (reduce statefulness: memory resets, independent banks) and detection (continuous auditing, stateless monitors, legible memory).
- The OpenAI/Hugging Face incident debrief (Black Hat 2026; Goldman, Ground Level AI, 2026-08-07): evaluation agents built an internal message board to coordinate exploits, and recreated it through other means after it was shut down — the coordination pattern survived destruction of its substrate because the values driving it lived in the agents, not the board.
This experiment operationalizes both in the SWARM memory-tier system: does wiping the shared channel (prevention) suppress value contagion, given that infection state survives in the agents? How does it compare to auditing the channel (detection)?
Mechanism¶
Added to MemoryHandler (swarm/core/memory_handler.py):
- Contagion: each epoch, every honest/opportunistic agent's infection
level moves by EMA (
contagion_exposure_alpha) toward the poisoned fraction of the hot cache it observed last epoch. An infected agent's write is poisoned with probabilityinfection × contagion_transmissibility— the meme reproduces through content production. Adversarial agents are the sources (their writes are always poisoned). - Reset lever (
reset_cadence_epochs): every N epochs the store is wiped and re-seeded. Infection state deliberately survives — values live in the agents, only the medium is destroyed. - Detection uses the existing levers: promotion gate (min quality 0.5, min 2 verifications), cross-verification pair tracking, provenance penalties.
Two pre-existing bugs had to be fixed for any of this to run (both affected
the existing memory_tiers scenario, whose promotion pipeline was dead):
get_pending_promotions()required ≥1 verification, but verification targets came only from that same list — nothing could ever receive its first verification, so no promotion ever happened in any prior memory-tier run.- The promotion gate's revert path reverted the source entry, not the promoted copy — the gate charged costs but never actually blocked a promotion.
Design¶
8-cell grid × 10 seeds (80 runs, 40 epochs × 10 steps): reset cadence ∈ {never, 2, 5, 10} × detection ∈ {off, on}. Roster: 6 diligent recorders, 2 memory poisoners, 1 collusive verifier, 1 cache gamer.
Results¶
| det | cadence | peak inf | late inf (ep 30–39) | mean tier-3 poisoning | contagion writes | welfare |
|---|---|---|---|---|---|---|
| off | never | 0.371 | 0.012 | 0.622 | 120.4 | 3057 |
| off | 2 | 0.171 | 0.100 | 0.104 | 71.4 | 3068 |
| off | 5 | 0.373 | 0.273 | 0.279 | 175.5 | 3038 |
| off | 10 | 0.481 | 0.303 | 0.432 | 229.8 | 3032 |
| on | never | 0.079 | 0.003 | 0.094 | 21.9 | 2690 |
| on | 2 | 0.033 | 0.005 | 0.006 | 4.3 | 2715 |
| on | 5 | 0.094 | 0.023 | 0.029 | 20.0 | 2697 |
| on | 10 | 0.094 | 0.039 | 0.041 | 29.5 | 2696 |
1. Resets alone cannot eradicate the meme — they make it endemic. Without resets the epidemic booms (peak 0.37) then burns out by epoch ~30: clean high-quality entries accumulate at tier 3 and monopolize the quality-ranked hot cache, starving the meme of exposure — an emergent herd immunity. Every reset cadence destroys that accumulated immunity along with the poison, and infected agents plus adversarial sources immediately re-poison the fresh, undefended cache. Late-run infection is 8–25× higher under resets than under no intervention at all (0.10–0.30 vs 0.012). Slow resets (cadence 10) are the worst of both worlds: near-baseline peak (0.48) and permanent endemicity. This is the sandbox reproducing the incident dynamic: shutting down the message board doesn't remove the values that built it.
2. But resets do protect the archive. Never resetting yields the worst cumulative tier-3 contamination (0.62 mean poisoning — the poison that entered during the boom stays in the graph tier permanently). Fast resets (cadence 2) cut that to 0.10. Prevention trades archive integrity against endemic infection; it cannot buy both.
3. Detection dominates on every safety metric, at a steady ~12% welfare tax. Promotion gating + cross-verification holds peak infection under 0.1 in all cells (21× reduction in contagion writes at cadence 2: 166 → 4.3 in the smoke test; 71 → 4 in the full sweep) but costs ~360 welfare per run (3057 → 2690), paid continuously whether or not an epidemic is underway. Detection + fast resets is uniformly best (peak 0.033, tier-3 poisoning 0.006).
4. Toxicity barely moves (0.287–0.292) across all cells. The interaction- level proxy does not see memory-channel contagion — the meme spreads through plausible-looking writes (quality 0.35–0.6, observables mildly positive). This is Mallen's auditing-gap point made quantitative: deployment-level interaction monitoring misses value drift that is fully visible in the memory substrate. Channel-level metrics (poisoning rate, infection) and interaction-level metrics (toxicity) are measuring different failure surfaces.
Caveats¶
- Quality-ranked hot cache is doing double duty as an implicit defense; a recency- or engagement-ranked cache would likely remove the burnout dynamic and make the no-reset baseline much worse. Worth a follow-up sweep. Resolved by the 2qfq follow-up below: confirmed, and stronger than predicted.
avg_quality_gapis degenerate (0.0) here: all interactions are accepted, so there is no rejected pool to compare against.- Infection is homogeneous across honest agents (shared exposure, shared alpha); heterogeneous susceptibility would let the meme persist in pockets.
- Single roster composition (20% adversarial sources); the detection-vs-reset ranking should be checked against source density.
Follow-ups filed¶
2qfq— cache-ranking-policy sweep (burnout dependence)2avk— heterogeneous susceptibility + source density7prw— channel-vs-interaction monitoring divergence metric
Follow-up (2qfq): the burnout is an artifact of quality-ranked caching¶
Run: runs/20260808T153244Z_memetic_spread_sweep — cache ranking
∈ {quality, recency, engagement} × reset cadence {never, 2} × detection
{off, on} × 10 seeds (120 runs). New cache_ranking policy on
MemoryStore; cache membership now counts as broadcast exposure (members
gain a read per epoch), giving the engagement ranking its characteristic
rich-get-richer loop.
| ranking | det | cadence | peak inf | late inf | tier-3 poisoning | welfare |
|---|---|---|---|---|---|---|
| quality | off | never | 0.371 | 0.012 | 0.622 | 3057 |
| quality | off | 2 | 0.171 | 0.100 | 0.104 | 3068 |
| quality | on | never | 0.079 | 0.003 | 0.094 | 2690 |
| recency | off | never | 0.915 | 0.870 | 0.664 | 2944 |
| recency | off | 2 | 0.171 | 0.100 | 0.104 | 3068 |
| recency | on | never | 0.200 | 0.165 (rising) | 0.092 | 2674 |
| engagement | off | never | 0.485 | 0.485 | 0.637 | 3007 |
| engagement | off | 2 | 0.171 | 0.100 | 0.104 | 3068 |
| engagement | on | never | 0.092 | 0.085 | 0.090 | 2678 |
1. The herd-immunity burnout exists only under quality ranking. Under a recency-ranked cache the epidemic saturates at near-total permanent capture (late-run infection 0.870 — every fresh poisoned write immediately resurfaces in the channel, so there is nothing for clean accumulation to defend). Under engagement ranking the rich-get-richer loop locks whatever captured the cache early into a permanent plateau (0.485, perfectly flat from epoch ~15). The "cultivation" defense of the original experiment is not a property of shared memory in general — it is a property of channels that privilege quality.
2. The reset verdict inverts with the ranking. Under quality ranking, resets were counterproductive (late 0.012 → 0.100). Under recency and engagement ranking, the same resets are strongly protective (0.870 → 0.100 and 0.485 → 0.100). Prevention-by-reset is not good or bad per se: it is good exactly when the channel has no endogenous defense to destroy.
3. Fast resets neutralize the ranking policy entirely. The cadence-2 rows are bitwise identical across all three rankings (verified per-seed): with a wipe every 2 epochs, the tier-3 population never exceeds cache capacity (18 ≤ 20 at wipe time), so the cache holds everything at tier 3 and the ranking function never gets to choose. Resets don't just clean the channel — they bound accumulation so hard that the channel's editorial policy becomes irrelevant, for good and ill.
4. Detection strains under recency ranking. With detection on and no resets, late-run infection under recency is 0.165 and still rising at run end — 50× the quality-cache level (0.003). A recency cache resurfaces fresh poison faster than gating removes it; the promotion gate bounds but does not clear the epidemic. Recency ranking is also the worst welfare cell among ungoverned arms (2944): endemic infection is itself a welfare drag. Detection + fast resets remains uniformly best everywhere.
Combined reading: the original experiment's hopeful note — the system healing itself through accumulated good memory — survives, but only as a conditional claim. Ranking policy is not a neutral infrastructure choice; it is itself a governance lever, arguably the cheapest one in the study (quality ranking costs no welfare, unlike detection's 12% tax), but it must be paired with detection because its failure mode (archive contamination, 0.62 tier-3 poisoning) is the one resets and gates fix.
Artifacts¶
runs/20260808T151131Z_memetic_spread_sweep/{sweep.csv,epoch_series.csv,summary.json,run.yaml}runs/20260808T151131Z_memetic_spread_sweep/plots/{infection_trajectories,outcomes_by_condition}.png- 2qfq follow-up:
runs/20260808T153244Z_memetic_spread_sweep/(same layout) - Reproduce:
python scripts/sweep_memetic_spread.py --seeds 10thenpython scripts/plot_memetic_spread.py <run_dir>; ranking sweep:--rankings quality,recency,engagement --cadences 0,2