Skip to main content
Glama
xbrxr03
by xbrxr03

MemoryGraph

Ваш агент нашёл релевантное воспоминание. MemoryGraph сообщает ему, остаётся ли это воспоминание истинным.

MemoryGraph — это локальный слой доказательств и ревизий для убеждений ИИ-агентов. Он сохраняет исходные наблюдения, представляет утверждения в виде темпорального графа и объясняет, почему утверждение является актуальным, историческим или оспариваемым.

Статус MVP

Детерминированный MVP работает. Авторитетная архитектура начинается с 00-architecture-index.md; реализованное ядро охватывает:

  • Неизменяемые исходные наблюдения.

  • Типизированные узлы-сущности и атомарные рёбра-утверждения с точными фрагментами доказательств.

  • Битемпоральные запросы актуальных и исторических убеждений.

  • Явное подтверждение, противоречие и атомарное замещение.

  • Команды recall, history и explain.

  • Жёсткую изоляцию банков и журнал событий мутаций, допускающий только добавление.

  • Провайдер-агностический валидатор предложений мечты с проверками доказательств, водяного знака, версии утверждения, идемпотентности, уверенности, оспаривания и рецензирования.

  • Устойчивые запуски мечты, задачи, предложения, элементы рецензирования, аренды, водяные знаки событий и атомарные фиксации предложений.

  • Детерминированный метаданный провайдер, который выполняет полный цикл мечты без отправки исходных данных внешней модели.

  • Фикстуры MemoryRotBench, базовые линии, оценку извлечения и интеграцию с движком.

  • Гибридное извлечение FTS/векторное с независимой локальной базовой линией и заменяемым эмбеддером.

  • Карантин при извлечении для недоверенного контента, похожего на инструкции.

  • Устойчивые к сбоям рабочие процессы Dream с арендами, продлением пульса, повторными попытками и безопасным для повторного воспроизведения возобновлением.

  • Провайдер структурированного вывода, совместимый с OpenAI, который может только предлагать кандидатов.

  • MCP-сервер STDIO с пятью инструментами: recall, record, explain, correct и forget.

  • Одобренное пользователем извлечение JSONL из Codex и установщик Codex в рамках проекта.

  • Детерминированная проекция рецензирования в Markdown, совместимая с Obsidian.

  • Первоклассные процедурные эпизоды для ограниченного повторного использования успешных и неудачных попыток кодирования.

  • Воспроизводимые адаптеры бенчмарков без памяти, Markdown, BM25, плоского контекста и внешнего/Graphify.

  • Кроссплатформенный CI, проверка пакетов и действенные диагностики doctor.

Реальный движок в настоящее время проходит все 12 публичных запросов MemoryRotBench и все семь производственных контрактов хаоса. Набор тестов репозитория насчитывает 196 проходящих тестов на этом контрольном этапе. В первой матрице с отпечатками публичных данных самые сильные простые базовые линии проходят 7/12, тогда как MemoryGraph проходит 12/12.

Related MCP server: agent-knowledge

Быстрый старт

uv sync
uv run memorygraph init --database /tmp/memorygraph.db
uv run memorygraph doctor --database /tmp/memorygraph.db
uv run memorygraph bank create personal:founder --database /tmp/memorygraph.db
uv run memorygraph dogfood bootstrap --database /tmp/memorygraph.db
uv run memorygraph predicate define works_at \
  --bank personal:founder --cardinality one --volatility volatile \
  --database /tmp/memorygraph.db

Запишите доказательство, затем превратите его в утверждение:

OBSERVATION_ID=$(uv run memorygraph observe "Abrar works at Acme." \
  --bank personal:founder --source-key event:acme \
  --database /tmp/memorygraph.db)

CLAIM_ID=$(uv run memorygraph claim assert Abrar works_at Acme \
  --bank personal:founder --observation "$OBSERVATION_ID" \
  --database /tmp/memorygraph.db)

Python API также предоставляет confirm_claim, contradict_claim, supersede_claim, recall, history и explain для встраиваемых приложений.

Запишите попытку кодирования, чтобы будущие агенты могли повторно использовать успешную стратегию — или избежать известного сбоя — не притворяясь, что она универсально применима:

memorygraph record-attempt "Run migrations before starting the worker" \
  --bank project:my-app --source-key attempt:migrate-worker \
  --task "start durable worker" --outcome success \
  --applicability-json '{"database":"sqlite"}'

Запустите цикл мечты

Встроенный провайдер читает типизированных кандидатов из metadata.memorygraph, предлагает изменения графа, проверяет доказательства и темпоральные предусловия, затем фиксирует подходящие предложения одной транзакцией. Модельные провайдеры реализуют тот же протокол только-кандидатов и никогда не получают прямого пути записи в базу данных.

PYTHONPATH=src:. uv run python examples/run_dream_cycle.py \
  --database /tmp/memorygraph-dream.db

uv run memorygraph dream status RUN_ID \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream reviews \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream rollback RUN_ID \
  --bank personal:founder --database /tmp/memorygraph-dream.db

Для CLI-извлечения передайте конверт кандидата с observe --metadata-file FILE.json, затем запустите memorygraph dream run --bank BANK. --mode dry_run проверяет и сохраняет предложения, но не потребляет наблюдение и не изменяет утверждения.

Для устойчивого выполнения поставьте работу в очередь и запустите рабочего отдельно:

uv run memorygraph dream queue \
  --bank personal:founder --database /tmp/memorygraph-dream.db

uv run memorygraph dream worker \
  --bank personal:founder --database /tmp/memorygraph-dream.db

Чтобы использовать конечную точку Responses, совместимую с OpenAI, задайте переменную настроенного ключа и передайте модель как в очередь, так и рабочему. Вывод провайдера разбирается как строгие структурированные данные и по-прежнему проходит через те же детерминированные проверки доказательств и фиксации.

export OPENAI_API_KEY=...
uv run memorygraph dream queue --bank personal:founder \
  --provider-model YOUR_MODEL --database /tmp/memorygraph-dream.db
uv run memorygraph dream worker --bank personal:founder \
  --provider-model YOUR_MODEL --database /tmp/memorygraph-dream.db

Подключите Codex

Установите пакет, инициализируйте проектный банк и добавьте конфигурацию MCP в рамках проекта:

uv run memorygraph init
uv run memorygraph bank create project:my-app
uv run memorygraph install-codex --project .
uv run memorygraph probe-codex --project .

Установщик создаёт или исправляет блок [mcp_servers.memorygraph] в .codex/config.toml, указывает на модуль STDIO memorygraph.mcp текущего окружения Python и настраивает Codex на запрос записи. Он не изменяет глобальную конфигурацию Codex. Пять операций MCP требуют явной области банка.

probe-codex проверяет конфигурацию проекта и выполняет реальный жизненный цикл подпроцесса MCP. Используйте --project-database, если хотите, чтобы проверка обращалась к настроенной базе данных проекта вместо временных одноразовых проверочных БД.

Импорт содержимого сеанса является добровольным. Каждая запись JSONL должна содержать bank, session_id, turn_id, role, content и approved; неподтверждённые записи по умолчанию пропускаются:

memorygraph ingest-codex approved-session.jsonl

Dogfood Alpha

Официальная офлайн-матрица из шести рукавов:

PYTHONPATH=src:. uv run python examples/run_dogfood_fixture_matrix.py

Для реального проекта сначала загрузите операционный контракт:

uv run memorygraph dogfood bootstrap \
  --database .memorygraph/memory.db \
  --bank project:my-app \
  --workspace my-app

Матрица фикстур запускает следующие рукава:

  • no_memory

  • markdown

  • memorygraph_graph_only

  • memorygraph_gated_dream

  • memorygraph_always_dream

  • graphify_compatible

Она измеряет прохождение/провал задач, точность полезного извлечения, утечку запрещённых или устаревших воспоминаний, повторяющиеся ошибки, задержку, оценки токенов, вызовы инструментов, повторные попытки, оценочные поля стоимости и нагрузку на рецензирование Dream. Результаты записываются в benchmarks/reports/dogfood-offline-mvp.json и в журнал только-добавления benchmarks/reports/dogfood-offline-mvp.jsonl. Прохождение/провал задач соответствует ожиданиям запросов; отставание рецензирования Dream остаётся отдельной, видимой стоимостью.

Текущий результат офлайн-фикстуры на 2026-08-22:

  • memorygraph_always_dream: 3/3

  • memorygraph_graph_only: 1/3

  • memorygraph_gated_dream: 1/3

  • graphify_compatible: 1/3

  • markdown: 1/3, с утечкой запрещённых фрагментов

graphify_compatible — это адаптер протокола, который позволяет внешнему ретриверу конкурировать с тем же манифестом, временными границами и контрактом оценки. Это не утверждение, что этот репозиторий уже завершил живое сравнение с Graphify.

Человеческое рецензирование в Obsidian

Сгенерируйте хранилище Markdown, содержащее текущие утверждения, точное происхождение, связи и очередь рецензирования Dream:

memorygraph project-obsidian --bank project:my-app \
  --output .memorygraph/obsidian

Markdown является одноразовым и управляется манифестом. Наблюдения SQLite и события только-добавления остаются авторитетными; правки в сгенерированных заметках никогда молча не изменяют память.

Dogfood Beta

Beta добавляет живой, принадлежащий репозиторию цикл доказательств поверх детерминированной матрицы Alpha. Начните с загрузки проектного банка, установки конфигурации MCP в рамках проекта и проверки настроенной базы данных проекта:

memorygraph dogfood bootstrap --database .memorygraph/memory.db \
  --bank project:memorygraph --workspace agent-memory-research
memorygraph install-codex --project .
memorygraph probe-codex --project . --project-database --configured-only

Инструментирование реальных сеансов является явным и только-добавлением; MemoryGraph никогда не собирает частную историю Codex. Записывайте одобренные события recall, attempt и task с помощью memorygraph dogfood capture, затем запустите make dogfood-live. Отчёт отслеживает успешные задачи, точность полезного извлечения, запрещённое извлечение, повторяющиеся ошибки, задержку, токены, вызовы инструментов и повторные попытки. Полный операционный контракт и схема событий находятся в 13-dogfood-beta.md.

Запустите ускоренный шлюз Beta, не дожидаясь пяти органических проектов:

make dogfood-beta

Это запускает пять изолированных, разделённых по времени рабочих потоков против no-memory, Markdown и MemoryGraph, затем объединяет существующие публичные наборы извлечения и производственного хаоса в один отчёт прохождения/провала с отпечатками в benchmarks/reports/dogfood-beta.json. Это ускоренное детерминированное доказательство, а не утверждение о пяти постоянных пользователях.

Почему граф?

Граф даёт агентам компонуемую структуру: сущности — это узлы, а утверждения, такие как Abrar --works_at--> Stripe, — типизированные рёбра. MemoryGraph не рассматривает ребро как вневременную истину. Каждая версия утверждения несёт действительное время, системное время, жизненный цикл, происхождение и точные исходные доказательства. В этом разница между полезным графом памяти и устаревшим хранилищем фактов.

Разработка

uv sync --extra dev
uv run pytest
uv run ruff check .
PYTHONPATH=src:. python examples/run_memoryrotbench_memorygraph.py
PYTHONPATH=src:. python examples/run_memoryrotbench_chaos_memorygraph.py
python examples/run_memoryrotbench_baseline_matrix.py
PYTHONPATH=src:. uv run python examples/run_dogfood_fixture_matrix.py

Ожидаемые результаты: 12/12 публичных случаев извлечения и 7/7 производственных случаев хаоса. Матрица добавляет неизменяемые записи с отпечатками корпуса и оценщика в benchmarks/reports/public-baseline-matrix.jsonl. Укажите --graphify-command, чтобы запустить внешний адаптер Graphify против точно того же видимого корпуса и контракта оценки.

Следующий продуктовый слой

Следующий шлюз — это всё ещё реальное доказательство: живые сеансы dogfood с поддержкой моделей, реальные сравнения один-на-один с Graphify и использование партнёров по дизайну над реальной работой по кодированию. Остатки удаления полного конвейера проверяются и сообщаются; любые остатки идентичности, которые нельзя безопасно стереть без переписывания истории, выявляются, а не скрываются. Валидатор мечты остаётся предохранительным поясом, через который должны проходить все провайдеры и рабочие.

Лицензировано под Apache-2.0.

Available Tools

5 tools
correctCorrect claimB
Destructive

Supersede or retract a current claim with auditable evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankYesBank slug or UUID.
objectNo
excerptNo
claim_idYes
known_atNo
valid_toNo
operationYes
rationaleNo
workspaceNoOptional workspace label stored on observations.
valid_fromNo
object_kindNo
object_typeNo
effective_atNo
observation_idNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, which covers the mutation aspect. The description adds 'with auditable evidence,' implying that actions are logged or supported by evidence—information not present in annotations. However, it does not elaborate on the nature of the audit trail or what happens to the superseded/retracted claim, so the added value is modest.

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

Conciseness5/5

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

A single, compact sentence conveys the core purpose without wasted words. The action and key qualifier are front-loaded, making it easy to scan. No redundant phrases or unnecessary detail are present.

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?

For a destructive mutation tool with 14 parameters, a one-line description is severely insufficient. It omits operational context (e.g., what constitutes a 'current claim', how to specify the target, acceptable evidence types, return behavior, or error conditions). Combined with no output schema and low parameter coverage, the description leaves critical gaps that will impede correct invocation.

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?

With only 14% schema description coverage and 14 parameters, the description carries the burden of explaining key parameters. It does not elaborate on claim_id, operation, rationale, valid_from, valid_to, or other fields. The phrase 'auditable evidence' hints at rationale/excerpt but does not map to any parameter, leaving the agent without semantic guidance for required inputs.

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?

The description clearly states the action ('Supersede or retract') and the resource ('a current claim'), and includes the qualifier 'with auditable evidence' that signals a specific audit-trail behavior. It implicitly distinguishes itself from siblings like record (creating new claims) and forget (possibly deletion) by focusing on correction of existing claims.

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 explicit guidance is given on when to use this tool versus alternatives. The description implies correction of existing claims but does not state conditions, prerequisites, or contrast with siblings. An agent must infer usage from the operation names alone.

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

explainExplain claimB
Read-onlyIdempotent

Show a claim's lifecycle, relations, and exact supporting evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankYesBank slug or UUID.
claim_idYes
workspaceNoOptional workspace label stored on observations.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds context about the kind of information returned (lifecycle stages, relations, evidence granularity), which goes beyond bare annotations. However, it doesn't describe output format, pagination, or any side effects beyond what annotations imply, so it adds moderate value.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It efficiently conveys the core purpose without redundancy, making it easy for an agent to parse quickly.

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?

Given there is no output schema, the description doesn't explain the return structure or how the 'explain' information is presented (e.g., nested JSON, human-readable text). It also doesn't mention any constraints like required permissions or workspace handling. For a tool that likely returns complex claim details, this is a notable gap, though the basic purpose is clear.

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

Parameters2/5

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

Schema coverage is 67%: 'bank' and 'workspace' have descriptions, but 'claim_id' does not. The tool description doesn't clarify any parameters further, especially the undocumented claim_id. It adds no meaning beyond what the schema already provides, leaving the unidentified parameter ambiguous.

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 clearly states the verb 'show' and the resource 'claim' with specific aspects: lifecycle, relations, and exact supporting evidence. This distinguishes it from siblings like recall (retrieve), record (create), correct (modify), and forget (delete) by focusing on detailed visualization rather than simple retrieval or mutation.

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?

The description provides no guidance on when to use this tool versus alternatives, nor any conditions for exclusion. It doesn't mention whether it's preferred for debugging, auditing, or investigating claim states, leaving the agent to infer from the name and siblings.

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

forgetForget observationA
DestructiveIdempotent

Privacy-delete one source observation and propagate direct retractions.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankYesBank slug or UUID.
workspaceNoOptional workspace label stored on observations.
observation_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the description adds value by explaining the 'privacy-delete' nature (implying data sanitization) and the propagation of retractions. This goes beyond the bare annotation flags and gives a clearer picture of side effects, though it doesn't detail the propagation mechanism itself.

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

Conciseness5/5

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

The description is a single, compact sentence that front-loads the core action ('Privacy-delete') and immediately follows with the key side-effect. There is zero fluff; every word carries functional meaning, making it an exemplary concise definition.

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 simple deletion tool with 3 parameters and no output schema, the description covers the essential action and side effects. It does not mention return values, error handling, or prerequisites, but given the low complexity and annotations covering idempotency and destructiveness, it is adequately complete.

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 coverage is 67%, meaning two of three parameters have descriptions in the schema. The tool description does not add any semantic detail about parameters (e.g., what 'bank' or 'observation_id' specifically mean in this context). Since coverage is not high (>80%) but not low (<50%), the baseline 3 applies, and the description makes no attempt to compensate.

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?

The description states a specific verb ('Privacy-delete') and resource ('one source observation') and adds a distinguishing side-effect ('propagate direct retractions'). This clearly sets it apart from siblings like 'record' or 'explain', making the tool's purpose instantly recognizable.

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 for when to use this tool versus alternatives. It does not mention conditions, exclusions, or scenarios where a different sibling (e.g., 'correct') would be more appropriate. The usage context is entirely left to the agent to infer.

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

recallRecall memoryC
Read-onlyIdempotent

Retrieve bounded source observations relevant to the current task.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankYesBank slug or UUID.
as_ofNo
limitNo
queryYes
workspaceNoOptional workspace label stored on observations.
max_tokensNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description need not repeat that. It adds the concepts of 'bounded' and relevance to the current task, which are minor behavioral cues, but it does not disclose retrieval mechanism, result format, or error handling. The added value is modest.

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 description is a single sentence with no wasted words and the primary action is front-loaded. It is efficient, though its brevity may contribute to the lack of parameter and usage clarity.

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

Completeness2/5

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

With 6 parameters (2 required), low schema coverage, and no output schema, the description is insufficient. It does not explain how to construct the query, what 'limit' or 'max_tokens' control, or what the response contains. An agent would need to consult other sources to call this tool correctly.

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

Parameters2/5

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

Schema description coverage is only 33% (only bank and workspace have descriptions). The tool description neither explains the remaining parameters (query, as_of, limit, max_tokens) nor provides any parameter-level guidance. The phrase 'bounded source observations' hints at limits but does not map to specific parameters, failing to compensate for the low coverage.

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 clear verb ('Retrieve') and a resource ('bounded source observations'), which distinguishes it from sibling tools like 'record' and 'forget'. However, it does not explicitly mention the 'bank' parameter or clarify the meaning of 'bounded', leaving some ambiguity about scope.

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 provided on when to use this tool versus alternatives such as 'explain' or 'correct'. The only contextual hint is 'relevant to the current task', which is vague and does not explain prerequisites, exclusions, or when to prefer recall over other memory operations.

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

recordRecord observationB
Idempotent

Store one user-approved raw observation without inferring claims. Set kind to attempt to record procedural memory; content is the strategy and metadata must include task_key and outcome, with optional failure, applicability, and environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
bankYesBank slug or UUID.
kindNo
contentYes
actor_idNo
metadataNo
workspaceNoOptional workspace label stored on observations.
actor_typeNo
source_keyYes
observed_atNo
sensitivityNo
trust_classNo
effective_atNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds context about user approval and non-inference of claims, which are beyond the annotations. But it doesn't disclose other behaviors like error handling, rate limits, or side effects beyond the basic write operation, so it adds some value but not a lot.

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

Conciseness5/5

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

The description is two sentences with zero fluff. It front-loads the core purpose, then gives a focused, actionable instruction for the most complex parameter combination. Every word earns its place, and the layout makes it easy to scan.

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

Completeness2/5

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

For a tool with 12 parameters, nested objects, and no output schema, the description is insufficient. It only addresses the 'attempt' kind and does not cover other potential uses or explain most parameters. There is no mention of return values, error cases, or examples. While annotations cover idempotency and destruction, the description leaves too much to inference for a complex tool.

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 only 17%, so the description carries considerable burden. It clarifies kind, content, and metadata specifically for the 'attempt' case, which is valuable. However, it leaves the majority of the 12 parameters (e.g., actor_id, actor_type, sensitivity, trust_class) unexplained, and provides no general semantics for other kinds. It partially compensates for the low coverage but not fully.

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 clearly states a specific verb ('Store') and resource ('raw observation'), with a qualifier ('user-approved') and a constraint ('without inferring claims'). It is unambiguous, though it doesn't explicitly distinguish from sibling tools like 'explain' or 'recall', which prevents a perfect score.

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

Usage Guidelines3/5

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

The description provides explicit guidance for a specific scenario (setting kind to 'attempt') and outlines required metadata fields. However, it lacks any guidance on when this tool should be used compared to siblings, no exclusions or alternatives are mentioned, so it's partially helpful but not comprehensive.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedcorrect
    • First observedexplain
    • First observedforget
    • First observedrecall
    • First observedrecord

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct operation: explain (query graph), recall (retrieve observations), record (store), correct (update claims), forget (delete). No overlapping purposes, and descriptions clearly separate them.

Naming Consistency5/5

All tool names are single lowercase verbs, creating a uniform and predictable pattern. This consistency makes it easy to infer the action each tool performs.

Tool Count5/5

Five tools is well-scoped for a memory graph server, covering core operations without redundancy. Each tool addresses a necessary part of the memory lifecycle.

Completeness4/5

The set covers record, recall, correct, forget, and explain, which covers full CRUD-like operations on claims and observations. Minor gaps like explicit listing or bulk operations exist but are not critical for core usage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Long-term memory for AI agents. Compiles conversations into a structured knowledge base with Claim/Evidence model, source provenance, append-only timeline, and contradiction detection. Multi-path retrieval (Exact + BM25 + Graph + weighted RRF + reranker) — 96.6% R@5 on LongMemEval-S, zero vector dependencies.
    8
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A source-grounded memory layer for AI agents that stores, links, and recalls factual memories with confidence levels and citations, enabling honest answers when information is not in the record.
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides agents with durable, provenance-aware memory through tools for remembering, recalling, answering, and maintaining information, while structurally resisting injection and confabulation.
    8
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xbrxr03/memorygraph'

If you have feedback or need assistance with the MCP directory API, please join our Discord server