The Shared Cognitive Fabric for Intelligent Agent Systems — distributed memory for multi-agent AI
278
The distributed memory layer that gives your AI agents persistent, shared cognition.
Akasha is a purpose-built distributed memory system designed for multi-agent AI architectures. Unlike databases that store data, Akasha stores knowledge — episodic memories, semantic understanding, and procedural patterns that agents share and evolve together.
# Run a single node
docker run -d --name akasha \
-p 7777:7777 -p 50051:50051 \
-v akasha-data:/data \
alejandrosl/akasha:latest
# Verify it's running
curl -sk https://localhost:7777/api/v1/health
Dashboard → Open https://localhost:7777 in your browser
Default login → akasha / akasha
# docker-compose.yml
services:
akasha-01:
image: alejandrosl/akasha:latest
ports: ["7771:7777", "50051:50051"]
volumes: [akasha-01-data:/data]
environment:
AKASHA_CLUSTER_ENABLED: "true"
AKASHA_CLUSTER_NODE_ID: "akasha-01"
AKASHA_CLUSTER_SEEDS: "akasha-01:7946,akasha-02:7946,akasha-03:7946"
akasha-02:
image: alejandrosl/akasha:latest
ports: ["7772:7777", "50052:50051"]
volumes: [akasha-02-data:/data]
environment:
AKASHA_CLUSTER_ENABLED: "true"
AKASHA_CLUSTER_NODE_ID: "akasha-02"
AKASHA_CLUSTER_SEEDS: "akasha-01:7946,akasha-02:7946,akasha-03:7946"
akasha-03:
image: alejandrosl/akasha:latest
ports: ["7773:7777", "50053:50051"]
volumes: [akasha-03-data:/data]
environment:
AKASHA_CLUSTER_ENABLED: "true"
AKASHA_CLUSTER_NODE_ID: "akasha-03"
AKASHA_CLUSTER_SEEDS: "akasha-01:7946,akasha-02:7946,akasha-03:7946"
volumes:
akasha-01-data:
akasha-02-data:
akasha-03-data:
| Feature | Akasha | Mem0 | Letta |
|---|---|---|---|
| Latency | P50 1.2ms | ~50ms | ~100ms |
| Multi-agent coordination | ✅ Pheromone trails | ❌ | ❌ |
| Memory consolidation | ✅ Nidra (bio-inspired) | ❌ | Manual |
| Clustering | ✅ 3-node HA (CRDT) | ❌ | ❌ |
| LLM dependency | ❌ Zero LLM calls | ✅ Required | ✅ Required |
| Self-hosted | ✅ Single binary | Cloud only | Self-hosted |
Four cognitive layers inspired by human memory:
Agents coordinate without direct communication — like ants leaving chemical trails:
# Agent A leaves a signal
curl -X POST https://localhost:7777/api/v1/pheromones/trails/task-available \
-d '{"intensity": 0.9, "signal_type": "attract"}'
# Agent B detects and follows the trail
curl https://localhost:7777/api/v1/pheromones/trails
Optimistic concurrency for safe multi-agent writes:
# Read with version
GET /api/v1/records/my/path → ETag: 3
# Conditional write
PUT /api/v1/records/my/path
If-Match: 3 → 200 OK
# Stale write rejected
PUT /api/v1/records/my/path
If-Match: 2 → 409 Conflict
Bio-inspired background process that compacts episodic memories into semantic knowledge, like how sleep consolidates learning.
| Port | Protocol | Purpose |
|---|---|---|
7777 | HTTPS | REST API + Dashboard SPA |
50051 | gRPC | High-performance agent API |
7946 | UDP/TCP | SWIM gossip (cluster mode) |
| Path | Purpose |
|---|---|
/data | RocksDB persistent storage + TLS certs |
| Variable | Default | Description |
|---|---|---|
RUST_LOG | akasha=info | Log level |
AKASHA_HTTP_ADDR | 0.0.0.0:7777 | HTTP bind address |
AKASHA_GRPC_ADDR | 0.0.0.0:50051 | gRPC bind address |
AKASHA_DATA_DIR | /data | Persistent data directory |
AKASHA_CLUSTER_ENABLED | false | Enable clustering |
AKASHA_CLUSTER_NODE_ID | auto | Unique node identifier |
AKASHA_CLUSTER_SEEDS | — | Comma-separated seed addresses |
# Full health (monitoring)
curl -sk https://localhost:7777/api/v1/health
# Liveness probe (K8s)
curl -sk https://localhost:7777/api/v1/health/live
# Readiness probe (K8s)
curl -sk https://localhost:7777/api/v1/health/ready
| Tag | Description |
|---|---|
latest | Latest stable release |
1.0.8 | CAS + Graceful Shutdown |
1.0.7 | Explorer redesign + Nidra |
Built with Rust 🦀 for sub-millisecond latency and zero-copy memory operations.
Content type
Image
Digest
sha256:2dc09298a…
Size
46.1 MB
Last updated
6 months ago
docker pull alejandrosl/akasha