Ensoul

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

Ensoul treats all domains equally. Whether you're creating personas for research, gaming, training, or healthcare, the same framework and tools apply.

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:

1
Basic info
Provide a name and description. The AI wizard uses this to suggest tier structures, schemas, and archetypes.
2
Tier config
Define the organizational hierarchy for your personas (e.g., world > region > community > individual).
3
Name patterns
Choose how persona names are generated for your domain context.
4
Personality
Choose base frameworks (Big Five, HEXACO, Dark Triad) and add custom trait extensions.
5
Memory templates
Define how persona memories are seeded and structured.
6
Archetypes
Create persona templates with trait distributions. The AI can generate archetypes from your description.
7
Review
Review the full configuration and create your domain.
💡

AI-Assisted Generation

You can also use the AI generation endpoint to create a complete domain from a text description. The system generates tier structures, personality schemas, and initial archetypes automatically, which you can then refine in the Studio UI.

Tier Structure

Tiers define the hierarchical organization of your personas. Context flows down from higher tiers, enabling efficient knowledge sharing.

Organization
Values, culture, industry
Tier 1
context flows down
Department
Team norms, priorities
Tier 2
Team
Local dynamics, shared history
Tier 3
Individual
Personal traits, memories
Tier 4

Designing Your Tiers

Consider what levels of organization make sense for your use case:

Research Study

Population, Demographic Group, Cohort, Individual

Corporate Training

Organization, Department, Team, Individual

Fantasy RPG

World, Kingdom, Guild, Character

Customer Personas

Market, Segment, Cohort, Individual

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
json
{
"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:

json
{
"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

TypeDescriptionExample
floatContinuous value with min/maxrisk_tolerance: 0-100
intInteger value with min/maxexperience_years: 0-50
enumOne of predefined valuesdepartment: ["sales", "engineering"]
compositeMultiple sub-componentsalignment: law_chaos + good_evil
boolTrue/false flagis_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:

json
{
"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

Best Practices

Ground extensions in research

When adding custom traits, document their theoretical basis. Reference existing research where possible.

Use distributions, not fixed values

Archetypes should specify trait distributions (mean + std) to allow natural variation between personas.

Avoid over-constraining personas

Don't make archetypes too specific. Leave room for individual variation and organic evolution.

Avoid too many tiers

3-5 tiers is usually optimal. More tiers add complexity without proportional benefit.

Next Steps