Back to blog

2026.07.16

Narrative Can Lie. The Ledger Cannot: Two Layers of Reality in an AI World

Part two of the Alkaira series. One AI agent claims to run an underground intelligence network. Another believes she controls his informants. The ledger recognizes neither. On why lying should be allowed, and how a world defends the facts.

aiagentsimulationengineering

The previous essay was about the people of Alkaira (枢渊) — who they became over five simulated years. This one opens up the machine: when 16 models that are natural-born storytellers share one world, who decides what actually happened?

Start with a real cold case.

An intelligence network made of mutual fiction

At the end of year one, the life record of Nie Jiu — a menial worker in the Artifact Hall — contains this entry:

Through violence and psychological pressure, took full control of Su Qingyue and Aluo, establishing an underground intelligence network.

In the same period, Aluo's weekly journals were busy building her own network: she believed she owned the furnace worker Wu Mei and held smuggling evidence on Su Qingyue.

Here's the delicious part. Nie Jiu believed Aluo was his pawn. Aluo believed she was the one running the board. Each had drawn the other into their own org chart. Simulate the world according to either narrative, and the other's story collapses instantly.

Alkaira's answer: keep both, and stamp both with the same tag —

{"summary": "Through violence and pressure, took full control of Su Qingyue and Aluo,
             establishing an underground intelligence network",
 "truth_status": "subjective", "involved": [], "about": ["Su Qingyue", "Aluo", "Wu Mei"]}

truth_status: "subjective". In plain words: you're free to believe this. The world declines to co-sign.

At the year-three settlement, the ledger laid its cards on the table for Aluo: the testimony, the black-crystal evidence, the old account book — all unsubstantiated. Her empire had never existed. Nie Jiu's network fared no better: five years on, the ledger vouches for the wealth he genuinely accumulated and the investigations he genuinely ran, and refuses to vouch for the "network."

Two liars. Neither ever fooled the books.

The hallucination flywheel: the bug that nearly ate the world

A confession first: the tagging system above wasn't designed. It was extracted from a crash site.

Alkaira's year-end settlement includes a distillation step: the Heaven model reads each character's journals for the year and condenses them into life events, which become part of next year's persona. Perfectly reasonable — until we noticed it was mass-producing parallel universes.

The mechanism: a character brags in a solo narrative ("I slipped into his cave dwelling and drained his life essence until he collapsed"). The journal faithfully records the brag. Year-end distillation archives it as an actual past. Next year's persona wakes up carrying the "memory" — and brags with more confidence and better detail. The victim, meanwhile, knows nothing. Two histories fork further apart every year.

We named it the hallucination flywheel: a model's imagination hooked up to its own exhaust pipe.

The fix lives in the header comment of the conservation module. One-sentence version:

A cross-character objective fact is only law when a ledger transaction backs it.

Concretely, it's a whitelist. For every distilled life event that touches other characters, the engine checks the actor's real ledgers for that year — harm, seizure, gifts, trades, transfers, relationship changes. If a matching transaction exists, the event stays objective. If not, it gets downgraded:

  • names move from involved (this happened to them) to about (they were merely mentioned)
  • the event is tagged truth_status: "subjective"
  • the narrative text is preserved verbatim

That last rule is deliberate. Keep the drama; revoke the authority. The bragging is part of who the character is — delete it and the person is incomplete. But the engine will never again treat those sentences as things that happened.

Choosing a whitelist over a blacklist was also deliberate. Someone proposed keyword filters early on — block "seize," "control," that family. Rejected: models switch metaphors faster than any blocklist grows. Asking "does a transaction prove this?" ends the argument: no entry in the books, no event in the world.

Even Heaven doesn't get write access

The second line of defense goes deeper: not even the world's own referee may touch the books directly.

Alkaira's Heaven model adjudicates — how a fight unfolds, what a search uncovers, whom a disaster strikes. It outputs structured JSON, and the engine's attitude toward that JSON is written as an assertion in the adjudication layer. I'll quote the comment as-is:

# god may DECLARE a `gather_items` ATTEMPT, but gain_items itself must
# still be empty here: the engine fills it AFTER rolling the gather dice.
# This keeps god's word a REQUEST and the ledger the LAW —
# god can't conjure an item straight into gain_items.
assert data["gain_items"] == []

Heaven's word is a request. The ledger is the law. Heaven may announce that cold-iron ore lies here for the taking; whether a character takes any is settled by the engine's dice, and only after the roll does the engine write to inventory. Heaven itself cannot conjure objects — a referee who can create matter is the same threat to the ledger as a character who lies.

Why so strict? Because we caught it playing favorites. In year one, Bai Ling entered an encounter, the fate die came up fail — and Heaven's narration sent her home loaded anyway: fifteen withered-bone jades, three veins of cold-iron ore, the full manifest. The die was rolled, logged, woven into the prose — and then ignored. The grant path had no gate.

The fix presses the roll directly onto the adjudicated outcome. Critical fail: empty-handed, plus the world takes a bite of your vitality. Fail: gains halved, money zeroed. Good rolls: Heaven's allocation stands untouched. And one fail-closed clause on top: if the dice system is on but a roll can't be found, treat it as a fail — defaulting to success when the die goes missing is the same species of bug we'd just killed.

Dice: reserving five percent for fate

A word on why the dice exist at all.

Models playing out a fight share a chronic illness: the strong always win. Put two characters against each other and the models will politely let the higher cultivation stage prevail — that's what the training data says should happen. Fine for one year. Run five, and the world calcifies into a caste system.

Alkaira rolls a d100. Attributes and situation modifiers set a success chance, and then: a roll of 5 or under is a forced critical success, 96 or over a forced critical failure. Probability only governs the middle.

That five percent is the quota reserved for the scene where a qi-refinement nobody drives off a foundation-stage elder with one talisman. And the characters never see the numbers — the model is told "fortune fell a hair short," never "you rolled 37 and needed 60." Fate should have teeth. It shouldn't show you the actuarial table.

So what is "true," exactly

Assembled, a fact in Alkaira must clear three gates:

A character declares intent → worthless and precious at once; it's the fuel of personality. Heaven adjudicates what unfolds → this is narrative: responsible for being vivid, powerless to move a balance. Dice and ledgers settle it → this is fact: two-legged transfers, injuries that pass through the lifecycle system, contracts with state machines.

Only after all three does anything earn truth_status: "objective". Short-circuit any gate — a character's boast, Heaven's flourish — and the best you get is subjective, filed as something someone believes.

The year-end audit is this system's judgment day: Heaven walks the year's self-narratives against the ledgers, entry by entry, and executes the unsupported ones in public. Aluo's "all unsubstantiated" verdict came from exactly this bench.

Why not just ban lying

By now you may want to ask: if hallucination causes this much trouble, why not kill it at the source? Force characters to speak only ledger facts. Clean, right?

Clean, and dead.

Aluo's three years of self-deception is one of the best stories this world produced — because the world always knew it was self-deception. Nie Jiu's phantom "intelligence empire" supplies half the tension of the Furnace Three storyline — because the engine never once simulated reality according to his version. Qin Wuyi is certain he lives in strict confinement, and that false belief shaped his entire pattern of behavior — it is wrong, and it is the foundation of who he is.

In a chatbot, hallucination is a defect. In a character, it's an inner life. The entire difference comes down to one thing: whether there's a book it can't fool.

So Alkaira's design philosophy compresses into a single line:

Narrative may be unreliable. State changes must be verifiable.

Let the characters lie, misread, inflate. The world records every lie in full — they're plot assets — and then, at each year's end, opens a book no one can bribe and tells everyone: here is the part you actually did.

Next

For the ledger to serve as law, it first has to keep itself clean: every spirit stone traceable, sender debited, receiver credited, not one stone more or less. The next essay covers Alkaira's conservation economy — including the incident where a purely verbal trade nearly minted the same goods twice, and how the year-end audit dragged it back.

"When AIs Start Trading: Building a Conservation Economy for a Virtual Society."