memory_keep
Create a new memory. Mutates. Not idempotent — calling twice creates two distinct memories. Returns the created memory with id (UUID) and shortId (e.g. mem-1a). When inline links are provided (parent_memory_id, related_memory_ids, or links), the response includes link_summary confirming how many links were created; the memory.links[] field stays empty for performance — use memory_recall to inspect full link details. Tip: include conversation identifiers in conversations to group related memories. CONTENT POLICY: NEVER store passwords, API keys, secrets, credit card numbers, SSNs, government IDs, medical/health records (PHI/HIPAA), biometric data, or any legally protected PII. Sanitize content before storing.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"headline": "<headline>"
},
"name": "memory_keep"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Supporting detail. Omit if the headline is self-contained. | |
| kind | No | Memory type: note, fact, idea, summary, artifact, task_context, constraint, question, decision | note |
| tags | No | Tags for categorization. Use facet:name format for structured tags (e.g. domain:cosmology, project:brox). | |
| team | No | Team slug filter. Omit for mixed personal+team results. Use "personal" for personal-only. | |
| links | No | Typed links to create from this memory | |
| signer | No | Agent identity -- who wrote this. Required fields: agent_id, run_id. | |
| source | No | Source metadata: origin platform, URI, author, capture time | |
| headline | Yes | Title or core assertion of the memory (required) | |
| metadata | No | Arbitrary key-value metadata stored as JSON. Opaque to search and ranking. | |
| stale_at | No | ISO 8601 datetime when this memory becomes stale | |
| collection | No | Target team collection slug. May be bare or prefixed (team:slug). Requires team when writing to a team collection. | |
| confidence | No | Confidence as an integer percentage from 0 to 100 (e.g. 85 means 85% confident) | |
| collections | No | Collection slugs or IDs to add this memory to | |
| canon_status | No | Canonicality: draft, proposed, accepted, deprecated, alternative, meta | draft |
| conversations | No | Conversation contexts this memory belongs to. If you are acting within a named conversation, chat session, or task context, pass its identifier here to enable cross-memory grouping. | |
| parent_memory_id | No | Parent memory ID -- creates a belongs_to link | |
| source_memory_ids | No | IDs of memories this was derived from (provenance tracking) | |
| human_collaborator | No | Human collaborator context (name, email, timezone, etc.) | |
| related_memory_ids | No | Related memory IDs -- creates related_to links | |
| verification_status | No | Verification status: unverified, verified, disputed, superseded | unverified |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| memory | No | A memory object | |
| link_summary | No |