Skip to main content
Soma is ngram’s simulated body-state engine. It maintains numeric bars, changing affects, impulses, and generated fragments that can influence prompt context and autonomous behavior. These are implemented mechanisms, not evidence of subjective experience.

Bars, events, and coupling

The checked-in configuration includes social, curiosity, creative, tension, and comfort bars. Each has an initial value, bounds, and time-based dynamics. Events can apply changes, while coupling rules let one bar influence another’s behavior. The runtime renders a body document from this state. The model reads that representation as context; it does not directly assign arbitrary bar values through normal conversation.

Somatic appraisal

Appraisal is a configured model pass that interprets an interaction into state effects. This is distinct from fixed event effects: a routine message need not receive the same curiosity adjustment as a novel problem. Appraisal can use inference in addition to the main response. Its model budget and enablement belong to harness soma settings.

Affects, impulses, and conflict

Affects provide generated descriptions of the current state. Impulses apply thresholds and cooldowns to candidate actions. Conflict rules capture simultaneous drive pressures. These signals can feed autonomous wake.

Generative Entropic Noise (GEN)

GEN produces short associative fragments that can appear in the body context. Its generation has its own cadence, output budget, and optional seed sources. See the GEN pipeline.

Ebb

Ebb controls how much body and GEN context reaches a turn. Salience determines quiet, normal, or high presentation, rather than putting the full body document into every prompt. Quiet settings can also skip selected post-turn noise work.

Wake voice

When a wake condition is met, the optional wake voice composes a stirring from body and memory context. It is another configured generation step before autonomous action.

Circadian rhythms

Time-based gates influence mechanisms such as optional dream cycles. Check the host’s timezone and the specific subsystem configuration when comparing behavior across local and deployed runtimes.

Configure and observe

Configure soma in the harness defaults. Do not assume a top-level soma block in Entity YAML is merged by the Entity loader. Use runtime status, body inspection, and optional soma metrics to observe the state. Use inference pause to stop model-backed soma activity; changing what the UI displays does not stop those calls. Source: ngram/identity/soma.py and configs/default.yaml.