Skip to main content
Glama

nmem_remember

Store a memory to auto-detect type and resolve contradicted errors. Use after tasks, bug fixes, or decisions; not for temporary notes or project context.

Instructions

Store a memory. Auto-detects type, auto-resolves contradicted errors (RESOLVED_BY synapse). Use after completing a task, fixing a bug, or making a decision. Don't use for temporary notes (use ephemeral=true) or project context (use nmem_eternal).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for categorization
tierNoMemory tier: hot (always in context, slow decay), warm (default, semantic match), cold (explicit recall only, fast decay). Boundary type auto-promotes to hot.
typeNoMemory type (auto-detected if not specified)
domainNoDomain scope for boundary memories (e.g. 'financial', 'security', 'code-review'). Adds a domain:{value} tag. Boundaries without domain are global (apply everywhere). Only meaningful for type=boundary; ignored for other types.
compactNoCompact response: return only success + fiber_id + memory_type, skip verbose metadata. Saves 200-400 tokens. Default: true. Set false for full response.
contentYesThe content to remember
contextNoStructured context dict merged into content server-side using type-specific templates. Keys like 'reason', 'alternatives', 'cause', 'fix', 'steps' are auto-expanded. For type='decision': 'chosen', 'alternatives'/'rejected', 'confidence' enable decision intelligence (overlap detection, evolution tracking). Any agent can send structured data instead of crafting perfect prose.
event_atNoISO datetime of when the event originally occurred (e.g. '2026-03-02T08:00:00'). Defaults to current time if not provided. Useful for batch-importing past events with correct timestamps.
priorityNoPriority 0-10 (5=normal, 10=critical)
encryptedNoForce encrypt this memory's neuron content (default: false). When true, content is encrypted with the brain's Fernet key regardless of sensitive content detection.
ephemeralNoSession-scoped memory: auto-expires after TTL (default 24h), never synced to cloud, excluded from consolidation. Use for scratch notes, debugging context, temporary reasoning.
source_idNoLink this memory to a registered source. Creates a SOURCE_OF synapse for provenance tracking.
valid_fromNoInclusive lower bound of the memory's validity window (ISO 8601). Recall before this moment heavily penalizes the score. Use for scheduled rules, sprint goals, time-bounded API keys, etc.
trust_scoreNoTrust level 0.0-1.0. Capped by source ceiling (user_input max 0.9, ai_inference max 0.7). NULL = unscored.
valid_untilNoInclusive upper bound of the memory's validity window (ISO 8601). After this cliff, recall scores drop 10x and the lifecycle sweep eventually flips status to 'expired'. Complements gradual decay.
expires_daysNoDays until memory expires
token_budgetNoMax tokens for response. Progressively strips content to fit budget.
verbose_extractionNoSurface concept-extraction observability stats (dropped_short, dropped_noise, dropped_duplicate_entity). Default: false. Useful for debugging noise filter or measuring memory hygiene.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.62.0

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully reveals automatic behaviors (type auto-detection, automatic contradiction resolution creating a RESOLVED_BY synapse), but says nothing about idempotency, dedup, permissions, or what a call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, then behavior, then usage. Every clause earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter mutation tool with no annotations and no output schema, the description covers intent and routing well but omits the return shape (e.g., fiber_id) and mutations side-effects, leaving the agent to infer output from parameter docs like 'compact'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 18 parameters, so the schema already documents tier, domain, trust_score, validity windows, encryption, etc. The description only echoes 'ephemeral' and the auto-detected 'type' without adding syntax or defaults beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Store a memory') and adds distinguishing behaviors (auto-detects type, auto-resolves contradicted errors via RESOLVED_BY synapse). It names the sibling it is not for project context (nmem_eternal), though it does not distinguish itself from nmem_remember_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggering conditions ('after completing a task, fixing a bug, or making a decision') and explicit exclusions with remedies ('temporary notes -> ephemeral=true', 'project context -> nmem_eternal'). Clear when/when-not guidance; the batch sibling is not addressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.