Installation
Requirements
| Dependency | Version |
|---|---|
| OpenClaw | v2026.4+ |
| Node.js | 18+ (Node 24/26 fully supported) |
| Qdrant | Running on :6333 |
| LLM access | ANTHROPIC_API_KEY (default), or any OpenAI-compatible provider — see LLM provider |
Qdrant can be started via Docker:
docker run -p 6333:6333 qdrant/qdrantInstall the plugin
# From npm (recommended)
openclaw plugins install openclaw-amem
# From a local checkout of the amem monorepo
pnpm --filter openclaw-amem build
openclaw plugins install --link ./packages/openclaw-amemConfigure openclaw.json
Add openclaw-amem to your plugin config and hook it into the memory slot:
{
"plugins": {
"allow": ["openclaw-amem"],
"entries": {
"openclaw-amem": {
"enabled": true,
"hooks": {
"allowConversationAccess": true
},
"config": {
"agentId": "main",
"topK": 5
}
}
},
"slots": {
"memory": "openclaw-amem"
}
}
}Memory slot conflict
If your openclaw.json already has a memory slot assigned to another plugin (e.g. memory-core), you must replace it with openclaw-amem. The gateway only loads one plugin per slot — a second memory-kind plugin is silently skipped with no log output.
// ❌ Will cause amem to be silently ignored
"slots": {
"memory": "memory-core"
}
// ✅ Correct — amem replaces memory-core
"slots": {
"memory": "openclaw-amem"
}If you were previously using memory-core, you can safely remove or disable it in plugins.entries:
"entries": {
"memory-core": { "enabled": false },
"openclaw-amem": {
"enabled": true,
"hooks": { "allowConversationAccess": true },
"config": { "agentId": "main", "topK": 5 }
}
}Required:
hooks.allowConversationAccess: truemust be set explicitly. Without it, theagent_endhook is blocked by OpenClaw's security policy and automatic memory write-back will not work — memories will only be written when you callmemory_addmanually.
If
allowConversationAccessis not set, the plugin will log a warning after 10 minutes of startup and append a notice to everymemory_searchresult indicating that write-back is disabled (Story 34).
Restart OpenClaw
openclaw gateway restartOn first run, the plugin downloads the multilingual-e5-small ONNX embedding model (~120MB) and caches it locally. Subsequent restarts are instant.
LLM provider
The engine calls an LLM for note construction, linking, and evolution. Choose the backend with AMEM_LLM_PROVIDER:
anthropic(default) — the Anthropic Messages API. SetANTHROPIC_API_KEY.openai— the OpenAI Chat Completions API, which every OpenAI-compatible endpoint speaks. SetAMEM_LLM_PROVIDER=openai, pointAMEM_LLM_BASE_URLat the endpoint, and setAMEM_LLM_API_KEY(or the standardOPENAI_API_KEY). This covers OpenAI, DeepSeek, OpenRouter, Groq, Together, and local servers (Ollama, vLLM, LM Studio — no key needed).
# DeepSeek
AMEM_LLM_PROVIDER=openai AMEM_LLM_BASE_URL=https://api.deepseek.com/v1 \
AMEM_LLM_API_KEY=sk-... AMEM_LLM_MODEL=deepseek-chat
# Local Ollama (keyless)
AMEM_LLM_PROVIDER=openai AMEM_LLM_BASE_URL=http://localhost:11434/v1 \
AMEM_LLM_MODEL=qwen2.5Full env-var reference and model recommendations: Configuration →.
