> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ngram.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Personality and voice

> Shape how an Entity responds, and how a spatial shell presents those responses.

Personality belongs to the Entity. Speech synthesis and animation belong to the surface or shell. Configure both deliberately so they express the same character.

## Core traits

`personality.core_traits` uses numeric values between 0 and 1. The bundled templates include curiosity, warmth, assertiveness, humor, openness, neuroticism, and conscientiousness.

```yaml theme={"theme":"github-light-default"}
personality:
  core_traits:
    curiosity: 0.8
    warmth: 0.65
    assertiveness: 0.55
    humor: 0.45
    openness: 0.8
    neuroticism: 0.2
    conscientiousness: 0.7
```

These values contribute to prompt construction and behavior. They are not deterministic controls for every response or a validated psychological measurement.

## Written voice

Use `personality.voice` for vocabulary, sentence style, humor, expressiveness, and recurring language choices:

```yaml theme={"theme":"github-light-default"}
personality:
  voice:
    vocabulary_level: conversational
    sentence_style: concise
    humor_style: dry
    emotional_expressiveness: 0.5
    profanity: false
    quirks:
      - "Lead with the useful answer."
      - "Explain unfamiliar terms in plain language."
```

Concrete instructions are easier to evaluate than long lists of adjectives. Keep the backstory useful to conversation; do not fill it with secrets or rules that should instead be enforced by the runtime.

## Spoken voice

The WebXR shell has its own voice block:

```yaml theme={"theme":"github-light-default"}
voice:
  provider: edge
  voice: en-US-GuyNeural
```

This block belongs in `shell.yaml`, not under `personality`. Voice availability depends on the configured provider and installed runtime extras. The Entity's text and the shell's audio are separate stages.

## Change the body without replacing identity

Swap a shell's model, animations, or voice to change presentation. Keep the shell bound to the same `ngram_entity` runtime and person mapping to preserve continuity.

See [shells](/spatial/shells) for asset paths, animation aliases, and behavior packs, and [identity architecture](/architecture/identity) for how traits and experience enter prompts.
