MemNexus
Concepts

Memory Types

Understand episodic, semantic, and procedural memory and when to use each.

MemNexus supports three types of memory, inspired by how human memory works. Each type serves a different purpose in building a comprehensive knowledge system.

Episodic memory

What happened. Episodic memories record events, interactions, and experiences tied to a specific time and context.

{
  "content": "Debugged CORS issue in API gateway. Root cause: credentials header was being stripped.",
  "memoryType": "episodic",
  "importance": 0.8,
  "topics": ["debugging", "cors", "api-gateway"],
  "createdAt": "2026-02-06T14:30:00Z"
}

When to use

  • Recording what happened during a session
  • Logging decisions and their rationale
  • Tracking bug fixes, deployments, and milestones
  • Capturing conversation context

Characteristics

  • Time-bound — Has a clear "when" associated with it
  • Contextual — Makes sense within its temporal context
  • Decaying relevance — Older episodic memories may become less relevant
  • Searchable by meaning — "That deployment issue" finds relevant events

Episodic is the default memory type and the most commonly used.

Semantic memory

What is true. Semantic memories represent general knowledge and facts that aren't tied to a specific event.

{
  "content": "MemNexus uses Neo4j as its graph database with OpenAI text-embedding-3-small for vector embeddings.",
  "memoryType": "semantic",
  "importance": 0.9,
  "topics": ["architecture", "database", "embeddings"]
}

When to use

  • Storing architectural decisions
  • Recording technology choices and configurations
  • Documenting domain knowledge
  • Capturing persistent truths about a project

Characteristics

  • Timeless — True regardless of when it was stored
  • Stable — Doesn't decay in relevance over time
  • Factual — Represents knowledge, not events
  • Reusable — Applicable across many contexts

Procedural memory

How to do things. Procedural memories capture processes, workflows, and step-by-step instructions.

{
  "content": "To deploy core-api: 1) Run tests locally, 2) Push to main, 3) CI/CD pipeline deploys automatically, 4) Verify health endpoint.",
  "memoryType": "procedural",
  "importance": 0.8,
  "topics": ["deployment", "core-api", "workflow"]
}

When to use

  • Documenting deployment processes
  • Recording debugging workflows
  • Storing coding patterns and recipes
  • Capturing operational procedures

Characteristics

  • Actionable — Contains steps or instructions
  • Replayable — Can be followed to reproduce a result
  • Evolving — Updated as processes change
  • High-value — Often saves significant time when recalled

Choosing the right type

ScenarioMemory typeExample
Bug fix resolutionEpisodic"Fixed timeout by increasing connection pool size"
Technology choiceSemantic"Project uses PostgreSQL for relational data"
Release processProcedural"Step 1: Run tests. Step 2: Tag release..."
Meeting notesEpisodic"Decided to migrate from REST to GraphQL"
API conventionsSemantic"All endpoints return JSON with { data, pagination }"
Setup instructionsProcedural"To set up local dev: clone, install, copy .env..."

All memory types are searchable via the same hybrid search pipeline. The type doesn't affect search ranking — importance scores and semantic similarity do.

However, types are useful for filtering:

# Find all procedural memories about deployment
mx memories search --query "deployment" --topics "workflow"

Facts vs. semantic memories

MemNexus also has facts — structured subject-predicate-object triples. Facts and semantic memories serve similar purposes but differ in structure:

FeatureSemantic memoryFact
StructureFree-textSubject-predicate-object
SearchSemantic + keywordGraph traversal
Best forRich contextStructured knowledge
Example"Neo4j excels at relationship queries"Neo4j → is_a → Graph Database

Use semantic memories for nuanced knowledge. Use facts for structured, traversable relationships.