Skip to main content

Local-first persistent memory with semantic search. sqlite-vec powered. No cloud.

Project description

Sovereign Brain

CI

License: MIT Python 3.10+ Tests: 30 passing

Local-first persistent memory with semantic search. sqlite-vec powered. No cloud dependency. Built for AI agents that need to remember.

Features

Feature Description
Key-value store Read, write, delete brain entries with categories and priorities
Semantic search Vector similarity via sqlite-vec + Ollama embeddings
Knowledge graph Entries linked with typed, weighted edges
Hybrid retrieval 3-signal search: keyword + semantic + graph, re-ranked
Temporal awareness Auto-detects event dates, tracks lifecycle (upcoming/today/past)
Anti-repetition Penalizes recently-shown results per session (up to 90%)
Freshness decay Exponential decay scoring with configurable half-life
Time-window queries Filter by date range
Auto-archive Completed events archived after N days
Chat history Per-session conversation tracking
Zero cloud Everything runs locally. Your data stays yours.

Install

pip install sovereign-brain

# For semantic search (recommended):
pip install sovereign-brain[vec]
ollama pull mxbai-embed-large

Quick Start

from sovereign_brain import BrainAPI

brain = BrainAPI()

# Write
brain.write("project.api", {"status": "active", "date": "2026-06-05"},
            category="projects", description="API redesign", priority=8)

# Read
data = brain.read("project.api")  # {"status": "active", ...}

# Search (keyword)
results = brain.search("api redesign", limit=5)

# Hybrid search (keyword + semantic + graph + freshness)
results = brain.hybrid_search("what's the api status", k=5, chat_id="session1")

# Knowledge graph
brain.add_edge("project.api", "project.frontend", "blocks", weight=0.9)
neighbors = brain.graph_neighbors("project.api", depth=2)

# Temporal awareness
temporal = brain.temporal_extract(data)  # {"event_date": "2026-06-05", "status": "active"}
status = brain.temporal_status(temporal)  # "today"

# Chat history
brain.save_chat("session1", "user", "what's the api status?")
brain.save_chat("session1", "assistant", "The API redesign is active.")
history = brain.chat_history("session1")

# Stats
brain.stats()  # {"entries": 42, "graph_edges": 15, "vectors": 200, "chats": 3}

brain.close()

Anti-Repetition

When you pass chat_id to hybrid_search, the brain tracks what was shown and penalizes repeated results:

# First call: normal results
r1 = brain.hybrid_search("deployment", k=3, chat_id="s1")

# Second call: previously-shown entries get 30% penalty per occurrence
r2 = brain.hybrid_search("deployment", k=3, chat_id="s1")
# Different results surface to avoid repetition

Freshness Decay

Results are scored with exponential freshness decay (48h half-life by default):

brain.freshness_score(datetime.now().isoformat())     # 1.0 (just updated)
brain.freshness_score("2026-06-01T00:00:00")           # ~0.25 (4 days old)
brain.freshness_score("2026-05-01T00:00:00")           # ~0.0 (very old)

Architecture

sovereign_brain/
  brain.py    # BrainAPI class — all features in one module
  __init__.py # Exports BrainAPI, get_brain

Storage: SQLite (brain_context + brain_graph + brain_chat_history + brain_retrieval_log)
Vectors: sqlite-vec extension (optional, graceful fallback to keyword search)
Embeddings: Ollama local API (mxbai-embed-large, 1024 dimensions)

Configuration

brain = BrainAPI(
    db_path="./my_brain.db",                    # Custom DB location
    ollama_url="http://localhost:11434/api/embed",  # Ollama endpoint
    embed_model="mxbai-embed-large",            # Embedding model
    vec_extension_path="/path/to/vec0",         # sqlite-vec extension
)

License

MIT. Built by Like One Foundation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sovereign_brain-1.0.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sovereign_brain-1.0.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file sovereign_brain-1.0.1.tar.gz.

File metadata

  • Download URL: sovereign_brain-1.0.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sovereign_brain-1.0.1.tar.gz
Algorithm Hash digest
SHA256 33bc0565d0de9bc804b39029b41373d8909fe193a9af5cd17bb5a4f698c8d33e
MD5 b2e47c4250217e3d2d5fc4f2b906e4eb
BLAKE2b-256 8370ffabc74f60ee223f9e48711a21692cccebcdda33f75a7233a1344a9c6ce7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sovereign_brain-1.0.1.tar.gz:

Publisher: publish.yml on sophiacave/sovereign-brain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sovereign_brain-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sovereign_brain-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d61cef9fb41b6e146b69a327dbb734bef480a17da6e94c15e5770f0c4a77a8dc
MD5 31135241492067969f5bb20b13d9f450
BLAKE2b-256 fe4ad793d1b640ed444e67aace735a52e678152d125fdb51083f7ce22b9b3c38

See more details on using hashes here.

Provenance

The following attestation bundles were made for sovereign_brain-1.0.1-py3-none-any.whl:

Publisher: publish.yml on sophiacave/sovereign-brain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page