Getting started with FluctlightDB

July 11, 2026 · View on GitHub

FluctlightDB is a database engine for AI agents — persistent memory with write/recall APIs, not SQL tables and not “embed everything and search.” Read the README first; this page covers install paths, comparisons, storage, and FAQ.

Which path should I use?

┌─────────────────────────────────────────────────────────┐
│  One brain folder per agent                           │
│  e.g. /tmp/my-agent-brain or                          │
│       ~/.fluctlight/tenants/<agent_id>/brain/         │
├─────────────────────────────────────────────────────────┤
│  Default — in-process (like sqlite3)                  │
│  pip install "fluctlightdb[native]"                   │
│  from fluctlightdb import connect_embedded              │
├─────────────────────────────────────────────────────────┤
│  Shared / remote / multi-agent                        │
│  pip install fluctlightdb + FluctlightClient (HTTP)   │
│  + Docker or release binary (fluctlight serve)        │
├─────────────────────────────────────────────────────────┤
│  Explore at the terminal                              │
│  fluctlight shell (needs binary from Releases)        │
└─────────────────────────────────────────────────────────┘

Provision per-agent brain + API key on a server:

fluctlight tenant create agent-42
fluctlight tenant provision agent-42 --role admin
# brain: ~/.fluctlight/tenants/agent-42/brain/

Quick start

No server. Rust core runs inside your Python process.

On modern Linux (Debian 12+, Ubuntu 23.04+), use a venv — not sudo pip (PEP 668):

python3 -m venv .venv
source .venv/bin/activate
pip install "fluctlightdb[native]==0.5.10"
from fluctlightdb import connect_embedded

brain = connect_embedded("/tmp/my-agent-brain")
brain.experience("User prefers dark mode", context="settings", salience=0.7)
print(brain.activate("dark mode"))  # offline: cue needs token overlap
brain.checkpoint()

Read-only hot recall: get_recall_client(path).

Fast path (agents that must feel instant)

Default for latency-sensitive agents: embedded recall, not HTTP.

from fluctlightdb import connect_agent_fast

brain = connect_agent_fast("/tmp/my-agent-brain")  # hybrid index + shallow spread
brain.experience("User prefers dark mode", context="settings", salience=0.7)
print(brain.activate("dark mode"))  # typically sub-ms to low-ms with sidecar index
GoalAPIWhen
Live agent (full memory + fast recall)connect_agent_fast()Production agent loops
Bulk RAG / IRconnect_index()Backfills, BEIR-style benches
Long conv evalconnect_conv()LoCoMo / LongMemEval harness
Remote / shared brainFluctlightClient + activate-liteMulti-tenant; slower than embedded

After bulk ingest, rebuild the FTS5+HNSW sidecar: fluctlight index rebuild --path <brain>.
Research-backed tuning (SYNAPSE, SwiftMem, Zep, Mem0) and env vars: FAST_PATH.md.

Or from this repo: ./scripts/install-python-client.sh (HTTP client); add [native] for embedded.

2. HTTP client + server (optional)

Use when several processes share one brain or ops runs the database.

Docker:

docker pull ghcr.io/voxmastery/fluctlightdb:latest
docker run -d -p 8792:8792 \
  -e FLUCTLIGHT_API_KEYS=default:your-secret-key:write \
  -v fluctlight-data:/data \
  ghcr.io/voxmastery/fluctlightdb:latest

Use your-secret-key as FLUCTLIGHT_API_KEY in Python. Details: DOCKER.md.

Release binary (GitHub Releases):

tar xzf fluctlight-*-linux-x86_64.tar.gz
export FLUCTLIGHT_API_KEYS=default:your-secret-key:write
./fluctlight serve --path ~/.fluctlight/tenants/default/brain

Building from source with cargo is for contributors only.

Python:

import os

os.environ["FLUCTLIGHT_SERVE_URL"] = "http://127.0.0.1:8792"
os.environ["FLUCTLIGHT_API_KEY"] = "your-key"

from fluctlightdb import FluctlightClient

client = FluctlightClient.from_env()
client.experience("User prefers dark mode", context="settings")
print(client.activate("dark mode"))

3. REPL (optional — needs server binary)

fluctlight shell --local --path /tmp/demo-brain
fluctlight> experience user prefers dark mode
fluctlight> recall dark mode
fluctlight> list 5
fluctlight> quit

UX comparison: SQL vs Vector vs Fluctlight

Mental model

SQL (Postgres, SQLite)Vector DB (Qdrant, Pinecone)FluctlightDB
What you storeRows in tablesVectors + JSONMemories (events with context)
How you querySELECT … WHEREsimilar vectorsactivate(cue) — recall by meaning
Trusted vs guessedYour schemaYour payload fieldsBuilt-in (file/ledger beats chat)
Over timeMigrationsRe-indexConsolidation & growth (see Manifesto)

Developer UX (from your agent code)

SQLVectorFluctlight
Installbuilt-in / pippip install qdrant-clientpip install "fluctlightdb[native]" (embedded) or fluctlightdb (HTTP)
In-processsqlite3rareconnect() with [native]
Client/serverTCP to PostgresHTTP/gRPCoptional fluctlight serve (HTTP)
Hot-path latency~0.1 ms~2–5 ms (ANN)~0.002 ms embedded, ~1–5 ms HTTP (localhost)
Best forStructured business dataDocument similarityAgent memory across sessions

Operator UX (human at a terminal)

TaskSQLVector DBFluctlight
Connectpsql, sqlite3curl / SDK / web UIfluctlight shell
Browse rowsSELECT * LIMIT 10scroll --limit 10list 10
SearchWHERE col LIKE '%x%'similarity searchrecall wallet balance
Inspect oneWHERE id = ?get point by idget <uuid>
Ground truthmanual is_verified columnpayload flagverified / warnings
Scripting--json / CSVJSON API\json on or Python SDK
Dumppg_dumpexport collectionexport raw

Fluctlight is closest to psql + Qdrant scroll, but verbs are brain-native (recall, experience, sleep) — not SQL syntax. See CLI.md.


One brain per agent — is one file OK?

Yes, as a concept — one logical store per agent, like one SQLite file or one Qdrant collection.

StorePhysical shape
SQLiteagent.db (single file)
Qdrant local./storage/collections/my_agent/ (folder)
Fluctlight v4brain/ folder + sidecar index (e.g. ~/.fluctlight/tenants/default/brain/)

You copy/back up that path like you would agent.db or a Qdrant storage dir. Legacy single-file .flct still loads; new installs use the v4 folder layout. See DEPLOYMENT.md for backup scripts.


Next steps


FAQ for newcomers

What is FluctlightDB in one sentence?
A database engine for AI agents: save past interactions, recall them from a cue, and rank trusted sources above chat guesses.

Is this a vector database?
No. You can optionally attach vectors, but recall is driven by the engine’s memory graph and source trust — not “nearest embedding wins.”

How is this different from mem0 / Zep / LangMem?
Those are usually SDKs + pipelines: extract facts from chat, embed them, search a vector store. FluctlightDB is a database engine with its own storage and query model (experience, activate). Good when you want memory to be infrastructure, not a prompt-stuffing layer.

Do I need Rust or cargo?
No — for agent apps, pip install fluctlightdb (or [native]) inside a venv is enough. Rust is only for contributors and optional server builds.

Why does pip install fluctlightdb say externally-managed-environment?
Your OS Python is reserved for system packages (PEP 668). Create a venv (python3 -m venv .venv && source .venv/bin/activate) then run pip install again. Do not use --break-system-packages unless you fully accept the risk to system Python.

Do I write SQL?
No. Use experience, activate, list, or the REPL. SQL habits map in CLI.md.

Can I replace Postgres?
Not for billing, inventory, or reports. Use Fluctlight for what the agent should remember between runs.

How do I know what's true?
Use verified / warnings in the shell, or verified_context in the API — data from files and ledgers ranks above unverified chat.