Skip to main content
Glama
chinwe

compound-memory

memory_feedback

Report feedback on a memory after adopting it to update confidence, usage, or archive status, closing the compounding loop.

Instructions

Report feedback on a memory with an outcome (closes the compounding loop — call after actually adopting a memory). Every outcome advances uses and last_used. outcome: 'success' (default, the memory worked), 'failure' (it misled you — confidence drops 0.2, floor 0.05), 'contradiction' (you dispute it — confidence frozen and a review entry is queued pending adjudication), 'obsolete' (it is superseded — archived immediately), 'unknown' (records the event only: confidence does not move). Anything else is rejected. Success raises confidence (+0.1; extra +0.15 when a different agent validates for the first time). agent must be your own source agent id. Memories in a private 'agent-' namespace accept feedback only from the owner (agent = 'agent-' or ''). Archiving is reversed on feedback (except outcome=obsolete, which archives instead).

Input Schema

NameRequiredDescriptionDefault
agentYes
mem_idYes
outcomeNosuccess

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.3

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it details per-outcome confidence deltas (+0.1, +0.15, -0.2 with floor 0.05), archiving, review queuing, and freezing behavior, plus auth constraints for private namespaces and reversal semantics. This is exactly the behavioral context an agent needs before a state-mutating call.

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?

Front-loaded with purpose and usage timing, then structured by outcome. Dense but every clause carries information; there is minor redundancy in the trailing sentence about archiving being reversed.

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

Completeness4/5

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

For a side-effecting tool with no annotations and no output schema, it covers the material behavior an agent needs. It does not describe the response shape or whether feedback can be resubmitted/edited, a small remaining gap.

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

Parameters5/5

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

Schema description coverage is 0% and the schema declares no enum, yet the description fully enumerates all five valid outcome values with their effects and states that anything else is rejected. It also explains 'agent' semantics (must be your own source agent id, owner rules for private namespaces), compensating for the total schema gap.

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 (report feedback on a memory) and names the conceptual function (closes the compounding loop). It is clearly distinct from siblings like memory_write/search/get/link, which are CRUD/query operations rather than outcome reporting.

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 clear timing guidance — 'call after actually adopting a memory' — which tells the agent the precondition for invocation. It does not explicitly name when-not to use it or route to alternatives, so it falls just short of the top band.

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