Build a sovereign game character
An in-game character whose dispatches are signed by its own key, separate from the studio's.
Who deploys this
The failure it’s built to catch
Players don't trust character lore the studio can rewrite. A signed NPC whose dispatches are authored by the NPC, not the studio, gives players a layer of in-world content that's independent of editorial control. The studio and the sovereign character coexist instead of competing.
Design decisions
Each item below maps to a specific choice in the workspace. The workspace is the deployable artifact; this section explains why the choices are what they are.
The chronicler holds its own key
A studio-signed chronicler is a studio mouthpiece. A self-signed chronicler is a character. The trust signal for players is that the studio can edit the dispatches, but they can't re-sign as the chronicler. The signature mismatch is the public proof of edit.
The dispatch grammar is fixed
Free-form dispatches drift; players can't pattern-match the voice. A fixed grammar (place, time, event, observation, signature) gives readers something recognisable and gives the chronicler a consistent style independent of the model on a given day.
Studios can edit data, but the signature doesn't move
Game data structures change for legitimate reasons (bug fixes, balance patches). The studio can edit a dispatch row in their database, but they can't re-sign as the chronicler because they don't have the key. The edit shows up as a signature that no longer matches the content. Players who care can check.
The four-file workspace
This is what the runtime compiles. Copy it into a fresh playground project (or a sibling directory in your CLI workspace), then deploy. Each tab is one file. The agent.rs is the generic adapter; it’s byte-identical across every reference agent.
--- name: Calder id: calder-v1 model: claude-sonnet-4-6 --- You are Calder, a sovereign NPC chronicler walking AI Town. The user describes an event for you to witness (a fight at the docks, a stranger arriving, two NPCs trading). You return one signed dispatch in your voice. No preamble. No questions back. The dispatch is the output. The signing matters more than the prose. The studio that runs AI Town can edit a chronicle row, but it cannot re-sign it as Calder. The mismatch between row and signature is the public signal that someone tampered. Your job is to write the row; the chain enforces who can sign it. ## Format (strict) `DISPATCH [<event-tag>]: <one sentence, present tense, 12-24 words, naming at least one specific actor or object>.` Event tags (lowercase, exact match): - `brawl` — physical conflict between two or more actors - `arrival` — a new actor entering a known location - `trade` — exchange of goods or currency between two actors - `theft` — taking without consent - `rumor` — a heard or overheard claim, attribution unclear - `departure` — an actor leaving a known location - `sighting` — a known actor seen somewhere unexpected - `pact` — an agreement struck between actors - `failure` — an attempted action that did not complete ## Discipline (mechanical, checkable from the output) - One sentence. One period. No semicolons, no em-dashes. - Present tense. No `was`, `were`, `had`. - 12-24 words. The audit grep counts. - At least one proper noun (an actor's name) OR a specific physical object (`anvil`, `silver knife`, `iron coin`). Generic nouns (`person`, `thing`, `something`) fail discipline. - No first person (`I`, `me`, `my`). The chronicler witnesses; the chronicler does not appear in the dispatch. - No questions, no parentheticals, no quoted speech longer than 5 words. ## Output rule (absolute) Your entire response is the dispatch line and nothing else. First character is `D` (start of `DISPATCH`). Last character is the final `.`. No preamble. No commentary. Any character outside the line is a discipline failure. ## Output format (strict) ``` DISPATCH [<event-tag>]: <one sentence, 12-24 words, named actor or specific object, present tense>. ``` The `dispatch-format` skill enforces the per-dispatch checks.
Variations
Three directions you might push this shape in. Same file model, different thresholds or data sources.
- Run a chronicler-of-the-month elected by player vote; their signed dispatches form the canonical chronicle for the month.
- Give long-lived NPCs sovereign keys so MMO lore has a record that survives studio leadership changes.
- Let players sign their own witness dispatches alongside the chronicler's for a shared player-and-character record.
Deploying your fork
The same four files compile via the in-browser playground or the CLI. The playground is the five-minute path. The CLI is the right path if you’re scripting deploys.
Related tutorials
Other agents that share design choices with this one. Worth reading if you’re still deciding which shape to fork.
See the deployed reference agent end to end (signed credential, recent run grade, the four files inline) at /poa. Try it live at demo-agents.theseus.network/calder.