openclaw-memory-aoms
AOMS HTTP memory backend plugin for OpenClaw
Connects OpenClaw to AOMS (Always-On Memory Service) via HTTP, providing persistent tiered memory with semantic search, procedural learning, and episodic recall.
Features
- 🔍 Semantic search - Query memory with natural language
- 💾 Tiered storage - Episodic, semantic, procedural, working memory
- ⚡ Fast HTTP API - Local-first, sub-100ms queries
- 🔒 Optional auth - API key support via environment variables
- 📊 Weight tuning - Adjust memory importance dynamically
Installation
npm install openclaw-memory-aoms
Configuration
Add to your OpenClaw config (YAML or JSON):
YAML (~/.openclaw/config.yml)
plugins:
- id: openclaw-memory-aoms
config:
baseUrl: http://localhost:9100
timeoutMs: 10000
apiKey: ${AOMS_API_KEY}
JSON (~/.openclaw/config.json)
{
"plugins": [
{
"id": "openclaw-memory-aoms",
"config": {
"baseUrl": "http://localhost:9100",
"timeoutMs": 10000,
"apiKey": "${AOMS_API_KEY}"
}
}
]
}
Configuration Options
baseUrl | string | http://localhost:9100 | AOMS HTTP API endpoint |
timeoutMs | number | 10000 | Request timeout (500-120000ms) |
apiKey | string | - | Optional bearer token (supports ${ENV_VAR} syntax) |
Tools Provided
memory_search
Search memory entries across all tiers.
Parameters:
query (string, required) - Search query text
maxResults (number, optional) - Maximum results to return
minScore (number, optional) - Minimum relevance score threshold
Example:
const results = await tools.memory_search({
query: "What did we decide about the API design?",
maxResults: 5,
minScore: 0.7
});
memory_write
Write a new memory entry to a specific tier.
Parameters:
tier (string, required) - Memory tier: episodic, semantic, procedural, working
text (string, required) - Memory content
metadata (object, optional) - Additional structured data
Example:
await tools.memory_write({
tier: "episodic",
text: "User prefers dark mode and compact UI layouts",
metadata: {
category: "preferences",
confidence: 0.95
}
});
memory_weight
Adjust the importance/weight of an existing memory entry.
Parameters:
id (string, required) - Memory entry ID
weight (number, required) - New weight value (typically -1 to 1)
tier (string, optional) - Tier hint for faster lookup
Example:
await tools.memory_weight({
id: "mem_abc123",
weight: 0.9
});
Usage with AOMS
This plugin requires a running AOMS instance. Quick start:
git clone https://github.com/yourusername/aoms.git
cd aoms
pip install -r requirements.txt
python -m aoms.server --port 9100
See AOMS documentation for advanced setup (embeddings, vector stores, multi-tier config).
Development
git clone https://github.com/yourusername/openclaw-memory-aoms.git
cd openclaw-memory-aoms
npm install
npm run build
npm link
cd ~/.openclaw
npm link openclaw-memory-aoms
Architecture
OpenClaw Agent
↓
Plugin Tools (memory_search, memory_write, memory_weight)
↓
HTTP POST to AOMS API
↓
AOMS Server (4-tier cortex, vector search, procedural learning)
↓
ChromaDB / JSON storage
License
MIT
Links
Contributing
PRs welcome! Please ensure:
- TypeScript compiles without errors
- No
any types (use TypeBox schemas)
- Follow existing code style
- Update README if adding features
Made with 🧠 for autonomous AI agents