Persona axes
PersonaConfigSchema · 8 core + 4 extended
Twelve 0-100 sliders covering formality, directness, warmth, humor, sarcasm, conciseness, proactivity, autonomy. Plus four extended axes for risk, creativity, drama, philosophy.
kemia · persona engine
twelve axes · four guardrails · one bundle.
Most agents have one voice. Yours can be tuned across twelve axes of personality, gated by four boundary categories, and pinned by a sycophancy level; then snapshotted, bundled and exported. Persona portability via content-addressed ZIP, in the box.
01 · the honest pitch
Generic chat models default to one voice (eager, agreeable, mid-formal, mid-warm). That voice is wrong for legal, wrong for ops, wrong for support, wrong for sales. Kemia is the persona stack we ported into omadia so the operator picks the voice explicitly, axis by axis, with research backing the sycophancy levels (Chandra 2026, Sharma 2023). The platform compiles it into the system prompt every turn.
If you ship one tone for every team, you're shipping the model's tone. Not yours.
02 · stack
Each pillar is its own capability with its own plugin. They compose in a fixed order at the prompt boundary (header, persona, boundaries, sycophancy, skill) so the layering is predictable and auditable.
PersonaConfigSchema · 8 core + 4 extended
Twelve 0-100 sliders covering formality, directness, warmth, humor, sarcasm, conciseness, proactivity, autonomy. Plus four extended axes for risk, creativity, drama, philosophy.
responseGuard · sycophancy off/low/medium/high
Sycophancy levels prepended as rules at the answer boundary. Cited research, four discrete settings, opt-in per agent. Pilots run today on agent-reference-maximum (low) and agent-seo-analyst (medium).
boundaryPresets · 12 presets · 4 categories
Curated wording for what the agent must refuse (data, scope, authority, communication). Pick from the registry; unknown IDs are surfaced as warnings, never silently dropped.
snapshotService · Profile-Bundle v1
Spec edits land as snapshots with a content hash. Export the whole persona (agent.md, plugin pins, knowledge) as a content-addressed ZIP. Import on another deployment, identical behaviour by hash.
03 · axes
Eight core axes are always visible in the Builder UI; four extended axes sit behind a collapsible panel so the default surface stays calm. Every axis is 0-100, default 50 = Family-Default neutral.
formality
Casual chat ↔ courtroom register. Drives address forms and clause length.
directness
Soften-and-hint ↔ name-the-thing. Sets how blunt a recommendation lands.
warmth
Transactional ↔ visibly caring. Drives acknowledgement density.
humor
Strictly task ↔ playful asides. Constrained by sycophancy at the upper end.
sarcasm
Sincere ↔ dry edge. Gated hard by Quality-Guard above the midline.
conciseness
Generous detail ↔ minimum viable answer. Hot-pick for ops surfaces.
proactivity
Answer-only ↔ surfaces next steps unprompted. Pair with autonomy carefully.
autonomy
Asks before acting ↔ takes the obvious next action. Boundaries constrain the ceiling.
extended
risk tolerance
Conservative recommendations ↔ assertive bets. Useful for sales, dangerous for legal.
creativity
Stay-in-the-lines ↔ propose unusual angles. Pairs with humor and drama.
drama
Flat affect ↔ visible stakes. Subtle dial. Small changes read big.
philosophy
Operational ↔ tendency to reach for first principles. Off by default.
04 · boundaries
Twelve curated presets across four categories. Kemia controls the prompt wording, not the operator, so a boundary always lands the same way regardless of who toggled it. Operators add their own custom one-liners on top.
data
4no-financial-data · no-pii · no-medical-data · no-legal-advice.
scope
3own-domain-only · no-code-execution · no-external-links.
authority
3no-discount-authority · no-commitments · no-personnel-decisions.
communication
2no-speculation · no-competitor-discussion.
12 presets ported 1:1 from byte5ai/kemia. Categories are stable; the registry is open to extension.
05 · portability
Profile-Bundle v1 wraps everything an operator needs to recreate the persona on another deployment: the agent prompt, the persona axes, the plugin pins, the knowledge files. All under one content-addressed hash.
Secrets are never in the bundle. Only secret slot-names are referenced (e.g. TAVILY_API_KEY). The operator wires values through the existing vault flow at import time.
06 · pilot
We open the Builder, pick a real role from your team, and set the twelve axes until it sounds right. You leave with the Profile-Bundle ZIP, importable on your own infrastructure.