Skip to main content
There is no published, pre-built @sovseal/adapter-eliza package today. This cookbook shows the working pattern for wiring @sovseal/sdk directly into an ElizaOS character — a small plugin you write once and reuse, not a one-line install. See ElizaOS integration reference for the full plugin shape.
This cookbook gives your ElizaOS characters persistent, local-first memory across restarts, using @sovseal/sdk’s store()/recall() directly — no cloud database, no plaintext leaving the device.

Zero-Knowledge Identity Isolation

  • Local-first by default: store()/recall() talk to the local ONEBRAIN engine over IPC and need no API key or network call at all.
  • 0 RTT agent response: Because recall resolves against the local LanceDB index, the agent doesn’t suffer network latency mid-conversation.
  • Optional encrypted replication: If you also want cross-device state sync, @sovseal/sdk’s snapshot()/restore() encrypt client-side with AES-256-GCM before anything reaches the edge gateway — see Replication & Sync.

1. Install the SDK

2. Write the memory plugin

ElizaOS plugins implement a Plugin interface (actions, providers, services) — see ElizaOS’s plugin architecture docs for the canonical shape. Create src/plugins/sovseal-memory.ts:

3. Register it on your character

characters/sovereign.character.json
Or register it directly in your bootstrap code:
store/recall require the native host launcher at ~/.sovseal/native-host/run.sh. Run npx -y @sovseal/mcp-server once to provision it — see SDK Reference: Overview.

How the hook cycle works

Once registered, the plugin participates in ElizaOS’s normal message flow:
  1. On message (recall): The SOVSEAL_RECALL provider queries the local LanceDB index for facts relevant to the incoming message and injects them into the agent’s context before it responds.
  2. On demand (store): When the agent invokes the STORE_MEMORY action — typically because your character’s instructions tell it to save a new fact or preference — the plugin commits it locally and returns immediately; there’s no network round-trip in the critical path.
If you also want the agent’s state to survive a full device loss, add snapshot() calls using the same AgentStateClient — that path needs an endpoint and apiKey, unlike store/recall. See the Node SDK reference for the full method signatures.