Skip to main content

AI memory system for the Lexigram Framework — episodic, semantic, and working memory

Project description

lexigram-ai-memory

AI memory system for the Lexigram Framework — episodic, semantic, and working memory


Overview

Three-tier AI memory system for the Lexigram Framework. Provides working, episodic, and semantic memory with pluggable backends, automatic consolidation scheduling, token-aware context assembly, and multi-source retrieval — all wired through the DI container via MemoryModule. Zero-config usage starts with sensible defaults.

Full documentation: docs.lexigram.dev

Install

uv add lexigram-ai-memory
# Optional extras
uv add "lexigram-ai-memory[redis]"

Quick Start

from lexigram import Application
from lexigram.di.module import Module, module

from lexigram.ai.memory import MemoryModule
from lexigram.ai.memory.config import MemoryConfig

@module(imports=[
    MemoryModule.configure(
        MemoryConfig(default_backend="in_memory")
    )
])
class AppModule(Module):
    pass

app = Application(modules=[AppModule])
if __name__ == "__main__":
    app.run()

Configuration

Zero-config usage: Call MemoryModule.configure() with no arguments to use defaults.

Option 1 — YAML file

# application.yaml
ai_memory:
  default_backend: "vector"
  ttl_seconds: 2592000
  consolidation:
    enabled: true
    interval_seconds: 3600.0

Option 2 — Profiles + Environment Variables (recommended)

export LEX_AI_MEMORY__DEFAULT_BACKEND=vector
# Environment variables for each field

Option 3 — Python

from lexigram.ai.memory.config import MemoryConfig
from lexigram.ai.memory import MemoryModule

config = MemoryConfig(
    default_backend="vector",
)
MemoryModule.configure(config)

Config reference

Field Default Env var Description
enabled True LEX_AI_MEMORY__ENABLED Enable the AI memory subsystem
default_backend "in_memory" LEX_AI_MEMORY__DEFAULT_BACKEND Backend type: in_memory, cache, database, vector
ttl_seconds 0 LEX_AI_MEMORY__TTL_SECONDS Default entry TTL in seconds (0 = never expire)
working.system_prompt_tokens 500 LEX_AI_MEMORY__WORKING__SYSTEM_PROMPT_TOKENS Fixed token allocation for system prompt
working.recent_turns_fraction 0.4 LEX_AI_MEMORY__WORKING__RECENT_TURNS_FRACTION Fraction of remaining budget for recent turns
episodic.default_top_k 5 LEX_AI_MEMORY__EPISODIC__DEFAULT_TOP_K Default number of episodes to retrieve
semantic.min_confidence 0.6 LEX_AI_MEMORY__SEMANTIC__MIN_CONFIDENCE Minimum confidence score for stored facts
consolidation.enabled True LEX_AI_MEMORY__CONSOLIDATION__ENABLED Whether automatic background consolidation is active
consolidation.interval_seconds 3600.0 LEX_AI_MEMORY__CONSOLIDATION__INTERVAL_SECONDS How often to run a consolidation pass

Module Factory Methods

Method Description
MemoryModule.configure(config, enable_consolidation) Production-ready module with full consolidation pipeline
MemoryModule.stub(config) Test-friendly module with in-memory backends

Key Features

  • Three-tier memory: Working (context assembly), Episodic (conversation episodes), Semantic (entity facts)
  • Pluggable backends: In-memory, Redis, SQLAlchemy, Qdrant/Chroma/PGVector
  • Token budget allocation: Distributes available tokens across memory sources
  • Automatic consolidation: Background scheduler promotes episodic to semantic storage
  • Multi-source retrieval: Unified MemoryRetriever queries all tiers with relevance ranking
  • Dynamic pruning: DynamicContextPruner fits context into hard token limits

Testing

async with Application.boot(modules=[MemoryModule.stub()]) as app:
    # your test code
    ...

Key Source Files

File What it contains
src/lexigram/ai/memory/module.py MemoryModule — DI module factory methods
src/lexigram/ai/memory/config.py MemoryConfig and tier-specific config classes
src/lexigram/ai/memory/di/provider.py MemoryProvider — wires all protocols and services
src/lexigram/ai/memory/working/manager.py WorkingMemoryManager — context assembly
src/lexigram/ai/memory/episodic/store.py EpisodicMemoryStore — episode storage
src/lexigram/ai/memory/semantic/store.py SemanticMemoryStore — fact storage
src/lexigram/ai/memory/consolidation/consolidator.py MemoryConsolidator — consolidation pipeline
src/lexigram/ai/memory/retrieval/retriever.py MemoryRetriever — multi-source retrieval

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lexigram_ai_memory-0.1.1-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

Details for the file lexigram_ai_memory-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lexigram_ai_memory-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8563201b023444390c9855a0bf6a0a99fe39ad332450f316fc556c5cff16355f
MD5 8bce45b20233e5a53b211bb658b9dcbd
BLAKE2b-256 a07c079e2c266c975ddee2161ceb0db9e1647a94852472f1432a2fe6928327b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page