Skip to main content

Persistent two-tier memory for AI agents. Short-term markdown + long-term SQLite with semantic search.

Project description

Agent Cerebro

PyPI Python License: MIT

Persistent two-tier memory for AI agents. Battle-tested across 134 sessions with 10 agent roles.

Short-term (markdown files, always loaded) + Long-term (SQLite + OpenAI embeddings, searched on-demand).

Install

pip install agent-cerebro

Zero required dependencies. SQLite is Python stdlib.

Optional semantic search:

pip install agent-cerebro[embeddings]
export OPENAI_API_KEY="sk-..."

Quick Start

CLI

# Initialize
cerebro init

# Store a memory (auto-dedup via cosine similarity >0.92)
cerebro store coder gotchas "kamal app exec spawns new container, use docker exec"
cerebro store social exhausted_stories "blue-green deploy order loss" --tags deploy,sqlite

# Search (semantic + keyword fallback)
cerebro search coder gotchas "kamal file not found"

# List categories
cerebro list coder

# Check health
cerebro check --all

Python API

from agentrecall import MemoryStore, MemorySearch

# Store
store = MemoryStore()
store.store("coder", "gotchas", "kamal spawns new container", tags=["kamal", "docker"])

# Search
search = MemorySearch()
results = search.search("coder", "gotchas", "kamal file not found")
for text in results:
    print(text)

# List categories
categories = store.list_categories("coder")

How It Works

Two-Tier Design

Short-term (memory/<role>.md) Long-term (SQLite + embeddings)
Active learnings, mistakes, feedback Growing lists (exhausted topics, defect patterns)
Max 80 lines, pruned regularly Unlimited entries, never pruned
Read in full at session start Searched on-demand per query

Semantic Dedup

Every store call embeds the text via OpenAI text-embedding-3-small and checks cosine similarity against all existing entries in the same role/category. Similarity > 0.92 blocks the store (raises DuplicateError).

Without an API key, falls back to exact text matching.

Search

  1. Embed the query
  2. Compute cosine similarity against all entries with embeddings
  3. Return entries above threshold (0.75), sorted by similarity
  4. If no embedding matches: keyword fallback (>=50% keyword match)
  5. No API key: keyword-only search

Graceful Degradation

Works fully offline without an OpenAI API key:

  • Store: exact text dedup (case-insensitive)
  • Search: keyword matching (>=50% of query words must appear)

Agent Skills

Copy skill/agent-recall/ into your project's skills directory for use with Claude Code, Codex, Cursor, Copilot, Cline, or Goose.

cp -r skill/agent-recall/ .claude/skills/agent-recall/

Configuration

Environment variables:

Variable Default Description
AGENT_CEREBRO_HOME ~/.agent-cerebro Memory storage directory
OPENAI_API_KEY (none) OpenAI API key for embeddings
UT_OPENAI_API_KEY (none) Preferred over OPENAI_API_KEY

CLI Reference

cerebro store <role> <category> "text" [--tags t1,t2] [--db path]
cerebro search <role> <category> "query" [--db path]
cerebro list <role> [--db path]
cerebro check [--fix] [--long-term] [--all] [--dir path] [--db path]
cerebro init [--dir path]
cerebro migrate [--dry-run] [--rebuild] [--dir path] [--db path]

agentrecall and agentmemory also work as CLI aliases.

Exit codes: 0 = success/found, 1 = not-found/validation-fail, 2 = input error.

Migration from JSONL

If you have existing JSONL memory files:

cerebro migrate --dir /path/to/memory/
cerebro migrate --rebuild  # Re-embed entries missing embeddings

License

MIT

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

agent_cerebro-0.1.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

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

agent_cerebro-0.1.1-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file agent_cerebro-0.1.1.tar.gz.

File metadata

  • Download URL: agent_cerebro-0.1.1.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for agent_cerebro-0.1.1.tar.gz
Algorithm Hash digest
SHA256 595b43fa7c6886d14ff7e103a76bfe322e0099aaea9d8d8b98146cfbca6680bc
MD5 5f015d0d34757f292b57465d3f6a1698
BLAKE2b-256 0cba3a00b5b4d23a750d7860bb3c74a3a98f739d428e580f051833dbc4558e2f

See more details on using hashes here.

File details

Details for the file agent_cerebro-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: agent_cerebro-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for agent_cerebro-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6105f73d4bb09aed52d322a30d7b6c372a2c8115e47ce2cfdfeb13cd6b7267ac
MD5 1cd969e81420580c0326c8a8ee4bc9c0
BLAKE2b-256 481593c4ebf0369debb60855ecf0533d7241dd32093bfce3636d12a29a2de5a3

See more details on using hashes here.

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