Self-hosted memory for AI agentsv0.2.18

Memory that can
show its work.

Luminary gives agents durable context with visible scope, evidence, and a safe way to say there is not enough support.

First step pip install luminary-memory
Observation 014Local store

A memory, under inspection

“The deploy target is the staging cluster.”

source
quickstart
scope
workspace / current
status
supported
  1. captureddirect observation
  2. scopedownership checked first
  3. returnedprovenance travels with context
Support is checked before context crosses the boundary.
01 / 06Evidence before confidence

01 Local by default

02 Scope before similarity

03 Abstention is a valid result

02 / Evidence path

A fact earns its way
into context.

Every candidate passes through ownership, evidence, and bounded delivery. The final answer can still be empty.

  1. A direct write or completed turn enters as an observation. Curation keeps durable facts, drops chatter, and can reconcile a correction against the current scoped store.

    ingest / whitelist / evidence / review
03 / Operating principles

Useful memory stays
legible.

Durability is not a hidden importance score. It is a set of boundaries you can inspect, explain, and change.

A

Scope before similarity

Ownership filters run before semantic, keyword, graph, temporal, and fallback candidates.

scope → candidates
B

Support outranks confidence

A confident guess is not promoted into a durable fact. Evidence stays attached to the claim.

claim → evidence
C

Core is not recall

Durable rules are declared and loaded every session, while ordinary memories remain query-bound.

core ≠ query
D

Conflicts stay visible

Different values remain versioned and auditable until explicit supersession and evidence arrive.

conflict ≠ replacement
04 / First run

Start with a fact.
Keep the store visible.

SQLite is the default. The first useful loop is simple: write one fact, ask for it, and inspect what came back.

Open the full quickstart
First useful loopthree actions
  1. 01pip install luminary-memory
  2. 02luminary-memory add "deploy target is staging" --tags deploy
  3. 03luminary-memory recall "where do we deploy?" --json
Python / first use
from luminary_memory import MemoryClient

client = MemoryClient(db_path="memory.db")
client.ingest("The deploy target is the staging cluster", tags=["deploy"])
result = client.recall("where do we deploy?")
print(result.status, result.confidence)
05 / System shape

One loop.
Four signals.

Local storage, multiple retrieval strategies, and lifecycle maintenance work together without hiding the path between a claim and a response.

01

Ingest

Facts enter with source, tags, scope, and optional evidence.

write / curate
02

Store

SQLite keeps the default path local, searchable, and inspectable.

sqlite / fts5
03

Recall

Semantic, keyword, temporal, and graph candidates are fused and scoped.

rrf / evidence
04

Maintain

Post-turn review catches grounded corrections; TTL cleanup, consolidation, pruning, and health keep the store useful.

review / clean / report
Hermes boundary

One provider. One authority.

Luminary connects through Hermes’ public memory-provider entry point. It retains and reconciles turns on its own queue while the installer uses existing config keys and leaves Hermes’ source tree alone.

Read the integration note
Provider configuration
memory:
  provider: luminary
  memory_enabled: false
  user_profile_enabled: false

Capability-based compatibility. Setup stops visibly when the public contract is unavailable.

06 / Field notes

The docs are part
of the product.

Tracked source notes for builders, operators, and integration work. Search by behavior, surface, or task.

End of the first note

Memory with a
paper trail.

Local by default. Strict where it matters. Explicit about the boundary between a durable rule, a recalled fact, and a guess.