Korely

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

Terminal window
openclaw plugins install korely-openclaw

Select 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,
},
},
},
},
}
Terminal window
openclaw gateway restart

What 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_context assembles 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.

openclaw agent whatsapp
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

KeyDefaultWhat it does
apiKeyKORELY_API_KEY envYour kor_live_... key.
baseUrlhttps://api.korely.aiAPI base URL override.
userId, Default end-user scope for memories.
agentIdopenclawLabel stored on writes.
autoRecalltrueInject relevant memories + facts before each turn.
autoCapturefalseStore the agent's reply after each successful turn.
topK6Max results for memory_search / memory_list.
tokenBudget800Token budget for the auto-recall block.

Troubleshooting

SymptomFix
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.