Skip to main content
Glama

mem_write

Create a new persistent skill memory with a unique slug; rejects overwrites to preserve record provenance.

Instructions

Insert a new memory. Slug must be unique. To overwrite an existing slug, use mem_update with a reason — mem_write deliberately refuses silent overwrites to preserve record provenance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
kindNonote
slugYes
tagsNo
agentNo
titleYes
topicsNo
projectNo
ttl_daysNo
check_conflictsNoReject if Jaccard word overlap > 0.7 with an existing memory.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.5

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states slug uniqueness, the refusal to overwrite, and the provenance rationale, which are the key behavioral traits. However, it does not mention the default check_conflicts behavior (Jaccard overlap rejection), which could cause unexpected failures. This is a notable gap but the most important behavioral differentiator is disclosed.

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?

The description is two tight sentences with zero filler. The primary action ('Insert a new memory') is front-loaded, immediately followed by the unique constraint and the routing rule. Every sentence earns its place and there is no redundant phrasing.

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?

The description covers the critical insert-versus-update decision and the uniqueness constraint, which is enough for common calls. However, with 10 parameters, no output schema, and no annotations, an agent would benefit from more context about return values, error behavior, and valid values for fields like kind or ttl_days. It is adequate but has clear gaps.

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

Parameters2/5

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

Schema description coverage is only 10% (only check_conflicts has a description), and the main description adds almost no parameter semantics beyond the uniqueness constraint on slug. Parameters like kind, agent, project, topics, and ttl_days are left undefined, relying on the agent to infer their meaning from names. The description does not compensate for the low schema coverage.

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

Purpose5/5

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

The description opens with a specific verb and direct object: 'Insert a new memory.' It immediately clarifies the operation's scope (new memory, not update) and distinguishes itself from the sibling tool mem_update by explicitly routing overwrite scenarios elsewhere. This is precise and leaves no ambiguity about the tool's core function.

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

Usage Guidelines5/5

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

The description explicitly states when to use an alternative: 'To overwrite an existing slug, use mem_update with a reason.' It also explains the reasoning (deliberate refusal to silently overwrite) and implies mem_write is only for new unique slugs. This gives an agent a clear decision rule without needing to infer.

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