Persistent Memory Kernel for AI Agents — crash recovery, shared memory, audit trail, real-time dashboard
Project description
Octopoda: Persistent Memory for AI Agents
Your agents remember everything. Crash-safe. Sub-millisecond. Framework-agnostic.
Install
pip install octopoda
Quick Start
from octopoda import AgentRuntime
agent = AgentRuntime("my_agent", agent_type="researcher")
agent.remember("user_preference", {"format": "bullet_points"})
result = agent.recall("user_preference")
print(result.value) # {"format": "bullet_points"}
That's it. Memory persists across crashes, restarts, and deployments.
Why Octopoda?
AI agents lose memory on every restart. Octopoda fixes that:
- Persistent memory — SQLite-backed by default, optional high-performance C lattice engine
- Crash recovery — Automatic snapshots, sub-millisecond restore
- Shared memory bus — Agents share knowledge across processes
- Full audit trail — Every decision logged with memory context
- Framework integrations — LangChain, CrewAI, AutoGen, OpenAI Agents SDK
- Cloud API — FastAPI REST API with auth, rate limiting, Swagger docs
- Real-time dashboard — Monitor agents, memory, performance, anomalies
Framework Integrations
LangChain
from synrix_runtime.integrations.langchain_memory import SynrixMemory
memory = SynrixMemory(agent_id="my_chain")
# Use with: ConversationChain(llm=llm, memory=memory)
CrewAI
from synrix_runtime.integrations.crewai_memory import SynrixCrewMemory
crew_memory = SynrixCrewMemory(crew_id="research_crew")
crew_memory.store_finding("researcher", "market_size", {"value": "$4.2B"})
AutoGen
from synrix_runtime.integrations.autogen_memory import SynrixAutoGenMemory
memory = SynrixAutoGenMemory(group_id="dev_team")
memory.store_message("alice", "bob", "The API is ready")
OpenAI Agents SDK
from synrix_runtime.integrations.openai_agents import SynrixOpenAIMemory
memory = SynrixOpenAIMemory()
memory.store_thread_state("thread_123", {"messages": [...]})
MCP Server (Claude, Cursor, ChatGPT, VS Code)
Give any MCP-compatible AI persistent memory with zero code. One config entry and your AI remembers everything.
pip install octopoda
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"octopoda": {
"command": "octopoda-mcp"
}
}
}
That's it. Claude now has 10 memory tools: octopoda_remember, octopoda_recall, octopoda_search, octopoda_snapshot, octopoda_restore, octopoda_share, octopoda_read_shared, octopoda_list_agents, octopoda_agent_stats, octopoda_log_decision.
Works with any MCP client: Claude Desktop, Cursor, VS Code, ChatGPT, and more.
Docker
docker compose up
The dashboard is at http://localhost:7842, the API at http://localhost:8741/docs.
Cloud API
The REST API runs on port 8741 with auto-generated Swagger docs at /docs.
# Remember
curl -X POST http://localhost:8741/v1/agents/my_agent/remember \
-H "Content-Type: application/json" \
-d '{"key": "task_result", "value": {"status": "complete"}}'
# Recall
curl http://localhost:8741/v1/agents/my_agent/recall/task_result
Configuration
All configuration via environment variables:
| Variable | Default | Description |
|---|---|---|
SYNRIX_BACKEND |
sqlite |
Backend: sqlite, lattice, auto |
SYNRIX_DATA_DIR |
~/.synrix/data |
Data directory |
SYNRIX_API_PORT |
8741 |
Cloud API port |
SYNRIX_DASHBOARD_PORT |
7842 |
Dashboard port |
SYNRIX_API_KEY |
(empty) | API key for auth |
SYNRIX_LOG_LEVEL |
INFO |
Logging level |
SYNRIX_GC_ENABLED |
true |
Enable garbage collection |
SYNRIX_GC_INTERVAL_HOURS |
6 |
GC cycle interval |
SYNRIX_GC_METRICS_DAYS |
7 |
Metrics retention (days) |
SYNRIX_GC_EVENTS_DAYS |
14 |
Events retention (days) |
SYNRIX_GC_AUDIT_DAYS |
90 |
Audit trail retention (days) |
Architecture
octopoda (public API)
└── synrix_runtime (runtime layer)
├── api/ — AgentRuntime, Cloud API (FastAPI), MCP Server, shared memory
├── core/ — Daemon, heartbeat, recovery, garbage collection
├── monitoring/ — Metrics, anomaly detection, audit, performance
├── integrations/ — LangChain, CrewAI, AutoGen, OpenAI
└── dashboard/ — Flask dashboard with SSE real-time streaming
└── synrix (SDK layer)
├── agent_backend — Backend abstraction (SQLite, Lattice, Mock)
├── sqlite_client — SQLite implementation
├── memory — High-level Memory API
└── licensing — Tier enforcement
Platform Support
| Platform | Status |
|---|---|
| Linux x86_64 | Ready |
| Linux ARM64 (Jetson, Pi) | Ready |
| Windows x86_64 | Ready |
| macOS (Apple Silicon) | Ready (SQLite backend) |
License
- Python SDK + Runtime: MIT (fully open)
- Lattice Engine (libsynrix): Proprietary (optional, for high-performance workloads)
Octopoda — Persistent memory for AI agents. Install, import, ship.
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 octopoda-1.0.0.tar.gz.
File metadata
- Download URL: octopoda-1.0.0.tar.gz
- Upload date:
- Size: 251.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef71f98a490815bd2e6fb726e0f90eebbc8163fbcb40d09d0aee79e79ce24345
|
|
| MD5 |
84e1cf06935c697d542a392729bb8aac
|
|
| BLAKE2b-256 |
0c1cf22fcaeea4fcbba943fa5129b3281b3599d34d30459fb5b558b6904ab1a3
|
File details
Details for the file octopoda-1.0.0-py3-none-any.whl.
File metadata
- Download URL: octopoda-1.0.0-py3-none-any.whl
- Upload date:
- Size: 258.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f862c30cef3e90228251697b78d7dc03f0ed1a59724ace131a705ad2e98b23c1
|
|
| MD5 |
649ead3cfc482dbd253ad5229bc4b2d8
|
|
| BLAKE2b-256 |
e523a2a9586e0bc1222dd67a3ae7b11aadb4f9781da7f375958876717e3fb7aa
|