slowave_remember encodes a durable, typed claim into Slowave’s long-term memory store. Unlike session events — which record transient task activity — a remembered claim is intended to survive across sessions and be surfaced by future activations and recalls. Call it any time during a task when you encounter a fact, decision, preference, constraint, lesson, or warning that a future agent session would genuinely benefit from knowing.
Scalar vs batch calling
slowave_remember supports two calling patterns:
- Scalar: pass
contentandtypedirectly to store a single claim. - Batch: pass a
memorieslist to store several claims in one round trip.
memories is provided, content and type must be omitted; if content is provided, memories must be omitted.
Parameters
string
required
The scope in
kind:id form. Must match the scope used in slowave_activate for the current session. Memory is stored under this scope and will only be retrieved within it (until the schema generalizes through cross-scope evidence over time).string
required
The active session identifier returned by
slowave_activate. The session must exist, must not have been ended, and its scope must match the scope parameter.string
A single standalone durable claim. Must be nonblank. Mutually exclusive with
memories. Express the claim as a self-contained sentence that would be meaningful without further context — Slowave stores it verbatim.string
The semantic category of the claim. Required when using the scalar form (with
content). Must be one of the ten supported types:string
Optional RFC 3339 UTC timestamp representing when the event being recorded actually occurred, for example
2026-08-26T09:30:00Z. Use this only when the claim describes an event that happened at a meaningfully different time from this MCP call — for example, when recording a decision that was made in a meeting earlier that day.Slowave always sets its own internal raw-event ts to the time of the write call. The occurred_at value is stored as a separate source-event time and acts as a temporal signal, but it never changes the ordering of session events.array
A batch list of claim objects to store in one call. Must be non-empty. Mutually exclusive with
content and type. Each entry must contain content and type, and may optionally include occurred_at. All entries inherit the outer scope and session_id.Response
Scalar response
boolean
true when the claim was successfully persisted.string
The stable
sch_N identifier for the newly created or matched memory record. Use this in slowave_feedback if the memory is later retrieved.string
created for a new record, or matched when an existing memory with identical content was found (reconsolidation is asynchronous).string
The canonical stored type, echoed back for confirmation.
string
The confirmed scope under which the memory was stored.
string
The
evt_N identifier of the raw event written to preserve source provenance.Batch response
Whenmemories is used, the response is {"ok": true, "data": {"results": [...]}} where each entry contains:
integer
The zero-based position of this item in the
memories array.boolean
true if this individual item was stored successfully; false if it failed.object
Present when
ok is true. Same fields as the scalar response.object
Present when
ok is false. Contains code, message, and retryable.What to store — and what not to
slowave_remember is for durable knowledge that should be available in sessions weeks or months from now. Good candidates:
- Architectural decisions (
decision): “The team chose SQLite over Postgres for local deployments.” - Hard rules (
constraint): “All API endpoints must require authentication.” - Lessons from failures (
lesson): “Running migrations without a dry-run caused the 2026-07-15 data loss.” - Persistent instructions (
instruction): “Always run the integration test suite before opening a pull request.”
remember is only for claims that deserve their own permanent record.
The
instruction type is for reusable, standing directions. Use it for persistent preferences like “always prefer async/await over callbacks” — not for one-off steps in the current task. For execution-backed reusable methods, capture a procedure in slowave_commit instead.