Domain Architecture
Domains are the foundation of Ensoul's personality framework. This guide covers creating custom domains, configuring personality schemas, and defining archetypes.
Domain Agnosticism
What is a Domain?
A domain defines the complete personality space for your synthetic population. It specifies:
- How personas are organized hierarchically (tiers)
- What personality traits are available (schema)
- What archetypes can generate personas (templates)
- How names are generated (naming conventions)
- How memories are structured (memory templates)
Creating a Domain
In Ensoul Studio, navigate to Domains and click Create Domain. The AI-assisted wizard guides you through the full configuration:
AI-Assisted Generation
Tier Structure
Tiers define the hierarchical organization of your personas. Context flows down from higher tiers, enabling efficient knowledge sharing.
Designing Your Tiers
Consider what levels of organization make sense for your use case:
Research Study
Corporate Training
Fantasy RPG
Customer Personas
Tier Context Inheritance
Higher tiers provide context that influences lower tiers. For example, in a corporate domain:
- Organization tier: Company values, culture, industry context
- Department tier: Team norms, communication styles, priorities
- Team tier: Local dynamics, shared experiences
- Individual tier: Personal traits, memories, history
{"tier_structure": ["organization", "department", "team", "individual"],"tier_config": {"organization": {"context_template": "{{name}} is a {{industry}} company with {{size}} employees. Core values: {{values}}.","required_fields": ["name", "industry", "values"]},"department": {"context_template": "The {{name}} department focuses on {{focus}}.","inherits_from": "organization"}}}
Personality Schema
The personality schema defines what traits personas in your domain will have.
Base Frameworks
Choose from validated psychological frameworks:
- Big Five: Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism — validated with IPIP-50
- HEXACO: Six-factor model adding Honesty-Humility — validated with HEXACO-60
- Dark Triad: Machiavellianism, Narcissism, Psychopathy — validated with SD3
Adding Extensions
Extend the base schema with domain-specific traits:
{"personality_schema": {"base": "big_five","include_hexaco": true,"include_dark_triad": true,"extensions": {"magic_affinity": {"type": "float","min": 0,"max": 100,"description": "Innate connection to magical forces"},"alignment": {"type": "composite","components": {"law_chaos": {"type": "float", "min": -1, "max": 1},"good_evil": {"type": "float", "min": -1, "max": 1}}},"creature_type": {"type": "enum","values": ["human", "elf", "dwarf", "orc", "halfling"]}}}}
Extension Types
| Type | Description | Example |
|---|---|---|
float | Continuous value with min/max | risk_tolerance: 0-100 |
int | Integer value with min/max | experience_years: 0-50 |
enum | One of predefined values | department: ["sales", "engineering"] |
composite | Multiple sub-components | alignment: law_chaos + good_evil |
bool | True/false flag | is_manager: true/false |
Archetypes
Archetypes are templates that define baseline traits for persona generation. They specify trait distributions and tendencies rather than exact values, allowing natural variation.
Creating Archetypes in Studio
Within a domain, navigate to the Archetypes tab and click Add Archetype. You can:
- Manual creation: Set trait distributions (mean + standard deviation) for each trait dimension
- AI generation: Describe the archetype and let the AI suggest trait distributions
- From persona: Create an archetype template based on an existing persona's trait profile
Each archetype specifies personality modifiers — deltas in the range [-50, +50] that shift trait values relative to the domain baseline. This ensures archetypes describe tendencies rather than absolute values.
Archetype Composition
When generating a persona, traits are composed from multiple archetypes at different tier levels. The modifiers blend together to create a unique individual:
{"archetypes": [{"id": "department_engineering", "tier": "department"},{"id": "senior_engineer", "tier": "role"},{"id": "team_lead", "tier": "role"}]}
Name Generators
Each domain can configure how persona names are generated. Choose from built-in generators or define custom patterns:
- professional: Formal names suitable for business contexts
- fantasy_medieval: Fantasy-style names with optional titles
- fantasy_scifi: Science fiction naming conventions
- historical: Period-appropriate naming
- custom: Define your own template with first/last name sources