remember tool ¶Stores a single durable fact.
textRequired string. The fact to remember. Up to MAX_TEXT_CHARS
characters (default 16000). Texts shaped like secrets (API keys, JWTs,
PEM private-key markers) are rejected with SECRET_REJECTED.
tagsArray of strings. Optional. Normalized to lowercase canonical forms (see Tag normalization).
source_providerString. Optional. Name of the LLM or client that produced this memory. Useful for auditing.
importanceNumber, 0–1. Optional, default 0.5. Reserved for future ranking work; currently stored but not used in recall scoring.
capture_modeString. Optional. Either "explicit" (user explicitly asked to
remember) or "inferred" (LLM decided on its own). Recorded as
provenance.
session_idString. Optional. Opaque conversation identifier. Stored as-is.
dedup_policyString. Optional. One of "insert" (skip the semantic-dedup
check), "skip_if_near" (return the existing id if a
near-duplicate is found), or "ask" (default: insert anyway, but
include the near-duplicates in the response).
expires_atISO 8601 timestamp. Optional. Recall excludes this memory after the date passes. Useful for time-limited facts.
last_confirmed_atISO 8601 timestamp. Optional. When this fact was last verified as
still true. Defaults to now() on insert.
{
"ok": true,
"memory_id": 123,
"message": "Ok",
"near_duplicates": [...], // present if dedup_policy = "ask"
"previously_corrected": [...] // present if any tombstones nearby
}
If the request was rejected for being a near-duplicate
(dedup_policy = "skip_if_near"), the existing memory’s id is
returned:
{
"ok": true,
"memory_id": 99,
"message": "Already remembered",
"near_duplicates": [...]
}
INVALID_INPUT, SECRET_REJECTED, EMBEDDING_ERROR,
DATABASE_ERROR.
{
"name": "remember",
"arguments": {
"text": "My son Colby lives in Los Angeles.",
"tags": ["family"],
"capture_mode": "explicit"
}
}