Fleet memory system for OpenClaw agents with composite scoring, compaction engine, Graphiti temporal knowledge graph, multi-claw federation, and sleep-time reflection.
# Docker (preferred)
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 \
-v ~/.openclaw/qdrant-storage:/qdrant/storage \
--restart unless-stopped qdrant/qdrant
# Or binary (no Docker)
curl -sL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-x86_64-unknown-linux-musl.tar.gz | tar xz
./qdrant --storage-path ~/.openclaw/qdrant-storage &
cd ~
git clone https://github.com/yoniassia/memclawz.git
cd memclawz
pip3 install -r requirements.txt
cat > ~/memclawz/.env << EOF
OPENAI_API_KEY=<your-key>
ANTHROPIC_API_KEY=<your-key>
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_COLLECTION=yoniclaw_memories
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=
GRAPHITI_ENABLED=true
FEDERATION_ENABLED=true
FEDERATION_ROLE=master
WORKSPACE_DIR=/home/yoniclaw/.openclaw/workspace
EOF
cp ~/memclawz/systemd/*.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now neo4j memclawz-api memclawz-watcher memclawz-cron
curl http://localhost:3500/health
# {"status":"ok","version":"6.0.0","qdrant":"ok","neo4j":"ok","graphiti":"ok","federation":"ok",...}
# Search with composite scoring
curl "http://localhost:3500/api/v1/search?q=eToro+SuperApp&limit=10"
# Use raw cosine: &use_composite=false
# Add memory (feeds both Qdrant AND Graphiti)
curl -X POST "http://localhost:3500/api/v1/add" \
-H "Content-Type: application/json" \
-d '{"content":"BTC hit 100K on March 1","agent_id":"tradeclaw","memory_type":"event"}'
# List by agent
curl "http://localhost:3500/api/v1/memories?agent_id=tradeclaw&limit=20"
# Stats / Agents
curl http://localhost:3500/api/v1/stats
curl http://localhost:3500/api/v1/agents
# Search temporal knowledge graph
curl "http://localhost:3500/api/v1/graph/search?q=eToro+deployment"
# Get entity relationships
curl "http://localhost:3500/api/v1/graph/entity/YoniClaw"
# Trigger session compaction
curl -X POST "http://localhost:3500/api/v1/compact/session" \
-H "Content-Type: application/json" \
-d '{"session_id":"main:whatsapp:direct:+35794329522","agent_id":"main"}'
# Generate daily digest
curl -X POST "http://localhost:3500/api/v1/compact/daily"
# Run weekly merge
curl -X POST "http://localhost:3500/api/v1/compact/weekly"
# Check compaction status
curl "http://localhost:3500/api/v1/compact/status"
# Trigger reflection (analyzes last 24h of memories)
curl -X POST "http://localhost:3500/api/v1/reflect" \
-H "Content-Type: application/json" \
-d '{"hours":24,"max_memories":100}'
# Register a remote node
curl -X POST "http://localhost:3500/api/v1/federation/register" \
-H "Content-Type: application/json" \
-d '{"node_id":"clawdet","node_url":"http://188.34.197.212:3500","node_key":"shared-secret"}'
# Push memories from remote
curl -X POST "http://localhost:3500/api/v1/federation/push" \
-H "Content-Type: application/json" \
-d '{"node_id":"clawdet","node_key":"shared-secret","memories":[{"content":"...","type":"fact","agent":"main"}]}'
# Pull memories to remote
curl -X POST "http://localhost:3500/api/v1/federation/pull" \
-H "Content-Type: application/json" \
-d '{"node_id":"clawdet","node_key":"shared-secret","since":"2026-03-13T00:00:00Z","limit":100}'
# Federation status
curl "http://localhost:3500/api/v1/federation/status"
score = (w_semantic × similarity + w_recency × decay + w_importance × weight) × access_boost
MEMORY.md, memory/.md, memory/people/, memory/sessions/, knowledge/.md| Service | Port | Description |
|---|---|---|
| --------- | ------ | ------------- |
memclawz-api | 3500 | REST API (v6) |
memclawz-watcher | — | LCM auto-extract (+ Graphiti feed) |
memclawz-cron | — | Compaction scheduler (30-min cycle) |
memclawz-mcp | stdio | MCP server (v6 tools) |
| Neo4j | 7474/7687 | Graph database (Graphiti) |
| Qdrant | 6333 | Vector database |
{
"mcpServers": {
"memclawz": {
"command": "python3",
"args": ["/path/to/memclawz/memclawz/mcp_server.py"],
"env": {"OPENAI_API_KEY": "<key>", "ANTHROPIC_API_KEY": "<key>"}
}
}
}
MCP tools: search_memory, add_memory, get_agent_memories, compact_session, reflect, memory_stats
LCM → Watcher → Classify → Mem0 → Qdrant + Graphiti/Neo4j
↑↓ ↑↓
Fleet Agents ←→ REST API :3500 ←→ Qdrant Neo4j
MCP Clients ←→ MCP Server ←→ Qdrant
Remote Claws ←→ Federation API ←→ Qdrant
Cron → Compactor/Reflection → Files + Qdrant + Graphiti
共 1 个版本