Install
openclaw skills install claw-memLightweight memory management system for OpenClaw with 3-tier retrieval (L0/L1/L2), automatic lifecycle monitoring, and advanced search. Saves 60-80% on toke...
openclaw skills install claw-memClawMem is a lightweight memory management system designed for OpenClaw agents. It provides efficient memory storage and retrieval with significant token cost optimization.
cd /root/.openclaw/workspace/projects/clawmem
npm install
cp .env.example .env
# Edit .env with your configuration
npm run db:init
import clawMem from './projects/clawmem/src/index.js';
// Store memory
const recordId = clawMem.storeL0({
category: 'session',
summary: 'User queried TSLA stock',
timestamp: Math.floor(Date.now() / 1000)
});
// Retrieve memory
const result = await clawMem.retrieve({
category: 'session',
includeTimeline: true,
limit: 10
});
// L0 Index (minimal)
clawMem.storeL0({
category: 'session',
summary: 'Short summary (< 100 chars)',
timestamp: Date.now()
});
// L1 Timeline (semantic)
clawMem.storeL1({
record_id: recordId,
session_id: 'session_001',
event_type: 'query',
semantic_summary: 'Detailed summary (< 500 chars)',
tags: ['tag1', 'tag2']
});
// L2 Details (full content, on-demand)
clawMem.storeL2({
record_id: recordId,
full_content: 'Full content',
metadata: { key: 'value' }
});
import { memorySearch } from './projects/clawmem/src/index.js';
// Keyword search
const results = memorySearch.searchByKeyword('keyword', {
category: 'session',
limit: 10
});
// Time range search
const results = memorySearch.searchByTimeRange({
start: oneHourAgo,
end: Date.now() / 1000
});
// Session search
const session = memorySearch.searchBySession('session_001', {
includeDetails: true
});
// Advanced search
const result = await memorySearch.advancedSearch({
keyword: 'stock',
timeRange: { start, end },
includeDetails: true,
limit: 10
});
import { lifecycleMonitor } from './projects/clawmem/src/index.js';
// Start monitoring
lifecycleMonitor.start();
// Intercept events
lifecycleMonitor.intercept('tool.call', {
tool_name: 'yahoo_finance',
args: { symbol: 'AAPL' }
});
Edit .env file:
# Database
DATABASE_PATH=./clawmem.db
DATABASE_WAL_MODE=true
# L0/L1/L2 Limits
L0_MAX_SUMMARY_LENGTH=100
L1_MAX_SUMMARY_LENGTH=500
# Worker Interval
WORKER_INTERVAL_MS=1000
# LLM Configuration
LLM_PROVIDER=openai
LLM_MODEL=gpt-3.5-turbo
storeL0(record) - Store minimal indexstoreL1(record) - Store timeline indexstoreL2(record) - Store full detailsretrieve(query) - 3-tier retrieval workflowsearchByKeyword(keyword, options) - Keyword searchsearchByTimeRange(timeRange, options) - Time-based searchsearchByTags(tags, options) - Tag-based searchsearchBySession(sessionId, options) - Session searchadvancedSearch(query) - Combined searchgetStats() - Get statisticsstart() - Start monitoringintercept(eventName, payload) - Intercept event| Metric | Value |
|---|---|
| L0 Search | < 10ms |
| L1 Search | < 50ms |
| L2 Search | < 100ms |
| Token Savings | 60-80% |
Traditional: 100 records × 500 tokens = 50,000 tokens
ClawMem:
clawmem/
├── src/
│ ├── core/
│ │ ├── retrieval.js
│ │ ├── lifecycle-monitor.js
│ │ └── search.js
│ └── index.js
├── database/
│ └── init.js
├── config/
│ └── loader.js
├── docs/
├── .env.example
├── package.json
└── README.md
MIT License
PocketAI for Leo - OpenClaw Community