Skip to main content
Glama
reshuibuduo

TMCRA Agent Memory

by reshuibuduo

tmcra_ingest

Persist conversation messages into long-term memory to enable cross-session recall and role-aware agent context.

Instructions

Persist conversation messages that have already occurred.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeNo
agent_idNo
messagesYes
session_idYes
consistencyNoeventual
slow_policyNoauto
idempotency_keyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.1

TDQS

C2.3/5.0
Behavior2/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, and it only reveals basic write intent via 'persist.' It omits important traits hinted at by the schema and siblings: idempotency behavior (idempotency_key), consistency semantics (eventual vs. read_your_writes), the slow_policy escalation options, and whether the operation is asynchronous (siblings tmcra_get_job/tmcra_wait_job suggest job-based execution).

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

Conciseness2/5

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

The description is short, but this is under-specification rather than efficient conciseness: a single clause cannot serve a tool with seven parameters, a nested message type, and six siblings. It front-loads the core intent but omits nearly everything else.

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

Completeness1/5

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

Despite an output schema existing, the description is far from complete for this tool's complexity: 7 parameters at 0% schema coverage, no annotations, and a sibling set suggesting a lifecycle/job framework. The agent lacks information about when to ingest, how messages must be structured, job behavior, and consistency options.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description compensates for almost none of the seven parameters. It only implies that 'messages' are conversation messages; it says nothing about session_id, scope, agent_id, consistency, slow_policy, or idempotency_key, leaving the agent to guess their roles and formats.

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?

The description uses a specific verb ('persist') with a resource ('conversation messages that have already occurred'), clearly signaling a write/append operation for historical messages. It is distinguishable from tmcra_recall (reading) and the job/session management siblings, though it does not explicitly differentiate itself from tmcra_turn_commit, which may also write messages.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus its six siblings. Nothing explains the relationship to tmcra_turn_prepare/tmcra_turn_commit (turn lifecycle) or when ingest is preferred over committing a turn, so the agent must infer usage from the name alone.

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