Skip to main content

🌙 luminary-memory

A lightweight, self-hosted memory layer for AI agents.

PyPI version Python License CI Tests Coverage Stars

Self-hosted · Private · Budget-aware · Self-maintaining


What your agent remembers is what it becomes.

Agents are only as good as what they remember. A stateless agent re-learns the same context every session — paying the same tokens, making the same mistakes. luminary-memory closes that gap with a local memory store that persists between runs, retrieves the right context on demand, and keeps itself tidy over time.

Four retrieval strategies. One fused answer. Zero cloud.

  • Semantic — ONNX embeddings (384-dim, CPU, no GPU needed)
  • Keyword — FTS5 BM25 (SQLite, zero config)
  • Temporal — recency decay × access count
  • Graph — entity co-occurrence with automatic curation

Strategies run in parallel and fuse via Reciprocal Rank Fusion (k=60)Jaccard deduplication (0.85)token budget (4096).


Quickstart

pip install luminary-memory
from luminary_memory import MemoryClient

client = MemoryClient(db_path="memory.db")

# store a durable fact
client.ingest("The deploy target is the staging cluster", tags=["deploy", "infra"])

# recall — four strategies fused into one ranked answer
result = client.recall("where do we deploy?")
for memory, score in zip(result.memories, result.scores):
    print(f"{score:.3f}  {memory.content}")
# → 0.942  The deploy target is the staging cluster
# CLI
luminary-memory add "deploy target is staging" --tags deploy
luminary-memory recall "where do we deploy?" --json
luminary-memory list
luminary-memory lifecycle
luminary-memory stats

Hermes Agent — first-class memory provider

Drop-in. Install the provider with pip install "luminary-memory[hermes]", then add memory.provider: luminary to your Hermes config. That's it.

From the next session: auto-recall injects relevant memories every turn, auto-save persists completed turns, and the model can call luminary_recall / luminary_ingest / luminary_list on demand.

Two optional LLM-powered features keep the store sharp:

  • ingest_llm — evaluates every turn before saving: drops chit-chat, stores factual summaries instead of raw transcripts.
  • auto_maintain — reviews the store at session end: keeps current facts, updates changed ones, deletes stale or duplicate ones.

18 settings are exposed in the Hermes dashboard for zero-hassle tuning. See hermes/README.md for the one-shot installer and full configuration.


Configuration

Every setting has a LUMINARY_* env var or a Settings object.

Setting Env var Default
backend LUMINARY_BACKEND sqlite
db_path LUMINARY_DB_PATH luminary_memory.db
pg_dsn LUMINARY_PG_DSN — (pgvector only)
embedding_model LUMINARY_EMBEDDING_MODEL BAAI/bge-small-en-v1.5
embedding_dim LUMINARY_EMBEDDING_DIM 384
ingest_llm LUMINARY_INGEST_LLM false
rrf_k LUMINARY_RRF_K 60
dedup_jaccard_threshold LUMINARY_DEDUP_JACCARD_THRESHOLD 0.85
token_budget LUMINARY_TOKEN_BUDGET 4096
ttl_default_seconds LUMINARY_TTL_DEFAULT_SECONDS null
prune_min_importance LUMINARY_PRUNE_MIN_IMPORTANCE 0.2
consolidate_jaccard_threshold LUMINARY_CONSOLIDATE_JACCARD_THRESHOLD 0.9

See hermes/SKILL.md for the full provider config table (18 settings).


Architecture

ingest(text) ──► whitelist filter ──► (LLM curation) ──► embed ──► SQLite / pgvector

recall(query) ──► semantic │ keyword │ temporal │ graph
               ──► RRF fusion ──► Jaccard dedup ──► token budget ──► ranked results

lifecycle() ──► cleanup (TTL) ──► consolidate (near-dupes) ──► prune (low-value)

maintenance() ──► LLM reviews store ──► keep │ update │ delete stale facts

Built-in lifecycle keeps the store lean. LLM maintenance (optional) keeps it accurate. health_score() gives you a 0-100 checkup with actionable recommendations.


Documentation

Section
Quickstart Install and first use
Architecture Pipelines and data flow
Python API MemoryClient reference
CLI All subcommands
Recall Four strategies + fusion
Lifecycle Cleanup, consolidation, pruning, LLM maintenance
Backends SQLite vs pgvector
Hermes integration Provider, config, installer
Roadmap v0.2.3 → v1.0.0
Benchmarks 230 ms recall @ 5k, 0 LLM tokens

License

Apache-2.0 © 2026 Dwiky Candra

Download files

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

Source Distribution

luminary_memory-0.2.4.tar.gz (144.1 kB view details)

Uploaded Source

Built Distribution

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

luminary_memory-0.2.4-py3-none-any.whl (55.3 kB view details)

Uploaded Python 3

File details

Details for the file luminary_memory-0.2.4.tar.gz.

File metadata

  • Download URL: luminary_memory-0.2.4.tar.gz
  • Upload date:
  • Size: 144.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for luminary_memory-0.2.4.tar.gz
Algorithm Hash digest
SHA256 aef0f9e4f0f1db72e0baa12a12ef6a30883543728bc13754b9a719133441a38b
MD5 2ba570f0a38be4f0400bd1a8bc40e62c
BLAKE2b-256 1af8ee1e91d6b04a217584b7230b0ec5619a321b465d091097b8658ff45d15a9

See more details on using hashes here.

File details

Details for the file luminary_memory-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for luminary_memory-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5d41fbe99a2c96dae1bea76eb2e903f4c33642841a2a7a3f6f3bbb3e73d30ec3
MD5 4097a406524ce5b97e68c55002de771b
BLAKE2b-256 754ad6fbc52e761b9e38138ffddf7a7d0331e58106cf3715a8ed71d9cf4c33a8

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 Sentry Error logging StatusPage Status page