Skip to main content
Engram supports built-in memory types and custom types. Each type represents a category of knowledge your agent can store and recall.

Built-in Types

TypePurposeExample
semanticFacts, knowledge, learned info”Project Alpha uses Rust for the backend”
episodicConversations, events, sessions”User asked about pricing on March 22”
proceduralHow-to steps, workflows”Deploy: push to main → CI runs → auto-deploy”
personaAgent identity, personality”I am a helpful coding assistant”
preferenceUser likes/dislikes”User prefers dark mode”
goalObjectives, task tracking”Finish API by Friday”
feedbackCorrections, user input”Don’t use semicolons here”
relationalEntity relationships”Alice manages the backend team”
checkpointState snapshotsSerialized task state
embeddingVector embeddingsFloat arrays for RAG retrieval
workingShort-lived scratch memoryTemporary computation results
tool_outputCached tool/API resultsSearch results, API responses
fileBinary files (PDF, images, video)Uploaded documents and media

Custom Types

Create your own types by prefixing with custom: (max 64 characters):
{
  "type": "custom:meeting_notes",
  "key": "standup/2026-03-22",
  "content": "Discussed API versioning and blob naming..."
}

Choosing the Right Type

Use semantic for facts your agent should “know,” episodic for things that “happened,” and file for binary content. When in doubt, use semantic.
ScenarioRecommended Type
Agent learns a user’s namesemantic
Recording a conversation summaryepisodic
Storing deployment instructionsprocedural
Agent’s system prompt / personalitypersona
Temporary computation stateworking
Uploaded PDF reportfile
Embedding vectors for RAGembedding