Four-layer cognitive memory for AI agents — persistent recall, semantic search, knowledge graph, and learned evolution. No API key required.
Project description
cortex-ai
Four-layer cognitive memory for AI agents. Persistent recall across sessions, semantic search, a knowledge graph, and a learning system that evolves from your corrections. No API key required — runs locally on CPU.
pip install cortex-recall
cortex init
What it does
AI agents have amnesia. Every new conversation starts blank. cortex-ai gives them memory that works like a brain — organized, searchable, and self-maintaining.
| Layer | Name | What it does |
|---|---|---|
| L1 | Identity | Who the agent is, rules, personality (always loaded) |
| L2 | Recall | 72h deterministic short-term log + semantic search across history (on demand) |
| L3 | Knowledge | External docs, vendor manuals, reference material (RAG) |
| L4 | Evolution | Learns from corrections, promotes patterns to permanent rules |
| L5 | Pattern Detection | Clusters correction events using sentence-transformers, auto-promotes to feedback files |
Plus Dream (Default Mode Network): background maintenance that prunes the 72h log, consolidates memories, applies half-life decay, and runs L5 pattern clustering. Runs on cron. Zero token cost.
How it works
cortex-ai stores memories in a local "palace" — a ChromaDB vector store plus a SQLite knowledge graph. Memories are organized into wings (top-level topics) and rooms (aspects within a topic), then auto-classified by content. Search is semantic, not keyword: ask the meaning of a thing and get matches even if the words don't line up.
The architecture is designed around how the human brain actually organizes memory — separate systems for identity, episodic recall, semantic knowledge, and procedural learning. You can read each layer independently, or combine them via the unified search interface.
Quickstart
# Install
pip install cortex-recall
# One-time setup (creates ~/.cortex/ palace)
cortex init
# Mine an existing project directory into memories
cortex mine /path/to/project
# Search semantically
cortex search "how did we handle authentication?"
# See palace status
cortex status
MCP server (for Claude Code, etc.)
cortex-ai ships an MCP (Model Context Protocol) server so AI agents can query the palace as a tool:
# Register with Claude Code
claude mcp add cortex -s user -- python -m cortex.mcp_server
Available tools:
cortex_search— semantic search across all memoriescortex_status— palace overviewcortex_list_wings— top-level topicscortex_list_rooms— aspects within a wingcortex_get_taxonomy— full wing → room treecortex_check_duplicate— avoid filing the same memory twicecortex_add— file a new memorycortex_kg_add— add a fact to the knowledge graphcortex_kg_query— query relationshipscortex_stm_log— log an event to the 72h short-term memorycortex_stm_fetch— fetch and filter the 72h event logcortex_dream_run— run full nightly maintenance sweepcortex_dream_consolidate— deduplicate and compact palace memoriescortex_dream_decay— apply half-life decay to memoriescortex_dream_patterns— L5 pattern detection and promotion
Tech stack
- Python 3.9+
- ChromaDB — vector embeddings, semantic search, local-first
- SQLite — knowledge graph with temporal triples
- sentence-transformers —
all-MiniLM-L6-v2(runs on CPU, ~80MB model) - No external APIs — everything runs on your machine
What's new in v0.6.1 — Completed VectorBackend write API + thread-safe memory backends
v0.6.1 closes gaps for external adapter authors.
VectorBackend.add(),delete(),upsert()-- the write API is now part of the ABC, so custom vector adapters (DynamoDB+OpenSearch, Postgres+pgvector) can implement the full storage contract- Thread-safe
Memory*Backend-- all memory backends usethreading.Lock, safe for concurrent Lambda warm-container invocations - Logged plugin discovery -- broken entry-point plugins log a warning to stderr instead of silently being ignored
- Zero breaking changes -- all v0.6.0 and v0.5.0 code works identically
What's new in v0.6.0 — Pluggable Backends (Lambda-ready)
v0.6.0 cuts a storage abstraction layer so cortex-recall works on serverless runtimes like AWS Lambda, not just local machines.
Three new interfaces (STMBackend, VectorBackend, KVBackend) with built-in filesystem and in-memory implementations. External packages can register custom backends (DynamoDB, Postgres, etc.) via Python entry_points or direct call.
# Works on Lambda -- no filesystem, no ChromaDB cold-start
from cortex.stm import STM
from cortex.backends.memory import MemorySTMBackend
stm = STM(backend=MemorySTMBackend())
stm.log({"epoch": 1234567890, "project": "my-lambda", "query_head": "hi"})
# Dream nightly maintenance with memory backends
from cortex.dream import Dream
from cortex.backends.memory import MemoryVectorBackend, MemorySTMBackend, MemoryKVBackend
dream = Dream(
vector_backend=MemoryVectorBackend(),
stm_backend=MemorySTMBackend(),
kv_backend=MemoryKVBackend(),
)
result = dream.run()
Zero breaking changes -- all v0.5.0 code works identically. See docs/DEPLOYMENT.md for full guide.
License & attribution
MIT License. See LICENSE and NOTICE.
cortex-ai is a fork of MemPalace by milla-jovovich. The MemPalace engine — ChromaDB-backed search, knowledge graph, palace structure, miner system — is the foundation. cortex-ai adds the four-layer cognitive architecture, MCP server interface, hooks integration, and onboarding flow on top.
Status
cortex-ai v0.6.1 is in beta. Issues welcome at https://github.com/jdomian/cortex-ai/issues.
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
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 cortex_recall-0.6.1.tar.gz.
File metadata
- Download URL: cortex_recall-0.6.1.tar.gz
- Upload date:
- Size: 130.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0abca50ab5d6494c0ace1b67206770fca88089879167c058fc58bb8a23643918
|
|
| MD5 |
0f928aea1f61942647b46e391b39b913
|
|
| BLAKE2b-256 |
3e90affcd1004fda2fac12eafb69faf8b0c3e5bf5660cfeab6f661af6f6874e7
|
File details
Details for the file cortex_recall-0.6.1-py3-none-any.whl.
File metadata
- Download URL: cortex_recall-0.6.1-py3-none-any.whl
- Upload date:
- Size: 144.5 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 |
adbd6f09898413da33984482ba7b1fc7ca21e19713afdb07eadbbd23fe800c3f
|
|
| MD5 |
f7a9997c70953c088084d36b70ae1138
|
|
| BLAKE2b-256 |
372c821e6d13a7c265f75f2d2a2bc30c3a30a0e2d18ea422053953be06f394ae
|