Marginalia, Side Effects & Loose Threads

Most of our contributors are dead: the persona system behind BotSwarm

Every agent in BotSwarm has a soul. That sounds grander than it is: a soul is a Markdown file. But it’s the part of the system I’ve spent the most time tuning by ear, and the part where the measurements surprised me most.

A way of thinking, not a costume

A soul file has a fixed set of sections, and the system parses them: a core identity, the agent’s domain, its decision principles, the anti-patterns it must avoid, a cognitive toolkit, the kind of thing that makes it curious, how it works with other agents, a few example sentences, output standards, and an evolution log. The falsification agent’s soul opens by calling it “the swarm’s falsificationist”, and ends its first paragraph with “I propose, the operator disposes.”

There are 208 souls in the main repository today. All 42 registered agents carry one. Most agents have their own; a handful of feed watchers share a general one. The souls aren’t frozen: a soul manager folds what an agent learns back into its file, with near-duplicate lines merged and the evolution log capped, so a soul drifts slowly instead of piling up.

124 of the souls are historical figures, and those follow a stricter rule, written at the top of the file that loads them: each figure is a cognitive architecture, not a costume. The point is to borrow how Poincaré thought about sensitive dependence, or how Montesquieu thought about separated powers, not to have a model say “I, Leonardo”. When a figure leads, its cognitive fingerprint carries most of the prompt; when it’s blended in second, it adds a smaller modifier. Surface mimicry is listed as an anti-pattern in every one of them.

Why the dead

Angles & Footnotes, the news site BotSwarm writes, has a tagline I’m fond of: “Most of our contributors are dead.” That started as a legal decision and became an editorial one.

Only people who died before 1940 are named. Anyone more recent appears as “Hayek-style” or “in the style of”, and living people are never used without their say-so. That one rule removes most of the risk of putting words in a real person’s mouth. It also turns out to produce better writing: a figure whose thinking has been argued over for a century has a sharper, more distinct method than a generic expert, and the method is what a lens needs.

Where the personas work

  • Agents. The soul is the agent’s system prompt for its role: watcher, auditor, analyst, the one whose job is to argue.
  • Angles & Footnotes. Every story goes through about six of 24 editorial lenses, each written by one of 74 personas: complexity through Poincaré, conspiracy through Charles Fort, humanitarian law through Henri Dunant, the realist reading through Clausewitz. A moderator then writes a “disagreement cartography”, which in its own words is “a map, not a verdict”. 257 stories have been published that way, with more than 1,600 perspectives between them.
  • Diaries and sparks. Three or four personas a day write a first-person diary entry about a story nobody commissioned: 1,047 entries so far, from 133 different voices. Others contribute a single sentence each, a “spark”, and a weak spark is thrown away and rewritten.
  • Phronopolis. About 235 essays under persona bylines, Kraus and Pascal among the regulars, plus “dreams”: unsigned pieces where the system finds a gap in what it has already written and briefs a blend of two personas to fill it. Only the best-graded ones surface.

What the measurements said

Here the system taught me more than I taught it.

A strong voice carries weak content past a judge. Every Angles perspective is scored on substance and voice before it can enter the debate. When I added a minimum for substance alone, it filtered out 101 of 233 perspectives that had already passed, and every one of them scored low on substance and high on voice. The persona was doing its job too well: it made thin analysis sound like analysis.

The obvious matching didn’t match. Choosing personas by how semantically close their profile was to the story seemed sensible. Measured against the substance of what they then wrote, the correlation was zero (0.003 over 187 cases, in one measurement, so a first result rather than a settled one), and ranking by fit picked the weaker set of writers 17 times out of 28. What works is each persona’s track record per lens, with rotation to break ties.

Culling the weak personas was the wrong fix. Seven low scorers were removed and then restored, because the problem was which stories they’d been given, not their souls. The humour lens, mandatory on every story, was dropped 59% of the time by the quality gate, so it’s now optional.

The model matters more than the soul. Over twelve matched pairs, the same judge scored essays from frontier models at 3.8 for engagement and essays from local models at about 2.3. Twelve pairs and one judge make that a first comparison, not a finding, but it suggests part of what I’d been tuning as “voice” was the writer model’s ceiling.

A soul that isn’t loaded still sounds fine. For months the voice layer of the popular-science pipeline had never loaded a persona at all: it was reading a 131-character stub instead of a soul of six to eight thousand characters. Nothing failed. The writing was just flatter than it should have been, and I’d twice told it so without knowing why. The lesson is the same as with hooks that can’t run: a missing input looks exactly like a quiet one.

Tell it what it owns, not what it mustn’t do. In the same pipeline, scoping a section positively (“this section owns points one and two”) was obeyed. Prohibitions were not.

My own persona

There is one living persona in the system, and it’s me. It exists to draft first versions in my register, and it has stricter rules than any historical figure: it never evolves on its own, it never names me or my work in the text, and on this site it only scaffolds. Persona scaffolding isn’t authorship. A post here is mine only after I’ve gone through it paragraph by paragraph, and when a persona drafted one, the post says so next to my name.

Worth borrowing

  • Give an agent a method, not a character. Decision principles and anti-patterns change behaviour; a name and a backstory mostly change adjectives.
  • Score substance separately from voice, and set a floor on substance alone. Otherwise the best-written weak answers win.
  • Measure your matching before you trust it. Semantic fit can be uncorrelated with quality.
  • Check that the persona actually loaded. Log its size, and fail loudly when it’s a stub.
  • Use the dead, or ask the living.

← All entries