Skip to main content
The Entity declaration establishes an initial identity. The running Entity combines that declaration with stored experience and current state when constructing a turn.

Traits and voice

Core traits are normalized values between zero and one. They describe tendencies such as warmth, curiosity, assertiveness, and openness. Written voice settings shape how the Entity phrases a response. These values influence generation; they are not guarantees that every response exhibits a particular trait. Use personality and voice to configure them and evaluate several representative conversations.

Drives and emotion

The runtime maintains changing drive and emotional state. These influence context and initiative alongside the more stable identity declaration. Soma adds a separate simulated body-state mechanism, described in soma. A body animation or a voice synthesizer belongs to the shell’s presentation. Changing either should not require replacing the Entity’s core identity or memory.

Trait evolution

The evolution subsystem can update identity-related state from accumulated experience according to its configuration and lifecycle milestones. ngram evolve explicitly requests a cycle and can use inference. Evolution is runtime state adjustment, not model weight training. Inspect the declaration and persisted state when investigating why an Entity behaves differently over time.

Durable changes

Portable Entities also support governed change proposals. The ngram change commands can create and inspect immutable proposals and their event history without loading a model. A proposal is distinct from an arbitrary manual edit to a YAML file. Use ngram/governance/change_protocol.py and the CLI reference when building an operator workflow around those changes.

Identity across surfaces

One human may have several platform identifiers. Pair the intended canonical person identifier when connecting a shell so the Entity reaches the same relationship context. Matching a display name is not a reliable identity mapping. Source: ngram/identity and ngram/config.py.