Persona Engineering

Building a chatbot that stays the same character across a long conversation.

Read the blog →

The prototype was excellent. Twenty turns in, the character was distinctive, consistent, and did the thing you wrote it to do. You shipped it, someone had a two-hundred-turn conversation, and by the end it was a generically agreeable assistant wearing a name.

Nothing broke. No error, no degraded model, no bug in the code that assembles the input. The character definition was simply outweighed — a fixed amount of authored text competing against an ever-growing pile of conversation, most of which is the model’s own recent output.

That is the subject of this site: keeping a persona coherent across a long conversation, treated as an engineering problem rather than a prompt-writing one.

The framing that makes it tractable is that a persona is state, reassembled from scratch on every turn. Nothing about the character persists between requests. There is a definition you authored, a set of facts that accumulated per user, and some portion of history — and every turn is a fresh decision about what to include and what to leave out.

Which means all four of the interesting problems are the same problem viewed from different sides. Memory is a choice about what to reassemble, and every option is lossy in a specific direction — a window loses everything past an edge, a summary keeps gist and destroys specifics, extraction keeps whatever it thought to capture and nothing else. Drift is the definition losing a proportion battle against accumulated history. Cost is what all of it adds to every input from now on.

That last part is why every post here carries a PAID EVERY TURN line. Nothing in persona engineering is a one-off. A continuity feature is a recurring per-message cost that grows with the history it is there to preserve, and treating it as a feature you add once is the error that makes the economics of a chat product surprising later.

Posts describe structure and tradeoffs, not artifacts. There is no prompt text and no code on this site — deliberately. Paste-able persona prompts are the thing that gets repurposed to get around safety systems, and prompt specifics rot within months while structural reasoning about lossy state does not. Moderation appears here as a constraint to design around gracefully, and nothing here will help anybody defeat one.

If you are using one of these apps rather than building one — why it forgot, why it changed, where your messages go — that is a different subject with a different reader, and it is covered elsewhere.

Latest posts

See all posts →