Skip to main content
Glama
Pseudogiant-xr

PseudoLife-MCP

Official

memory_fact_set

Destructive

Assert a canonical fact by inserting, confirming, or correcting a slot's current value, and flag conflicts for human review.

Instructions

Assert a canonical fact — insert, confirm, or correct a slot's one NOW value. Narrative, decisions, observations: memory_store; many concurrent values: memory_set_add (a set-valued slot errors here).

A new value at an existing slot supersedes the old (history kept). A conflicting write parks as a contender (action="contested", winner under current) — check with the human, settle via memory_fact_resolve (core).

authority / distortion_tolerance inherit the slot's labels unless restated.

Returns: {action: inserted|confirmed|superseded|contested, ...record}.

Input Schema

NameRequiredDescriptionDefault
valueYesThe value that is canonical NOW.
entityYesThe slot's subject; the (entity, attribute) match is case- and separator-insensitive.
originNoWho asserted it: "user" = the human told you; otherwise "action"/"agent". Omitted records "agent".
episodeNoEpisode handle for attribution.
attributeYesThe slot's attribute.
authorityNoSpeech act of the source: "directive" / "quoted" (doc or third party) / "observation"; "auto" infers.auto
confidenceNoHow sure you are, 0..1.
freshness_classNoHow fast the value rots. "auto" infers the decay rate from the entity kind.auto
distortion_toleranceNo"constraint" = verbatim, pinned in recall; "auto" infers only that.auto

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.18.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / attribute / minLength
      Added value: +1
    • addedInput schema / properties / confidence / maximum
      Added value: +1
    • addedInput schema / properties / confidence / minimum
      Added value: +0
    • addedInput schema / properties / entity / minLength
      Added value: +1
    • addedInput schema / properties / value / minLength
      Added value: +1
  2. Changed9 schema fields changedv0.15.0
    • addedInput schema / properties / attribute / description
      Added value: +"The slot's attribute."
    • addedInput schema / properties / authority
      Added value: +{
      +  "default": "auto",
      +  "description": "Speech act of the source: \"directive\" / \"quoted\" (doc or third party) / \"observation\"; \"auto\" infers.",
      +  "enum": [
      +    "auto",
      +    "directive",
      +    "observation",
      +    "quoted"
      +  ],
      +  "title": "Authority",
      +  "type": "string"
      +}
    • addedInput schema / properties / confidence / description
      Added value: +"How sure you are, 0..1."
    • addedInput schema / properties / distortion_tolerance
      Added value: +{
      +  "default": "auto",
      +  "description": "\"constraint\" = verbatim, pinned in recall; \"auto\" infers only that.",
      +  "enum": [
      +    "auto",
      +    "constraint",
      +    "procedural",
      +    "belief",
      +    "preference",
      +    "episodic"
      +  ],
      +  "title": "Distortion Tolerance",
      +  "type": "string"
      +}
    • addedInput schema / properties / entity / description
      Added value: +"The slot's subject; the (entity, attribute) match is case- and separator-insensitive."
    • addedInput schema / properties / episode / description
      Added value: +"Episode handle for attribution."
    • addedInput schema / properties / freshness_class / description
      Added value: +"How fast the value rots. \"auto\" infers the decay rate from the entity kind."
    • addedInput schema / properties / origin / description
      Added value: +"Who asserted it: \"user\" = the human told you; otherwise \"action\"/\"agent\". Omitted records \"agent\"."
    • addedInput schema / properties / value / description
      Added value: +"The value that is canonical NOW."
  3. 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 already flag a destructive, non-idempotent write, and the description adds substantial context beyond that: a new value supersedes the old with history retained, a conflicting write parks as a contender and returns action="contested" with the winner under current, and authority/distortion_tolerance inherit from the slot's labels unless restated. That is real behavioral disclosure about destructive effects and conflict semantics.

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?

The core action is front-loaded in the first sentence, followed by sibling routing, supersede/contest semantics, inheritance defaults, and the return shape — every sentence carries information. It is dense and fragment-heavy, which slightly taxes readability, but there is no filler.

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?

Despite nine parameters and a write path, the description covers the decisive details an agent needs: sibling routing, error case (set-valued slot), conflict outcome and its resolution path, inheritance defaults, and even the return shape (redundant with the output schema but harmless). Nothing material is missing.

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 meaning the schema does not: authority and distortion_tolerance inherit the slot's labels unless restated, which explains the interaction of two otherwise opaque enum parameters. The remaining parameters (origin, episode, confidence, freshness_class) are left to the schema, which is adequate but no more.

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+resource ('Assert a canonical fact — insert, confirm, or correct a slot's one NOW value') and explicitly separates itself from siblings memory_store (narrative) and memory_set_add (many concurrent values). An agent can distinguish it from memory_fact_resolve and memory_supersede 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?

Gives explicit routing rules: narrative/decisions/observations go to memory_store, many concurrent values go to memory_set_add, and a set-valued slot errors here. It also says how to handle the contested case ('check with the human, settle via memory_fact_resolve'), which is precisely the when/when-not/alternative guidance the dimension asks for.

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