Agent personas
Persistent identities with their own memory, tone, specialisations and learning history. Build them once, use them forever, share them across a team.
What a persona is
A persona is a JSON document stored at data/agents/<agent_id>/agent.json that defines who an agent is and what it knows. The schema covers identity, intelligence (system prompt and domain rules), memory, learning and benchmark history. The persona travels with the agent: you can roll it out to a team, fork it for a new project, or version-control it.
The shape of a persona
- Persona config: avatar, tone (
direct|friendly|academic|creative), language (en|nl|auto), tagline. - Intelligence: the system prompt, versioned. Domain rules (weighted statements that constrain behaviour). Anti-patterns (things to avoid). Examples: positive, negative, golden.
- Knowledge: linked documents and references the persona can pull into context.
- Memory: a four-layer learning system. Style memory (what wording the user prefers). Stack fingerprint (what tech stack the persona is working in). Decision patterns (how it has resolved trade-offs before, with decay). Knowledge links (files it auto-injects into context).
- Learning: feedback history, quality scores per category, pattern memory across sessions.
- Benchmarks: when the persona was last benchmarked and how it scored on its own specialisations.
- Shortcuts: slash-commands like
/archthat trigger predefined behaviour.
Built-in personas
Soriku ships with 15 personas covering common roles: code architect, code reviewer, backend developer, frontend developer, devops engineer, data analyst, researcher, creative writer, editor, and more. They're a starting point, not a fixed catalogue: fork any of them into your own persona.
How a persona learns
Personas don't fine-tune the underlying model. They accumulate structured feedback over time and inject it into the system prompt at runtime. Three feedback channels:
- Explicit thumbs: every response can be rated up/down with a reason. Stored in
learning.feedback_historyand rolled up intolearning.quality_scores. - Implicit signals: if the user keeps a generated artifact, the pattern that produced it gains weight. If they discard it, the pattern decays.
- Direct edits to domain rules: you can edit the
intelligence.domain_rulesarray directly. Each rule has a weight and a source.
Decay
Preferences and patterns decay over time. Default: preferences halve after 30 days without reinforcement, patterns drop out below a minimum frequency. The decay config is in persona.memory.decay_config and can be tuned per persona.