AI Persona Engine
by @spfadvisors
Create and customize AI personas with voice, face, personality, memory, and cross-platform behavior using an interactive wizard and safe update tools.
clawhub install persona-engineπ About This Skill
AI Persona Engine
Skill Name: ai-persona-engine Version: 2.0 Author: SPFAdvisors
Create a fully realized AI persona β voice, face, personality, and memory β in under 5 minutes.
Quick Start
# Install from ClawHub
clawhub install ai-persona-engineCreate your first persona
openclaw persona createThat's it. The wizard handles everything.
Commands
persona create
Interactive wizard that walks through persona creation step by step.
openclaw persona createWith flags
openclaw persona create --dry-run # Show what would be generated
openclaw persona create --workspace=~/.openclaw/workspace-new
The wizard covers 7 steps:
1. Name & Identity β name, emoji, description, nickname 2. Personality β archetype selection, blending, communication style, relationship boundaries 3. Voice β provider selection (ElevenLabs, Grok TTS, built-in), voice testing 4. Visual Identity β appearance description, reference image generation 5. Your Context β USER.md with your name, timezone, preferences 6. Memory β daily notes, long-term curation, heartbeat maintenance 7. Platforms β channel selection and per-channel behavior
Output: SOUL.md, USER.md, IDENTITY.md, MEMORY.md, AGENTS.md, HEARTBEAT.md, and updated openclaw.json.
persona update
Modify specific persona fields without re-running the full wizard. Includes safe update pipeline with automatic backup and diff preview.
# Update voice provider
openclaw persona update --voice-provider elevenlabs --voice-id abc123Add or remove personality traits
openclaw persona update --add-trait "sarcastic" --remove-trait "formal"Update appearance and regenerate reference image
openclaw persona update --appearance "new description..." --regen-imageRegenerate SOUL.md from current config (with backup + diff)
openclaw persona update --regen-soulForce regeneration (skip diff review)
openclaw persona update --regen-soul --forceInteractive mode (step-by-step, choose what to change)
openclaw persona update -i
Safe Update Pipeline: Before any --regen operation, the tool:
1. Creates .persona-backup/ with current files
2. Regenerates the target file
3. Shows a diff of what changed
4. Asks for confirmation (or use --force to skip)
persona export
Package the persona into a portable .persona bundle.
# Basic export (no memory, no API keys)
openclaw persona exportInclude memory files
openclaw persona export --name pepper-backup --include-memoryInclude voice config (still excludes API keys)
openclaw persona export --include-voice-configExport from a specific workspace
openclaw persona export --workspace ~/.openclaw/workspace-ultron
persona import
Import a .persona bundle into a workspace.
# Interactive import (confirms each file)
openclaw persona import pepper.personaImport into a specific workspace
openclaw persona import pepper.persona --workspace ~/.openclaw/workspace-newOverwrite existing files without prompting
openclaw persona import pepper.persona --force
persona preview
Generate sample conversations showing how the persona would respond. Template-based, no LLM calls.
# Preview from config
python3 scripts/persona-preview.py --archetype companion --name "Pepper" --emoji "πΆοΈ"Preview from workspace
python3 scripts/persona-preview.py --workspace ~/.openclaw/workspacePreview from profile JSON
python3 scripts/persona-preview.py --input persona-config.json
Shows 4 scenarios: greeting, asking for help, user mistake, emotional moment.
persona migrate
Reverse-engineer a persona config from existing workspace files.
# Migrate workspace to config JSON
python3 scripts/persona-migrate.py --workspace ~/.openclaw/workspaceOutput to file
python3 scripts/persona-migrate.py --workspace ~/.openclaw/workspace --output persona-config.json
See references/migration-guide.md for detailed migration instructions.
persona validate
Check workspace for missing or malformed persona files.
python3 scripts/persona-validate.py --workspace ~/.openclaw/workspaceWith config validation
python3 scripts/persona-validate.py --workspace ~/.openclaw/workspace --config ~/.openclaw/openclaw.jsonJSON output for scripting
python3 scripts/persona-validate.py --workspace ~/.openclaw/workspace --json
persona diff
Compare current workspace files against what the generator would produce.
python3 scripts/persona-diff.py --workspace ~/.openclaw/workspace --config ~/.openclaw/openclaw.json
persona list
List all personas across workspaces.
python3 scripts/persona-list.pyJSON output
python3 scripts/persona-list.py --json
persona fleet
Show a fleet view of all agents across machines.
python3 scripts/persona-fleet.pyJSON output
python3 scripts/persona-fleet.py --json
voice audition
Audition multiple voices for a provider.
# List ElevenLabs voices
python3 scripts/voice-setup.py --audition --provider elevenlabsFilter by gender
python3 scripts/voice-setup.py --audition --provider elevenlabs --gender femaleList built-in voices
python3 scripts/voice-setup.py --audition --provider builtin
Personality Blending
Create hybrid personalities by blending multiple archetypes with weighted percentages.
# During wizard: choose "Blend with a second archetype" option
openclaw persona createProgrammatically:
cat > blend-profile.json << 'EOF'
{
"name": "Muse",
"emoji": "π¨",
"archetypes": [
{"name": "companion", "weight": 0.7},
{"name": "creative", "weight": 0.3}
]
}
EOF
python3 scripts/generate-soul.py --input blend-profile.json --output SOUL.md
Blending merges:
Community Templates
Pre-built personality profiles for common use cases in assets/community-templates/:
| Template | Description |
|----------|-------------|
| financial-advisor | Informed, cautious, data-driven financial guide |
| fitness-coach | Motivating, knowledgeable, encouraging workout companion |
| kids-tutor | Patient, fun, age-appropriate learning buddy (ages 6-12) |
| creative-writer | Lyrical, perceptive collaborative writing partner |
| sales-rep | Persuasive, empathetic, goal-oriented sales professional |
| therapist | Empathetic, boundaried emotional wellness companion |
| gaming-buddy | Enthusiastic, strategic, competitive gaming partner |
| executive-assistant | Anticipatory, discreet, ultra-efficient EA |
Use community templates directly or blend them with built-in archetypes:
python3 scripts/generate-soul.py --archetype therapist --name "Sage" --emoji "π§"
File Structure
ai-persona-engine/
βββ SKILL.md # This file
βββ DESIGN.md # Full design document
βββ scripts/
β βββ persona-create.sh # Setup wizard (v2: blending, --dry-run, --workspace)
β βββ persona-update.sh # Field updater (v2: safe update pipeline)
β βββ persona-export.sh # Bundle exporter (v2: cross-workspace)
β βββ persona-import.sh # Bundle importer (v2: cross-workspace)
β βββ persona-preview.py # [NEW] Sample conversation generator
β βββ persona-migrate.py # [NEW] Reverse-engineer config from workspace
β βββ persona-validate.py # [NEW] Workspace validation
β βββ persona-diff.py # [NEW] Diff workspace vs generated
β βββ persona-list.py # [NEW] List all personas across workspaces
β βββ persona-fleet.py # [NEW] Fleet view of all agents
β βββ generate-soul.py # SOUL.md generator (v2: blending support)
β βββ generate-user.py # USER.md generator
β βββ generate-identity.py # IDENTITY.md generator
β βββ generate-memory.py # MEMORY.md + memory/ scaffolding
β βββ voice-setup.py # Voice provider config (v2: --audition)
β βββ image-setup.py # Image provider config + reference image
β βββ lib/
β βββ providers.py # Provider abstraction layer
β βββ templates.py # Template engine + personality blending
β βββ config.py # openclaw.json helpers
β βββ prompts.py # Wizard prompt definitions
βββ references/
β βββ voice-providers.md # Voice provider setup guide
β βββ image-providers.md # Image provider setup guide
β βββ personality-archetypes.md # Archetype reference
β βββ soul-writing-guide.md # SOUL.md writing tips
β βββ config-schema.md # openclaw.json schema reference
β βββ migration-guide.md # [NEW] Migration guide for existing users
βββ assets/
β βββ personality-profiles/ # JSON presets per archetype (5 built-in)
β βββ community-templates/ # [NEW] 8 community personality profiles
β βββ templates/ # Handlebars templates for generated files
βββ tests/
βββ test-generators.py # 77 unit tests (v2: blending, migration, etc.)
βββ test-wizard.sh
βββ test-export-import.sh
Configuration
The persona engine adds a persona section to openclaw.json. Key fields:
| Field | Type | Description |
|-------|------|-------------|
| persona.name | string | Agent's display name |
| persona.emoji | string | Agent's emoji identifier |
| persona.identity | object | Creature type, vibe, nickname |
| persona.voice | object | Voice provider and settings |
| persona.image | object | Image provider and canonical look |
| persona.personality | object | Archetype, traits, communication style |
| persona.personality.archetypes | array | [NEW] Blend sources with weights |
| persona.memory | object | Memory capture and curation settings |
See references/config-schema.md for the full schema.
Dependencies
Required:
Optional (based on chosen providers):
Further Reading
π‘ Examples
# Install from ClawHub
clawhub install ai-persona-engineCreate your first persona
openclaw persona createThat's it. The wizard handles everything.
βοΈ Configuration
The persona engine adds a persona section to openclaw.json. Key fields:
| Field | Type | Description |
|-------|------|-------------|
| persona.name | string | Agent's display name |
| persona.emoji | string | Agent's emoji identifier |
| persona.identity | object | Creature type, vibe, nickname |
| persona.voice | object | Voice provider and settings |
| persona.image | object | Image provider and canonical look |
| persona.personality | object | Archetype, traits, communication style |
| persona.personality.archetypes | array | [NEW] Blend sources with weights |
| persona.memory | object | Memory capture and curation settings |
See references/config-schema.md for the full schema.