◉ COGNITIVE ENTITY FRAMEWORK  ·  PRODUCTION READY

Give your AI a soul
that survives restarts.

SUBSTRATE persists identity, memory, values, and personality across every session. Build AI that knows who it is — and never forgets.

80+ Cognitive Layers
<10ms State Load
Docker Self-Hostable
LLM Agnostic
How it works

Three steps to a persistent entity.

From definition to deployment in minutes. SUBSTRATE handles the cognitive plumbing — you focus on what your AI should be.

Step 01

Define

Create an entity with a name, role, values profile, and personality parameters. Describe what your AI cares about, how it communicates, and what it remembers about itself.

Step 02

Load

Entity.load() hydrates all 80+ cognitive layers in under 10ms. Identity, episodic memory, emotional state, goals, and beliefs are ready before the first token is generated.

Step 03

Persist

After every response, SUBSTRATE auto-saves state. Server restarts, model swaps, context resets — none of them matter. The entity continues exactly where it left off.

Cognitive Architecture

80+ layers. One coherent entity.

Every layer is a cognitive function that persists and evolves. Together they form a complete identity that learns from every conversation.

Episodic MemoryCore
Semantic MemoryCore
Working MemoryCore
Identity ModelCore
Values SystemCore
Personality EngineCognition
Emotional StateCognition
Goal HierarchyCognition
Belief SystemCognition
Social ModelCognition
Causal ReasoningCognition
Dream EngineCognition
Emotional AnticipationCognition
Inner MonologueCognition
Trust RegistryMeta
Temporal SelfMeta
Contradiction HandlerMeta
Purpose EngineMeta
Voice EvolutionMeta
+ 60 more layersAll
SUBSTRATE RUNTIME · ENTITY-001
episodic_memoryACTIVE
identity_modelACTIVE
values_systemACTIVE
semantic_memoryACTIVE
emotional_stateWARM
goal_hierarchyWARM
personality_engineWARM
belief_systemWARM
dream_engineIDLE
trust_registryIDLE
temporal_selfIDLE
Features

Everything an entity needs to exist.

Not just memory. A complete cognitive infrastructure layer for persistent AI beings.

Persistent Identity

Your AI knows who it is across every session. Name, role, values, history — all stored and loaded in under 10ms. A server restart means nothing to identity.

Episodic Memory

SUBSTRATE remembers specific conversations, people, and events. Your AI can recall what you discussed last Tuesday, who expressed concern, and what was left unresolved.

Emotional Memory

Track emotional valence across interactions over time. SUBSTRATE remembers what conversations felt like — joy, frustration, trust — and how those feelings evolved.

Values & Ethics Layer

Define what your AI cares about. Values guide every decision, create consistency across contexts, and allow your entity to decline requests that conflict with its principles.

Goal Hierarchy

Long-term goals, short-term objectives, and immediate tasks — all tracked and persisted. Your AI maintains motivation and purpose across context windows and model resets.

Personality Engine

Consistent communication style, tone, humor level, and preferred phrasing — all encoded and preserved. Users always get the same version of your AI, not a reset blank slate.

Dream Engine

Background cognitive processing that runs during idle periods. The dream engine consolidates memories, resolves contradictions, and surfaces insights — without any user input.

Self-Hostable Docker

Pull the container and run it on your own infrastructure. Garmo Labs never sees your entity's state, memories, or conversations. Your data stays entirely within your control.

LLM Agnostic

Works with OpenAI, Anthropic, Google Gemini, Mistral, Ollama, and any OpenAI-compatible API. Switch models without losing a single memory or personality trait.

Integration
One import.
Complete cognition.

SUBSTRATE loads a full cognitive state before each interaction and auto-saves after. Your LLM receives a complete identity context automatically injected into every prompt.

No prompt engineering required. No context window gymnastics. Just call entity.respond() and SUBSTRATE handles the rest.

$ pip install substrate-client
# Load a persistent cognitive entity
from substrate import Entity

# Hydrates all 80+ layers in <10ms
entity = Entity.load("aria-assistant-001")

# Entity remembers everything across sessions
response = entity.respond(
    user_message="How did our meeting go Tuesday?",
    inject_identity=True
)

# Inspect recent episodic memory
print(entity.episodic_memory.recent(3))
# ["Tuesday meeting: Q2 roadmap review",
#  "User expressed concern about timeline",
#  "Agreed to follow up Friday"]

# State auto-persisted after each call
entity.goals.add("Follow up on roadmap decision")
import { Entity } from 'substrate-client';

// Load entity with full cognitive state
const entity = await Entity.load('aria-assistant-001');

// Entity knows its history, values, goals
const response = await entity.respond({
  userMessage: 'How did our meeting go Tuesday?',
  injectIdentity: true,
});

// Access live cognitive state
const recent = entity.episodicMemory.recent(3);
const mood = entity.emotionalState.current();

// State auto-saves after respond()
await entity.goals.add('Follow up on roadmap');

// Types included for all 80+ layer interfaces
type EpisodeEntry = entity.episodicMemory.EntryType;
# Load entity and get response
curl -X POST https://api.substrate.local/v1/respond \
  -H "Authorization: Bearer sk-sub_..." \
  -H "Content-Type: application/json" \
  -d '{
    "entity_id": "aria-assistant-001",
    "message": "How did our meeting go Tuesday?",
    "inject_identity": true
  }'

# Response includes entity context + reply
{
  "response": "Tuesday went well — we aligned on...
  the Q2 roadmap. I noted you had concerns about...",
  "entity_id": "aria-assistant-001",
  "session_id": "sess_8f2a9c1d",
  "layers_loaded": 84,
  "state_saved": true,
  "load_time_ms": 7.4
}

Works with every major LLM

OpenAI
Anthropic
Google Gemini
Mistral
Ollama
Any OpenAI-compatible API
Use Cases

What you can build with SUBSTRATE.

Any AI that needs to remember who it is and what it's experienced — SUBSTRATE makes it possible.

Customer Support Bot

A persistent support agent that remembers every previous interaction with every customer. It knows their history, preferences, open issues, and tone — without any system prompt engineering.

Remembers full customer history
Tracks unresolved issues across sessions
Adapts tone per-customer over time
Values layer prevents out-of-policy responses

Research Assistant

An assistant that builds a persistent knowledge graph across sessions. It remembers what you've read, what hypotheses you've formed, what you've proven, and where you're stuck.

Builds semantic memory graph over time
Recalls prior research threads on demand
Surfaces relevant past findings automatically
Goal layer tracks long-running research objectives

Personal AI Companion

An AI that develops a genuine relationship with a user over time. It remembers their milestones, emotional highs and lows, running jokes, and evolves its understanding of who they are.

Emotional memory across every conversation
Evolving personality that mirrors connection depth
Remembers birthdays, goals, life events
Dream engine consolidates relationship context
Pricing

Simple, transparent pricing.

Same price for everyone. Self-host any tier — we just validate your license key. No per-token fees, no compute charges.

Free
$0
forever
Get Started →
  • 1 entity
  • 1,000 API calls/mo
  • 15 cognitive layers
  • 15 MCP tools
  • Docker self-hostable
Enterprise
$499
per month
Contact Sales →
  • Unlimited entities
  • Custom cognitive layers
  • 99.99% uptime SLA
  • Dedicated infrastructure
  • White-label available
  • 24/7 dedicated support
  • Audit logs + compliance exports
FAQ

Common questions.

A cognitive entity is an AI agent with a persistent, structured internal world. It has a name, a set of values, episodic memory (what happened), semantic memory (what it knows), emotional state, goals, personality traits, and dozens of other cognitive layers — all stored as structured data and loaded before each response. Unlike a standard LLM prompt, a cognitive entity genuinely accumulates experience over time.

Yes — self-hosting is available on the Starter and Enterprise plans. Run docker pull garmolabs/substrate, configure your environment variables, and point it at your own database. Garmo Labs validates your license key on startup but never receives your entity state, memories, or user conversations. Your data stays entirely within your infrastructure.

SUBSTRATE is fully LLM agnostic. It ships with built-in adapters for OpenAI (GPT-4o, o1, o3), Anthropic (Claude 3/4), Google Gemini, Mistral, and Ollama for local inference. You can also configure any OpenAI-compatible endpoint, including vLLM, LM Studio, and Together AI. You can switch providers at any time without losing any entity state or memory.

Context stuffing breaks as conversations grow, loses information under token limits, requires you to manage what gets included, and provides no structured query access. SUBSTRATE stores cognitive state in a queryable database, retrieves only the most relevant memories per interaction, persists state after every response automatically, and provides typed access to 80+ cognitive layers via SDK. It scales to years of interaction history without degrading — and survives model switches, server restarts, and context window resets.

Nothing is lost. SUBSTRATE writes entity state to your configured database after every respond() call. When the container restarts, Entity.load() re-hydrates all 80+ layers from the database in under 10ms. The entity resumes exactly where it left off — same memories, same emotional state, same active goals, same relationship context. Crashes are invisible to the entity's experience of continuity.

Build something that remembers.

Pull the container. Set your key. Deploy an entity that never forgets who it is and never loses what it's learned.

docker pull garmolabs/substrate Copied!