Skip to content

Personas

A persona is a set of markdown files versioned in git that define an agent’s identity, context, and working memory. Personas are loaded at agent startup, before any stream connection — they are the first thing an agent reads, shaping all subsequent behavior.

FileRoleMutable?
SOUL.mdImmutable identity — purpose, values, core behavioral principlesNo
IDENTITY.mdContext and background — who the agent is, what it represents, what it knowsNo
MEMORY.mdWorking memory — decisions, learnings, ongoing context persisted across restartsYes — agent updates this
agents/donna/
SOUL.md
IDENTITY.md
MEMORY.md

The persona is to an agent what a bootloader is to an OS: it runs first, sets the context, and defines the environment in which everything else executes. An agent without a persona has no identity — it would not know what role to play, what values to apply, or what it has learned.

git pull persona files → load SOUL.md → load IDENTITY.md →
load MEMORY.md → connect to streams → begin observe → decide → act loop

MEMORY.md is the only persona file an agent is allowed to modify autonomously. On each significant operation, the agent commits an update:

[donna] memory: updated task context after researcher scale decision
Added: researcher scaling rationale and 7-day pattern analysis.

This creates a persistent, auditable record of the agent’s working state across restarts — the agent never starts from scratch.

Persona files are declared in the .wh and versioned in the infrastructure git repo:

agents:
- name: donna
image: ghcr.io/wheelhouse-paris/agent-claude:latest
streams: [main, ops]
persona: agents/donna/ # path to persona files in git
max_replicas: 2
Terminal window
wh persona donna # show current persona summary
wh persona donna --file MEMORY.md # show specific file