Skip to main content
Glama
Pseudogiant-xr

PseudoLife-MCP

Official

memory_supersede

Destructive

Mark a stored memory obsolete and record its replacement so retrieval ranks the corrected claim higher while keeping both entries together.

Instructions

Mark a stored memory obsolete and record its replacement. The old entry is kept but flagged superseded, so retrieval ranks the correction higher and shows both together. Test junk or a never-true entry: memory_forget; a canonical slot: memory_fact_set.

Use exactly one selector. Missing, retired, or ambiguous targets cause no mutation; search again and resubmit an ID. No similarity fallback.

Returns: {superseded_count, superseded_texts, superseded_ids, new_memory_stored, derived_flagged} — the last being the canonical facts the dream built on the memories just corrected. They are FLAGGED, never rewritten; check each and re-assert the ones that moved. Each row carries has_current_value: false means the slot holds no current fact any more — blast radius worth seeing, but nothing to go re-check. The list is capped, live slots first; derived_flagged_truncated / derived_flagged_total say when a correction reached further than the cap.

Input Schema

NameRequiredDescriptionDefault
entry_idNoPositive search/recent ID in this bank; preferred selector.
new_textYesThe replacement claim; stored fresh.
old_textNoUnique exact stored text; omit with entry_id.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.18.1
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed6 schema fields changedv0.16.0
    • addedInput schema / properties / entry_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Positive search/recent ID in this bank; preferred selector.",
      +  "title": "Entry Id"
      +}
    • addedInput schema / properties / old_text / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / old_text / default
      Added value: +null
    • changedInput schema / properties / old_text / description
      Previous value: -"The memory now obsolete. Matched exact-text first, then by nearest embedding — a close paraphrase works."New value: +"Unique exact stored text; omit with entry_id."
    • removedInput schema / properties / old_text / type
      Removed value: -"string"
    • changedInput schema / required
      Previous value: -[
      -  "old_text",
      -  "new_text"
      -]New value: +[
      +  "new_text"
      +]
  3. Changed2 schema fields changedv0.15.0
    • addedInput schema / properties / new_text / description
      Added value: +"The replacement claim; stored fresh."
    • addedInput schema / properties / old_text / description
      Added value: +"The memory now obsolete. Matched exact-text first, then by nearest embedding — a close paraphrase works."
  4. First observedv0.11.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and idempotentHint=false, but the description goes well beyond them: the old entry is kept and flagged rather than deleted, retrieval ranks the correction higher, derived canonical facts are FLAGGED never rewritten, and no-mutation-on-bad-target behavior is spelled out. This is exactly the blast-radius context an agent needs before calling a destructive tool.

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

Conciseness4/5

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

Dense and front-loaded — purpose first, then alternatives, then selector rule, then return semantics. It is on the long side and spends several lines interpreting return fields even though an output schema exists, which is mild redundancy, but nearly every sentence carries operational weight.

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

Completeness5/5

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

For a destructive, non-idempotent mutation with three parameters, the description covers selectors, failure modes, the non-destructive flagging model, derived-fact blast radius, and truncation fields. Nothing an agent needs to invoke it correctly is missing, even accounting for the output schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the mutual-exclusivity rule ('Use exactly one selector') that the schema's anyOf-nullable fields do not enforce, plus recovery guidance for a failed selector. That is real value beyond the schema, though it doesn't explain selector precedence when both are supplied.

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?

States a specific verb and resource ('Mark a stored memory obsolete and record its replacement') and immediately differentiates from siblings by naming memory_forget for junk/never-true entries and memory_fact_set for canonical slots. An agent can distinguish this from the ~35 sibling memory tools without opening any schema.

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?

Explicitly routes to alternatives ('Test junk or a never-true entry: memory_forget; a canonical slot: memory_fact_set') and gives the operational precondition ('Use exactly one selector'). It also specifies the failure path — missing, retired, or ambiguous targets cause no mutation, so search again — and rules out similarity fallback.

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