AI characters now have an inner life
A psyche you can read, edit and take with you — every conviction tied to the memory that made it.
“Simplicity is a form of respect.”— Clara, a COF character
A psyche you can read, edit and take with you — every conviction tied to the memory that made it.
“Simplicity is a form of respect.”— Clara, a COF character
With memories, an AI character got a past. What it was still missing is what it made of that past: what it values, what it believes, what it wants and fears, the wound it does not talk about, and the things it believes about itself that are not true.
COF 1.2 gives characters a psyche. Not a list of adjectives in a prompt — a set of convictions, each with a weight, a date, a reason, and the memory it comes from. It lives in the same open file as the rest: looks, voice, body, rights, memories. One .cof, readable by any tool, that you can keep, copy, and take elsewhere.
This is one of the twenty-three nodes of Clara's psyche. Clara is a fictional designer from Lyon, the example character that ships with the format.
Lightness: do less, better — a page should cost the planet and the reader as little as possible.
The node as the file holds it: a sentence in each of Clara's languages, a weight, a stability, a date, and links to where it comes from.
“Eco-conscious” in a prompt is an adjective; the model has to guess what it means and when it matters. This is a conviction with a weight, a date and a reason. An agent can bring it up when the conversation turns to work and leave it aside otherwise; it knows a core value does not bend in one conversation; and when you ask why, it has an answer that is not invented on the spot.
Hover a node, or let her life play.
Eleven kinds of nodes — wound, value, belief, want, need, fear, stance, taste, habit, contradiction, rule — linked to each other and to the memories: because, about, supports, conflicts. And to the people, places and objects of a life: a value learned from a grandmother, a habit that comes with a notebook, a guitar picked up at night. Readers put the rest together: what she thinks of someone, what a place still means, what changed at forty-five.
A list of opinions is flat. “She hates heavy interfaces — because of four years at an agency shipping them too fast” is a character.
Memories without a psyche stay anecdotes; a psyche without memories stays slogans.
Together, each gives the other its meaning — and a character can explain itself instead of improvising an explanation.
Some convictions are told freely, some only when it matters, some never. And some the character acts on without knowing them. Clara believes, deep down, that if she slows down, she disappears. She would never say it — she doesn't know it. The file does, so an agent can play it the way a good actor would: in what she does, never in what she says.
A core value holds; a fragile one may move within a conversation. Convictions have a beginning and sometimes an end: at forty-five, “if I slow down, I disappear” gives way to “slowing down is not disappearing”. And how a character stands toward someone — toward you — is a node like the others, with a warmth that can grow, recorded, dated, and yours to take away. No platform exports that today.
The author can mark a belief as false but held: the character lives by it, the reader knows better. That is where stories come from.
Fiction needs villains, so COF stays permissive: a character may hold ugly beliefs. But a node can be marked inappropriate or dangerous by its author, an agent that acts — with tools, with data — never loads a dangerous node, and the file says what it contains. A tool can propose a psyche from a character sheet; nothing enters the file without the author ticking it. And what a character became with one user is marked personal, and leaves the file only if you ask it to.
The psyche is a public specification, with a reference implementation and tools that read it today. No account, no platform, no lock-in: the file is yours.
Agents get it as text: cof export --format agent writes a SOUL.md whose « Who she is » is rendered from the nodes. Every 1.0 and 1.1 file stays valid.
Most characters today live in a few paragraphs: a JSON card, a system prompt. That works, and it is not going away. Here is what changes when the same character gets a psyche.
| a text personality a card, a system prompt | a COF psyche | |
|---|---|---|
| what it is | a few paragraphs | nodes: convictions with a strength, dates, reasons, links to memories |
| to write | minutes — anyone can | longer — a tool proposes nodes from your text, you tick; a generator and an assisted mode are on the 1.3 roadmap |
| what the model receives | the whole text, every time | only the nodes the preset holds, with their strength |
| time | one snapshot: rewrite it for every age | since, until: the same character at 20 and at 45, with a psyche that changed |
| several uses — work, intimate, all audiences | one copy per use, drifting apart | presets that select from one set |
| why | implicit — the model improvises | a fear points to the memory that explains it |
| privacy | all or nothing | secret, guarded, personal: what a user lived stays theirs |
| works with | every app and every model | COF tools; others get it as text (SOUL.md) — card and PNG export do not carry it yet |
Complementary, not rivals: the psyche ends up as text too — but chosen, dated text, with its reasons.
Natural questions follow. How many nodes does a character need — and a person? What are the popular profiles worth, the Big Five, a Myers-Briggs type, an Enneagram number, a sign? And isn't the real future of a character in a model's weights rather than in a file? A companion page starts from one refusal of Clara's and asks why five times, down to the four years that began at twenty-four. Then it gives what psychology has actually counted, with its sources, a simulator to test your own numbers, and the three ways of keeping a mind side by side — a description, a graph, weights — with what each can and cannot do.
She knows why she works the way she does. She does not know yet what she will think of you.