feat: declare kind: memory for OpenClaw memory slot compatibility#2
feat: declare kind: memory for OpenClaw memory slot compatibility#2rrriiiccckkk wants to merge 1 commit into
Conversation
Add `kind: "memory"` to the plugin manifest so that OpenClaw's
`plugins.slots.memory` configuration can route to this plugin.
Without this field, OpenClaw's slot resolution logic
(`resolveMemorySlotDecisionShared`) skips the plugin entirely:
```
if (!hasKind(params.kind, 'memory')) return { enabled: true };
```
This one-line manifest change enables users to set:
```json
{ "plugins": { "slots": { "memory": "memory-tencentdb" } } }
```
and have the plugin properly occupy the memory slot, replacing
the default memory-core or hindsight-openclaw.
|
Hi @rrriiiccckkk, thanks for the investigation and the detailed analysis of the After internal discussion, we've decided to hold off on adding That said, we understand the use case you're describing — if a user explicitly sets We'll keep this PR open for reference. Thank you for digging into the internals and raising this — it's a valuable discussion! 🙏 |
Summary
Add
"kind": "memory"toopenclaw.plugin.jsonso the plugin can properly occupy OpenClaw's memory slot.Problem
OpenClaw uses
plugins.slots.memoryto select which plugin owns the memory slot. The slot resolution logic inresolveMemorySlotDecisionSharedchecks:Without
kind: "memory"in the manifest, the plugin is silently skipped — even if the user explicitly setsplugins.slots.memory = "memory-tencentdb". This means the memory slot ends up empty (no auto-recall, no Dreaming, etc.).Fix
One-line addition to
openclaw.plugin.json:{ "id": "memory-tencentdb", "kind": "memory", // ← added ... }What this enables
Users can now replace the default memory stack with a single config:
{ "plugins": { "slots": { "memory": "memory-tencentdb", "contextEngine": "memory-tencentdb" } } }This gives them the full TencentDB Agent Memory pipeline (L0→L3 + Context Offload) as the sole memory provider, without needing Hindsight/memory-core/active-memory running in parallel.
Compatibility
kindis an optional field in the OpenClaw manifest specplugins.slots.memoryare unaffected (the default slot assignment still applies)