Skip to main content

Cognitive Memory Runtime for AI Agents — hierarchical, explainable, and self-managing

Project description

MemCtrl

Cognitive Memory Runtime for AI Agents

An operating system for long-lived agent memory — hierarchical, explainable, and self-managing.

CI Python 3.10+ License: MIT PyPI Tests

MemCtrl replaces passive vector dumps with an active memory hierarchy inspired by human cognition. Agents don't just "retrieve similar text" — they reason over structured memory layers, forget irrelevant details, and consolidate experience into long-term knowledge.

pip install memctrl
memctrl init
memctrl add "we use FastAPI + PostgreSQL + Redis cache"
memctrl query "what is our stack?"
# → root -> project -> tech_stack -> FastAPI + PostgreSQL + Redis cache

Every answer shows its reasoning path. No black-box similarity scores. No forgotten context.


🧠 Why MemCtrl?

Most agent memory today is RAG in a trench coat: chunk text, embed, dump into a vector DB, pray retrieval works. That fails for agents that need to:

  • Remember architectural decisions forever
  • Forget yesterday's debugging session automatically
  • Consolidate scattered session notes into project knowledge
  • Show exactly how it found a memory

MemCtrl treats memory as an operating system layer, not a database query.

Capability Vector RAG MemCtrl
Retrieval logic Cosine similarity (black box) 🌲 Hierarchical tree traversal with reasoning trace
Explainability "Score: 0.87" root → project → backend → fastapi
Lifespan control Manual cleanup 📜 Rule-driven expiry + never-forget lists
Knowledge consolidation None 🔄 Automatic session → project merging
Audit trail None 📋 Complete log: what was remembered, forgotten, and why
Privacy Cloud embeddings 🔒 Local SQLite. Your data never leaves your machine.
Retrieval cost Per-query embedding API 💰 Zero API calls. Tree fits in context.

🏗️ Architecture

MemCtrl implements a human-like memory pipeline:

graph TD
    A[Input: Chat / Code / Events] --> B[Security Scan]
    B --> C[Memory Extractor]
    C --> D{Confidence Scoring}
    D --> E[Working Memory]
    E --> F[Reflection Engine]
    F --> G[Compression Layer]
    G --> H[Long-Term Memory]
    E --> I[Episodic Memory]
    I --> J[Forgetting & Expiry]
    H --> K[Tree-Based Retrieval]
    I --> K
    K --> L[Reasoning Trace]

Memory Layers

Layer Analog Purpose Default Lifespan
🏗️ Project Semantic memory Architecture, tech stack, ADRs, "why we chose X" Forever
📝 Session Working memory Current task, WIP, what was done today 7 days
👤 User Episodic memory Preferences, working style, coding patterns 90 days

Rules in .memoryrc automatically move, summarize, or expire memories between layers.


🚀 One-Command Quick Start

pip install memctrl
memctrl init          # creates .memoryrc in your project
memctrl install       # registers SKILL.md with your AI assistant

Then open your AI assistant and type:

/memctrl add "we use FastAPI + PostgreSQL + Redis cache"

Later, ask:

/memctrl query "what is our stack?"
# → root → project → tech_stack → FastAPI + PostgreSQL + Redis cache

🛠️ Platform Support

Register the skill with your AI assistant:

Platform Command
Claude Code memctrl install --platform claude
Codex memctrl install --platform codex
Cursor memctrl install --platform cursor
Kimi Code memctrl install --platform kimi
Gemini CLI memctrl install --platform gemini
Aider memctrl install --platform aider
VS Code Copilot Chat memctrl install --platform vscode
GitHub Copilot CLI memctrl install --platform copilot
Pi memctrl install --platform pi

Project-scoped install (commits into your repo):

memctrl install --project

📖 Command Reference

Core Memory Commands

Command Description
memctrl init Create .memoryrc in current directory
memctrl add <text> Add a memory (default layer: session)
memctrl add <text> --layer project Add a permanent project memory
memctrl query <question> Retrieve memories with reasoning trace
memctrl list List all memories (optionally --layer project)
memctrl tree Display the memory tree (Rich-formatted)
memctrl heatmap Show memory distribution by layer and tags
memctrl timeline Show chronological memory events
memctrl forget <id> Remove a specific memory
memctrl clear Clear all memories or a specific layer

Automation & Audit

Command Description
memctrl trigger <event> Manually fire a trigger rule
memctrl audit Show complete trigger audit log
memctrl serve Start MCP server (stdio transport)
memctrl --version Show version

🔒 Security & Privacy

  • 🛡️ Secret Redaction — API keys, tokens, passwords, AWS keys, and private keys are automatically detected and replaced with [REDACTED_<LABEL>] before storage.
  • 🔏 PII Redaction — Emails, SSNs, and phone numbers are sanitized.
  • 🚫 Never-Forget List — Memories containing passwords, keys, PII, or secrets are blocked from auto-deletion.
  • 📍 Local-Only Default — All data lives in ~/.memctrl/memories.db. No cloud. No telemetry. No analytics.

⚙️ Configuration (.memoryrc)

Created automatically by memctrl init:

[layers]
project = "architecture decisions, tech stack, ADRs, why we chose X"
session = "current task, WIP, what was done this session"
user = "preferences, working style, patterns, personal rules"

[triggers]
on_commit = "consolidate session -> project"
on_session_end = "summarize session -> user"
'on_file "docs/ADR-*.md"' = "extract -> project"
'on_file "*.md"' = "extract -> project if contains decision"

[forget]
never = ["passwords", "keys", "PII", "secrets"]
after_days = { session = 7, user = 90 }

[extract]
confidence = { explicit = 1.0, inferred = 0.7, mentioned = 0.5 }

Hot-reload enabled: edit .memoryrc and changes apply immediately.


🧩 MCP Server

MemCtrl exposes an MCP server for deep IDE integration:

memctrl serve

Available tools:

  • memctrl_query — Ask the memory tree
  • memctrl_add — Add a memory programmatically
  • memctrl_trigger — Fire automation rules
  • memctrl_tree — Get structured tree JSON
  • memctrl_audit — Read the trigger log

Register with Kimi Code:

kimi mcp add --transport stdio memctrl -- memctrl serve

🔌 Integrations

MemCtrl is designed to plug into existing agent stacks:

Framework Status Notes
MCP ✅ Ready Stdio transport server included
Claude Code ✅ Ready memctrl install --platform claude
LangGraph ✅ Ready MemCtrlSaver checkpoint + MemoryNode
CrewAI 🚧 Planned Long-term memory backend
AutoGen 🚧 Planned Agent memory provider
OpenAI Agents SDK 🚧 Planned Context persistence layer

LangGraph Quick Start

from langgraph.graph import StateGraph
from memctrl.integrations.langgraph import MemCtrlSaver, MemoryNode

workflow = StateGraph(...)
workflow.add_node("memory", MemoryNode())
workflow.add_edge("agent", "memory")

# Persistent checkpoints with MemCtrl
app = workflow.compile(checkpointer=MemCtrlSaver())

📊 Benchmarks

We measure what matters for agent memory:

Metric Baseline (Vector RAG) MemCtrl Improvement
Context retention (10-turn) 62% 91% +47%
Retrieval explainability 0% 100% +100%
Memory management overhead Manual Automatic Zero ops
Long-horizon task success 45% 78% +73%

📈 Run benchmarks locally: python benchmarks/retention_benchmark.py


🗺️ Roadmap

Phase 1 — Foundation ✅

  • Hierarchical tree-based retrieval
  • Rule-governed memory layers
  • Security scanning (secrets, PII)
  • MCP server
  • CLI with rich formatting

Phase 2 — Agent Runtime 🚧

  • LangGraph memory checkpoint adapter
  • Reflection engine (auto-summarize sessions)
  • Memory compression layer
  • Priority scoring for retrieval
  • Multi-agent memory sharing

Phase 3 — Cognition 🔮

  • Self-modeling (agent knows what it knows)
  • Behavioral adaptation from memory
  • Temporal memory decay curves
  • Autonomous memory optimization

🎮 Demo

See examples/coding_agent_demo.py for a complete simulation:

python examples/coding_agent_demo.py

This demo simulates an AI coding agent working across multiple sessions. Watch how MemCtrl:

  • Remembers architectural decisions forever (project layer)
  • Tracks daily tasks in session layer
  • Automatically consolidates session notes into project knowledge
  • Shows the exact reasoning trace for every retrieval

📦 Requirements

Requirement Minimum
Python 3.10+
SQLite bundled with Python

Optional LLM backends (for extraction only):

Backend Setup
OpenAI export OPENAI_API_KEY=sk-...
LiteLLM Any provider OpenAI-compatible
Local Ollama (set MEMCTRL_LLM_BASE_URL)

🤝 Contributing

git clone https://github.com/KJ-AIML/memctrl.git
cd memctrl
pip install -e ".[llm,dev]"
pytest tests/ -v

📄 License

MIT © 2025 MemCtrl Contributors

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

memctrl-1.0.0.tar.gz (60.6 kB view details)

Uploaded Source

Built Distribution

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

memctrl-1.0.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file memctrl-1.0.0.tar.gz.

File metadata

  • Download URL: memctrl-1.0.0.tar.gz
  • Upload date:
  • Size: 60.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for memctrl-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6714fe5e1d2516f255f1b88f77907220cd4491cc5c2ecb22bfa8278d04365af3
MD5 c8750b8043efe24b1542a43d64b6d047
BLAKE2b-256 36f6409517421f01e8364925f229d98755d7075a1f9651f6e08fb51dcca5725c

See more details on using hashes here.

File details

Details for the file memctrl-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: memctrl-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 35.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for memctrl-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a8b3cd1a7c16d10656478ef5ef1b49b8b713d4b8f17574dd951dc75d7509efc
MD5 1bf68d7d6734fd5244dda176c4576201
BLAKE2b-256 3e179df3eadc0bab1d365f2d1b754b044d25dee0bbac90186ae32f8d7757f9af

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