Skip to content

PersistentMemoryStore

Storage adapter for persistent memory blocks. Implementations:

  • FilePersistentMemoryStore (built-in default, file-system backed)
  • postgres / redis / vector — pluggable via this interface

The store is responsible for atomic durability and per-user/per-agent scoping; the runtime layer handles when to load + when to inject.

deleteBlock(
scope,
owner,
key): Promise<void>;

Delete a block. No-op when missing.

Parameter Type

scope

MemoryBlockScope

owner

string

key

string

Promise<void>


listBlocks(scope, owner): Promise<string[]>;

List block keys for an owner within a scope.

Parameter Type

scope

MemoryBlockScope

owner

string

Promise<string[]>


loadBlock(
scope,
owner,
key): Promise<
| PersistentMemoryBlock
| null>;

Load a single block by (scope, owner, key). Returns null when the block does not exist yet (first time the agent ever ran for this owner). Implementations MUST NOT throw on missing — return null.

owner is typically the userId for scope=‘user’ / scope=‘shared’, and the agentId for scope=‘agent’. Implementations should accept any string and treat it as opaque.

Parameter Type

scope

MemoryBlockScope

owner

string

key

string

Promise< | PersistentMemoryBlock | null>


saveBlock(block, owner): Promise<void>;

Persist a block atomically. Replaces the entire content.

Parameter Type

block

PersistentMemoryBlock

owner

string

Promise<void>