Skip to main content
Glama

memory_store

Store project-scoped key-value data with vector embeddings so it survives sessions and remains searchable by meaning. Use for isolated project memory beyond file paths.

Instructions

Persistent key-value store with vector embedding — survives across sessions and is searchable by meaning, not just by file path. Use for project-scoped persistent memory. Never import personal memory automatically. Data is isolated by project_path; runtime reports actual embedding and storage backend.

Input Schema

NameRequiredDescriptionDefault
keyYesMemory key (unique within namespace)
ttlNoTime-to-live in seconds (optional)
tagsNoOptional tags for filtering
valueYesValue to store (string or object)
upsertNoUpdate existing key instead of failing (default: true, matching CLI `memory store`; set false for strict-insert). #2775 parity.
namespaceNoNamespace for organization (default: "default")
project_pathYesAbsolute path to the existing project directory. Always use the current task workspace. Each canonical path has its own isolated Ruflo store.
provenance_typeNoADR-323: who/what produced this value, so shared-namespace retrieval can filter by trust level instead of conflating a user's stated claim with an agent's own output. Default: "unknown".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the write/non-destructive profile, and the description adds real context beyond them: cross-session persistence, vector-based searchability, per-project_path isolation, and the note that the runtime reports the actual embedding/storage backend. It doesn't state what happens on key collision (the schema's upsert default carries that) or any size/rate limits.

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?

Four short sentences, front-loaded with the core capability and followed by usage constraints. The closing clause about runtime reporting the backend is useful but slightly tangential to the call decision.

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?

For an 8-parameter write tool with no output schema, the description covers purpose, isolation, and safety boundaries but says nothing about conflict/overwrite outcome, growth limits, or the shape of a successful response. Adequate given the rich schema, but there are residual gaps an agent would hit at call time.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including upsert, ttl, namespace, provenance_type, and project_path is already documented in the schema. The description adds only the isolation semantics of project_path and the meaning-search consequence of the stored value, so it sits at the baseline.

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?

States a concrete resource (persistent key-value store with vector embedding) plus the two traits that distinguish it from sibling tools — survives across sessions and is searchable by meaning rather than key/path. It never names memory_search or memory_retrieve explicitly, so routing relies on inference, but the capability boundary is legible.

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?

"Use for project-scoped persistent memory" gives a clear when-to-use, and "Never import personal memory automatically" is an explicit exclusion. It stops short of naming the alternative siblings (memory_search for retrieval, memory_delete for cleanup), so an agent must infer the split.

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