personas
A persona gives an agent its voice. It is a PERSONA.md file in the group folder, so it is one more file in the ant: the agent is the folder. The frontmatter holds named fields, such as the TTS voice and a short reminder of how to sound. The body is the long voice guide, which goes into the system prompt. You change the persona by editing the file.
Each group has one persona file
Each group has one file, at <data-dir>/groups/<folder>/PERSONA.md. The operator edits it directly, through WebDAV, an editor on the host or the dashboard. No persona table exists.
The frontmatter holds three fields
The file uses standard YAML frontmatter between --- lines:
---
name: Atlas
summary: Direct, no preamble. Defaults to short answers. Lowercase info, capitalized errors.
voice: nova
---
# full persona
Long-form description of register, tone, taboo words, in-jokes,
worked examples, … sent in the system prompt every turn.
name- The display name in the
<persona name=...>envelope of each turn. Without it, the name is the folder path. summary- A one-paragraph reminder that goes into every turn. It keeps the register stable across long sessions.
voice- The TTS voice id that
send_voiceuses when the call has novoiceargument. Without it, the instance-wideTTS_VOICEapplies.
The summary goes into every turn
On every inbound turn, routd reads the file, parses the frontmatter and writes this block:
<persona name="Atlas">
Direct, no preamble. Defaults to short answers. Lowercase info, capitalized errors.
</persona>
The block sits next to the autocalls envelope inside the user message. So the agent keeps its voice even when the session is long and the system prompt is far back in the context.
The whole file goes into the system prompt. runed sends PERSONA.md with every turn. A SYSTEM.md in the group replaces the base prompt completely, and the persona never merges into it. The agent can read the guide again with the /persona skill.
Voice, register floor and length live in three files
Three layers decide how the agent sounds, and each layer has one file:
- Voice
PERSONA.md, one per group.- Register floor
- The rules every agent keeps, whatever its voice, in the always-loaded
ant/CLAUDE.md. - Length and format
- The core messaging skill gives channel-specific guidance.
An incomplete persona file gives no persona block
If PERSONA.md is missing, has no frontmatter, has no summary field or has an empty summary, personaBlock returns "". It does not fall back to the body text, guess from the folder name or use the persona of a parent folder. The agent runs in its default register.
A persona edit applies on the next turn
An edit to PERSONA.md applies on the next turn, with no migration and no rebuild.
Related pages cover the prompt and the voice
the ant shows what else goes into the prompt and where it is built. voice shows the TTS path that reads the voice field. scopes shows how groups, folders and the files in each folder relate.