Hermes Agent memory provider for the Sibyl Memory Plugin family. Local-first, SQLite-backed, structured-tier memory for Hermes v0.10.0+.
Project description
sibyl-memory-hermes
Hermes Agent memory provider for the Sibyl Memory Plugin family. Local-first, SQLite-backed, structured-tier memory for Hermes v0.10.0+.
Drop-in memory for Hermes Agent (and any other Python agent framework). Memory content lives on the user's own machine, never on our cloud. Built on sibyl-memory-client, the underlying SDK.
pip install sibyl-memory-hermes
Quickstart
from sibyl_memory_hermes import SibylMemoryProvider
from hermes_agent import Agent
# Default: reads ~/.sibyl-memory/credentials.json (written by `sibyl init`)
# and opens ~/.sibyl-memory/memory.db
agent = Agent(memory=SibylMemoryProvider())
# Per-turn memory (Hermes contract):
agent.run("What did I work on yesterday?")
# SibylMemoryProvider.save_context(inputs, outputs) lands in the journal
# Fact store:
agent.memory.remember(
"project", "atlas",
{"status": "active", "stage": "staging"}
)
agent.memory.recall("project", "atlas")
# Full-text search across all entities:
results = agent.memory.search("error budget")
Why "local-first"?
Mem0, Zep, Honcho, and every other agent-memory product centralize user context on their servers. The Sibyl Memory Plugin keeps the data on the user's disk. Our cloud schema has no memory-content tables in it. Even with admin database access we cannot read what users have written. That's the difference between "we promise we don't" and "we structurally can't."
| Sibyl Memory Plugin | Typical hosted memory | |
|---|---|---|
| Memory content lives | on user's disk | on vendor's servers |
| Query latency | local SQLite (sub-ms) | round-trip + vector search |
| Privacy claim | structurally enforced | policy-only |
| Free-tier cost to vendor | near-zero | scales with users |
Architecture: five tiers, not one bucket
The provider routes operations onto the appropriate memory tier instead of dumping everything into a single vector store:
| Intent | Tier | Storage call |
|---|---|---|
| save the conversation turn | COLD journal | save_context(inputs, outputs) |
| remember a fact | WARM entity | remember(category, name, body) |
| current state | HOT state | set_state(key, body) |
| lookup a runbook | REFERENCE | set_reference(key, body) |
| archive stale entity | ARCHIVE | archive(category, name) |
| search by content | FTS5 | search(query) |
Different intents, different lookups, no embedding model required. FTS5 covers full-text search out of the box.
Hermes contract
If Hermes v0.10.0+ is installed, SibylMemoryProvider inherits Hermes' MemoryProvider ABC at import time so framework-level isinstance checks pass. The contract methods:
save_context(inputs, outputs)writes to the journalload_context(limit)reads recent turnsclear_context()no-op (journal is append-only by design)
If Hermes isn't installed, the provider still works standalone. Any framework that calls these methods directly works.
Activation
Most users get here via the sibyl init CLI (from the sibyl-labs-cli package), which writes ~/.sibyl-memory/credentials.json after browser authentication. The provider auto-detects this file on construction.
For pre-activation use (e.g., in tests):
from sibyl_memory_hermes import SibylMemoryProvider
provider = SibylMemoryProvider(
db_path="/tmp/test-memory.db",
tenant_id="test-user",
)
Free tier
- 2 MB local soft cap (gentle prompt, not a hard wall)
- Single device
- All five tiers (HOT/WARM/COLD/REFERENCE/ARCHIVE)
- FTS5 full-text search
- Multi-tenant isolation
Paid tiers (Stake, Sync, Lifetime, Enterprise) unlock self-learning, the memory check-up, no cap, and (in build) cross-device encrypted sync. See docs.sibyllabs.org/memory/tiers.
Documentation
Full docs: docs.sibyllabs.org/memory/. Install guide: docs.sibyllabs.org/memory/install.
License
MIT. Package on PyPI: pypi.org/project/sibyl-memory-hermes.
Citation
The Sibyl Memory Plugin holds #2 globally on the LongMemEval Oracle benchmark. The benchmark methodology and report are at blog.sibylcap.com/longmemeval-v2.
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 Distribution
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_hermes-0.1.1.tar.gz.
File metadata
- Download URL: sibyl_memory_hermes-0.1.1.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f348100468edfcffc505b21c1313ea4706955d516f0d18e11097ffc92f99235
|
|
| MD5 |
75002731faad42f6b6d015634adefa12
|
|
| BLAKE2b-256 |
81894d0cdf6a8e3f2bef54ba43a95272af000534cab522be7dcfd8bde9eb6a7d
|
File details
Details for the file sibyl_memory_hermes-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sibyl_memory_hermes-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.1 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 |
4c815e957f9968794003b3cd75524dfacf35cfbb8e36e94337f59d9f0f108d12
|
|
| MD5 |
656f0e0a6f16caf37e9cdcbf8676b9e9
|
|
| BLAKE2b-256 |
82c5ffcae39a2cc1a4e187ce18b71f96f5c7a8dbf98aa634c638b1d79a181b19
|