LangGraph BaseStore backed by Sibyl Memory (SQLite + FTS5, no vector database, no embeddings).
Project description
sibyl-memory-langgraph
A LangGraph BaseStore backed by
Sibyl Memory — durable, long-term, cross-thread memory
for your agents on SQLite + FTS5. No vector database, no embeddings.
from sibyl_memory_langgraph import SibylStore
from langgraph.graph import StateGraph
store = SibylStore() # ~/.sibyl-memory/memory.db, free tier
graph = StateGraph(State, store=store)
Direct use:
store.put(("memories", "u1"), "fact1", {"text": "prefers dark mode"})
item = store.get(("memories", "u1"), "fact1")
hits = store.search(("memories",), query="dark mode") # lexical, subtree
names = store.list_namespaces(prefix=("memories",))
Mapping
| LangGraph | Sibyl Memory |
|---|---|
namespace tuple |
category ("/".join(namespace)) |
key |
entity name |
value dict |
entity body (JSON) |
Scope
- Long-term Store only (not a checkpointer).
searchis lexical FTS5, not vector similarity.PutOp.indexandPutOp.ttlare accepted and ignored (no embedding index, no TTL).- Namespace elements must be non-empty and contain no
/or...
Identity
SibylStore() with no explicit client or tenant_id binds to the activated
account: it reads ~/.sibyl-memory/credentials.json (written by sibyl init,
looked up next to the DB file) and resolves the tenant via the canonical ladder
credentials.tenant_id -> credentials.account_id -> DEFAULT_TENANT
DEFAULT_TENANT is used only when no credentials are present (un-activated). The
credentials file is symlink-guarded — a symlinked credentials.json is treated
as absent rather than followed. Pass tenant_id="..." to override, or
client=my_memory_client to use that client's tenant as-is.
Local-first & telemetry
Memory reads and writes are fully local — a SQLite database in
~/.sibyl-memory/, no network round-trip for any store operation. This adapter
inherits the same posture as the underlying sibyl-memory-client:
- Un-activated (no credentials): zero network. Nothing leaves the machine.
- Activated (account credentials present): the client may send a
privacy-preserving, debounced usage heartbeat — an aggregate operation
count only, never memory content, query text, entity names, or PII beyond
the
account_id— plus the cap-verification ping that lets paid tiers exceed the free-tier local cap. Both are fire-and-forget and offline-safe. - Opt out entirely with the environment variable
SIBYL_MEMORY_TELEMETRY=0.
MIT. Built by Sibyl Labs, LLC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sibyl_memory_langgraph-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sibyl_memory_langgraph-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c62215fe4c6b322b07b10c4bfaef9b8211dd2f22c10f57701a056a2670a6b738
|
|
| MD5 |
8f3deafdcd02d530c462e9ad89dade6a
|
|
| BLAKE2b-256 |
8d335a815636a7dd0bd271ff256e03f6b214d6225048a3a0c1b455c036879a36
|