Skip to content

memory.store

Schema

Input = {
content: string, // max 4000 chars
kind?: 'fact' | 'episode' | 'preference' | 'relationship' | 'document' | 'insight', // default 'fact'
importance?: number, // 0-1, default 0.5
tags?: string[],
source?: string, // default 'skill'
}
Output = {
memory: MemoryItem | null,
stored: boolean,
note?: string,
}

Like memory.recall, this writes through the same injected adapter straight into the real Memory table — a memory an agent stores this way is indistinguishable from one Muse extracted from conversation, and shows up in your Constellation immediately. Inside a Studio project, if the caller left source at its default 'skill', the skill rewrites it to studio:<projectId> automatically, so you can always trace a memory back to the project that created it.

Muse itself is instructed to call this “once with one clear third-person sentence” whenever it learns something durable (see How Muse thinks) — it’s the same mechanism, just triggered from a chat turn instead of a Studio task.

Example

Terminal window
curl -s -X POST http://localhost:4000/api/studio/skills/invoke \
-H 'content-type: application/json' -b cookies.txt \
-d '{"name":"memory.store","input":{"content":"Owner is planning a trip to Lisbon in November.","kind":"episode","importance":0.6,"tags":["travel"]}}'
{
"ok": true,
"output": {
"stored": true,
"memory": { "id": "mem_7c1e...", "kind": "episode", "content": "Owner is planning a trip to Lisbon in November.", "importance": 0.6, "tags": ["travel"], "source": "skill", "createdAt": "2026-09-06T10:41:02.000Z" }
}
}