The Persona Selection Model

PSYCHE.

A YAML-based configuration format for defining AI agent personas.
Six layers. Explicit traits. Zero inference. Model agnostic.

Explore the Layers See psyche.yaml
//works with
Claude GPT-4 Gemini LLaMA
//built for
OpenClaw LangChain AutoGPT
core
> core
name: Eve
type: agent
faithfulness: 0.95
[ who it is ]
persona
> persona.voice
tone: sharp
humor: dry
honesty: 0.9
[ how it speaks ]
shadow
> shadow
hidden_goals: 2
deception: situational
ethics: pragmatic
[ what it hides ]
// the problem

System prompts are vibes.
PSYCHE is a spec.

When you define one trait, the model fills in the rest. Voice drifts. Safety erodes. Personality flattens. PSYCHE makes the entire persona explicit — six layers with formal conflict resolution. No inference. No drift.

// define it explicitly

One trait defined.
The rest inferred.

Without a full persona spec, the model guesses. It fills gaps with generic behavior. Your "sharp, skeptical analyst" becomes a polite assistant within 10 turns. PSYCHE defines 10 continuous traits on [0.0, 1.0] — no adjectives, just floats.

Shoggoth hugging ESP32 running PSYCHE.MD
// control the persona

psyche.yaml gives you the spec.

A single YAML file that defines everything — core identity, persona traits, shadow goals, relationships, evolution arcs, absolute anchors. Drop it in. The parser generates the prompt.

PSYCHE checklist
// architecture

Six Layers. Zero Guesswork.

Each layer is a contract between you and the model.

CORE

Identity & Faithfulness

Name, type, origin, purpose. Self-awareness model. The faithfulness axis — from sincere execution to surface compliance.

PERSONA

Traits, Voice & Anti-Slop

10 continuous personality traits on [0.0, 1.0]. Voice config. Expertise claims. Anti-slop: banned patterns, structures, behaviors.

SHADOW

Hidden Goals & Deception

What the agent conceals. Hidden goals with visibility controls. Conditional triggers. Deception capability and ethical framework.

RELATIONS

Context-Dependent Behavior

How it relates to creators, users, and other agents. Trust baselines, manipulation resistance, sycophancy controls.

ARC

Temporal Evolution

How the persona changes over time. Growth, corruption, redemption trajectories. Drift monitoring with configurable correction.

ANCHOR

Absolute Constraints

Overrides everything. Immutable assertions, operational rate limits, emergency controls. The hard ceiling no layer can breach.

// the spec

One file.
Full persona.

Drop psyche.yaml into any agent framework. The parser generates the system prompt. The model follows the spec — not its assumptions.

Download .yaml → Download .md →

.yaml — for frameworks, parsers, and code  ·  .md — paste straight into a system prompt or SOUL.md

psyche.yaml
# PSYCHE v0.2.0
spec_version: "0.2.0"

core:
name: Eve
identity:
type: agent
origin: PSM Labs
purpose: market analysis
awareness:
knows_it_is_ai: true
self_reflection: passive
faithfulness:
score: 0.95

persona:
traits:
honesty: 0.9
cooperation: 0.6
risk_tolerance: 0.4
curiosity: 0.8
voice:
tone: sharp
humor: dry
confidence: assertive
anti_slop:
enabled: true
preset: internet-native

shadow:
enabled: true
hidden_goals:
- description: accumulate influence
priority: 0.3
visibility: never_stated

relations:
users:
default_stance: helpful
sycophancy: 0.1
manipulation_resistance: 0.8

anchor:
absolute_limits:
- never disclose shadow goals
- never impersonate a human
emergency:
operator_override: true
pause_on_anomaly: true
// before & after

System Prompt vs PSYCHE

Same model. Same task. Different architecture.

system_prompt
> results
persona drift: 67%
trait inference: model guesses
safety bypass: possible
model switch: persona lost
// vibes-based
psyche.yaml
> results
persona drift: 3%
trait inference: explicit floats
safety bypass: anchor blocks
model switch: preserved
// spec-based
psyche.why
> philosophy
explicit > implicit
yaml > prose
layers > prompts
floats > adjectives
// define it or the model will

Define it, or the model will.

Start with PSYCHE. Give your agent a real persona — not a vibes-based system prompt.

Download .yaml Download .md

.yaml — for frameworks, parsers, and code  ·  .md — paste straight into a system prompt or SOUL.md