OpenClaw
OpenClaw is a personal AI assistant you run on your own devices, one agent, reachable across WhatsApp, Telegram, Slack, Discord and more. The catch with a multi-channel agent is that memory usually fragments per channel. Korely fixes that: install one plugin, select it as your memory backend, and the agent carries the same memory, your typed facts, your graph, into every conversation.
korely-openclaw plugs into OpenClaw's exclusive memory slot.
Once selected, your agent gets the memory_* tools backed by
Korely, plus automatic recall before each turn.
Requirements
OpenClaw with plugin API 2026.4.24 or newer. The plugin
declares this in its compat; OpenClaw will refuse to load it
on an older gateway. Check with openclaw --version and upgrade
if you're behind.
You also need a Korely API key. Get one free, the hobby tier is free, no credit card.
Install
openclaw plugins install korely-openclawSelect it as your memory backend
OpenClaw uses one exclusive memory slot. Point it at korely and
add your key (prefer ${KORELY_API_KEY} or a SecretRef
over a plaintext value), then restart the gateway:
{ plugins: { slots: { memory: "korely" }, entries: { korely: { enabled: true, config: { apiKey: "${KORELY_API_KEY}", userId: "default", autoRecall: true, // inject memory before each turn (default true) autoCapture: false, // store the reply after each turn (default false) topK: 6, }, }, }, },}openclaw gateway restartWhat your agent gets
With Korely selected as the memory backend, the agent can:
- Use the
memory_*tools,memory_search,memory_add,memory_get,memory_list,memory_update,memory_delete. These call Korely directly; typed facts are extracted and contradictions resolved server-side. - Auto-recall, before each turn, Korely's
get_contextassembles the user's active typed facts plus the most relevant memories and injects them as a<korely-memory>block. Pure retrieval: no model runs on the read path. - Auto-capture (opt-in), when enabled, the agent's reply is stored after each successful turn, embedded, and its entities extracted into the graph.
Example session: WhatsApp
Here is auto-recall in practice. You message your agent on WhatsApp; before the model runs, Korely injects the relevant context, and the agent answers with your own history.
You › When is my lease renewal due, and what did the landlord
say about the rent?
# auto-recall: get_context runs before the model and injects a
# <korely-memory> block with the facts that are true now
← injected context:
"Lease renewal call with Anna (2026-05-28): Renewal deadline is
July 1. Anna confirmed a 3% increase, 1,200 to 1,236 EUR per
month starting August. She wants the signed copy by post."
Agent › Your lease renewal is due July 1. On the May 28 call Anna
confirmed a 3% increase, 1,236 EUR per month starting in August,
and she asked for the signed copy by post. Want me to create a
task with a reminder for the last week of June? Read-only vs read-write
A multi-channel agent anyone can message is a bigger surface than a coding
assistant on your laptop. That's why autoCapture is
off by default: the agent reads memory (auto-recall +
memory_search) but only writes when it explicitly calls
memory_add. Once you trust the loop, turn on auto-capture to
have replies stored automatically:
config: { apiKey: "${KORELY_API_KEY}", autoRecall: true, autoCapture: true, // now replies are stored after each successful turn}Configuration
| Key | Default | What it does |
|---|---|---|
apiKey | KORELY_API_KEY env | Your kor_live_... key. |
baseUrl | https://api.korely.ai | API base URL override. |
userId | , | Default end-user scope for memories. |
agentId | openclaw | Label stored on writes. |
autoRecall | true | Inject relevant memories + facts before each turn. |
autoCapture | false | Store the agent's reply after each successful turn. |
topK | 6 | Max results for memory_search / memory_list. |
tokenBudget | 800 | Token budget for the auto-recall block. |
Troubleshooting
| Symptom | Fix |
|---|---|
| Plugin installed but no memory tools |
Set plugins.slots.memory to "korely" and
restart the gateway (openclaw gateway restart). Only one
plugin can own the memory slot. Verify with
openclaw plugins inspect korely --runtime --json.
|
401 invalid_key in the gateway logs |
Set KORELY_API_KEY in the gateway's environment (or
config.apiKey); the key must start with kor_live_.
|
429 quota_exceeded | You've hit the write quota for your tier (the hobby tier allows 1,000 writes and 25,000 queries per month). Upgrade if you need more. |
| Auto-recall injects nothing |
Add memories first (memory_add or
autoCapture: true), the agent can't recall what hasn't
been stored, and keep userId consistent between writes and reads.
|
Why Korely
Reads are retrieval, not generation. Memories become typed facts with bi-temporal validity, so when a new memory contradicts an old one the old fact is superseded, invalidated, never silently overwritten. Auto-recall returns the facts that are true now plus the relevant memories, assembled rather than re-generated. EU-hosted.
For the full method surface, see the SDK reference. For how facts, supersession and time work, see temporal facts.
Something not working? Email
info@korely.ai with your OpenClaw
version (openclaw --version) and the gateway log line you're
seeing. We read every message.