Python: Types

Complete reference for all Pydantic models and enums in the Elephantasm Python SDK.

All types are importable from the top-level package:

from elephantasm import Anima, Event, EventType, Memory, MemoryPack, MemoryState

Or from the types module directly:

from elephantasm.types import ScoredMemory, ScoredKnowledge, TemporalContext, IdentityContext

Enums

EventType

Event classification for message capture. Used as the first argument to extract().

from elephantasm import EventType
ValueStringDescription
EventType.MESSAGE_IN"message.in"User messages received by the agent
EventType.MESSAGE_OUT"message.out"Assistant responses generated by the agent
EventType.TOOL_CALL"tool.call"Tool/function invocations
EventType.TOOL_RESULT"tool.result"Tool/function return values
EventType.SYSTEM"system"System-level events and signals

MemoryState

Lifecycle states for memory recall and curation.

ValueStringDescription
MemoryState.ACTIVE"active"Currently relevant, included in recall
MemoryState.DECAYING"decaying"Losing relevance, deprioritized in recall
MemoryState.ARCHIVED"archived"No longer active, preserved for provenance

Core Models

Anima

Agent entity that owns memories and events. Returned by create_anima().

NameTypeRequiredDescription
idUUIDrequiredUnique identifier.
namestrrequiredHuman-readable name.
descriptionstr | NoneoptionalOptional description.
metadict | NoneoptionalArbitrary metadata.
user_idUUID | NoneoptionalOwning user ID (set by the server).
created_atdatetimerequiredCreation timestamp.
updated_atdatetimerequiredLast update timestamp.

AnimaCreate

Request model for creating an anima. Used internally by the client.

NameTypeRequiredDescription
namestrrequiredName for the anima (max 255 characters).
descriptionstr | NoneoptionalOptional description.
metadict | NoneoptionalOptional metadata dictionary.

Event

Atomic unit of experience — a single captured interaction. Returned by extract().

NameTypeRequiredDescription
idUUIDrequiredUnique identifier.
anima_idUUIDrequiredOwning anima ID.
event_typestrrequiredEvent type string (e.g. 'message.in').
rolestr | NoneoptionalMessage role: user, assistant, system, tool.
authorstr | NoneoptionalWho produced this event.
summarystr | NoneoptionalServer-generated summary (if applicable).
contentstrrequiredEvent content body.
occurred_atdatetime | NoneoptionalWhen the event actually happened.
session_idstr | NoneoptionalSession grouping identifier.
metadictrequiredMetadata dictionary (default: {}).
source_uristr | NoneoptionalSource system identifier.
dedupe_keystr | NoneoptionalDeduplication hash (auto-generated).
importance_scorefloat | NoneoptionalCuration priority hint, 0.0–1.0.
created_atdatetimerequiredIngestion timestamp.
updated_atdatetimerequiredLast update timestamp.

EventCreate

Request model for creating an event. Used internally by the client.

NameTypeRequiredDescription
anima_idUUIDrequiredTarget anima ID.
event_typestrrequiredEvent type string.
contentstrrequiredEvent content body.
rolestr | NoneoptionalMessage role.
authorstr | NoneoptionalEvent author.
summarystr | NoneoptionalOptional summary.
occurred_atdatetime | NoneoptionalOverride timestamp.
session_idstr | NoneoptionalSession identifier.
metadictrequiredMetadata (default: {}).
source_uristr | NoneoptionalSource system URI.
dedupe_keystr | NoneoptionalCustom deduplication key.
importance_scorefloat | NoneoptionalImportance hint, validated 0.0–1.0.

Memory

Subjective interpretation synthesized from one or more events.

NameTypeRequiredDescription
idUUIDrequiredUnique identifier.
anima_idUUIDrequiredOwning anima ID.
contentstr | NoneoptionalFull memory content.
summarystr | NoneoptionalCompact narrative essence.
importancefloat | NoneoptionalRecall priority, 0.0–1.0.
confidencefloat | NoneoptionalStability/certainty, 0.0–1.0.
stateMemoryState | NoneoptionalLifecycle state: active, decaying, or archived.
recency_scorefloat | NoneoptionalCached recency score.
decay_scorefloat | NoneoptionalCached decay score.
time_startdatetime | NoneoptionalStart of event timespan covered.
time_enddatetime | NoneoptionalEnd of event timespan covered.
metadictrequiredMetadata dictionary (default: {}).
created_atdatetimerequiredCreation timestamp.
updated_atdatetimerequiredLast update timestamp.

Pack Models

MemoryPack

Compiled memory context for LLM injection. Returned by inject().

NameTypeRequiredDescription
idUUIDrequiredPack identifier.
anima_idUUIDrequiredOwning anima ID.
querystr | NoneoptionalSemantic query used for compilation (if any).
preset_namestr | NoneoptionalPreset used for compilation.
session_memory_countintrequiredNumber of session memories included.
knowledge_countintrequiredNumber of knowledge items included.
long_term_memory_countintrequiredNumber of long-term memories included.
has_identityboolrequiredWhether identity context is included.
token_countintrequiredEstimated token count of the pack.
max_tokensintrequiredToken budget used for compilation (default: 4000).
contentdictrequiredRaw pack content with all layers.
compiled_atdatetimerequiredWhen the pack was compiled.
created_atdatetimerequiredCreation timestamp.

Methods

as_prompt() -> str

Returns the pre-formatted context string ready for LLM system prompt injection.

pack = client.inject()
if pack:
    prompt = pack.as_prompt()
    # Use prompt in your LLM call's system message

Properties

Access individual pack layers as typed objects:

pack = client.inject()
if pack:
    # Identity context
    identity = pack.identity           # IdentityContext | None
 
    # Session memories (recent, high-scoring)
    for mem in pack.session_memories:  # list[ScoredMemory]
        print(f"{mem.summary} (score: {mem.score})")
 
    # Knowledge items
    for k in pack.knowledge:           # list[ScoredKnowledge]
        print(f"{k.type}: {k.content}")
 
    # Long-term memories
    for mem in pack.long_term_memories:  # list[ScoredMemory]
        print(mem.summary)
 
    # Temporal awareness
    temporal = pack.temporal_context    # TemporalContext | None
    if temporal:
        print(temporal.formatted)
PropertyReturn TypeDescription
identityIdentityContext | NoneAgent personality and behavioral context
session_memorieslist[ScoredMemory]Recent scored memories from current session
knowledgelist[ScoredKnowledge]Canonicalized knowledge items
long_term_memorieslist[ScoredMemory]Scored long-term memories
temporal_contextTemporalContext | NoneTime gap awareness context

ScoredMemory

Memory with scoring breakdown from pack compilation.

NameTypeRequiredDescription
idUUIDrequiredMemory identifier.
summarystr | NoneoptionalCompact narrative summary.
scorefloatrequiredComposite recall score.
reasonstr | NoneoptionalHuman-readable scoring explanation.
breakdowndict[str, float]requiredPer-factor score breakdown (importance, recency, etc.).
similarityfloat | NoneoptionalSemantic similarity score (if query-based retrieval).

ScoredKnowledge

Knowledge item with similarity score from pack compilation.

NameTypeRequiredDescription
idUUIDrequiredKnowledge identifier.
contentstrrequiredKnowledge content text.
typestrrequiredKnowledge type classification.
scorefloatrequiredRelevance score.
similarityfloat | NoneoptionalSemantic similarity score (if query-based).

TemporalContext

Temporal awareness context for bridging gaps between sessions.

NameTypeRequiredDescription
last_event_atdatetimerequiredTimestamp of the most recent event.
hours_agofloatrequiredHours since the last event.
memory_summarystr | NoneoptionalNatural language summary of what happened last.
formattedstrrequiredPre-formatted temporal context string.

IdentityContext

Agent identity layer from pack compilation.

NameTypeRequiredDescription
personality_typestr | NoneoptionalPersonality classification (e.g. MBTI type).
communication_stylestr | NoneoptionalPreferred communication approach.
self_reflectiondict | NoneoptionalAnima's self-reflection data.
prosestr | NoneoptionalNatural language identity description (~70–100 tokens).