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.
Install
pip install sibyl-memory-langgraph
Part of the Sibyl Memory plugin family. See the CHANGELOG for release notes.
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.
Metadata
Release files for sibyl-memory-langgraph 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sibyl_memory_langgraph-0.2.0.tar.gz | 63.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sibyl_memory_langgraph-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.8 kB
Release files / sibyl_memory_langgraph-0.2.0.tar.gz
| Download URL | sibyl_memory_langgraph-0.2.0.tar.gz |
|---|---|
| Size | 63.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d03b21cea34c8e925381bad535a5e9d6799ae50547db8e1224b1991ad71fc61f
|
|
BLAKE2b-256 checksum How to use checksums |
6884549bceae9db08c1f4557030e8b2e5824d511a70df7048f52004a8daec687
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / sibyl_memory_langgraph-0.2.0-py3-none-any.whl
| Download URL | sibyl_memory_langgraph-0.2.0-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e7d0dfc98ddcf35f1a2996e396ab279ffd28d6af4fe5c7310389bb1ccc1ea33
|
|
BLAKE2b-256 checksum How to use checksums |
b29f605e11f48a6dd4f8dc26a9e4c1ff702e9969018eb0d333906a4485643a45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|