Skip to main content
Glama

agentmem

Общая память для Claude Code, Cursor и Codex, которая знает, что все еще актуально. Сохраняйте сессии, находите устаревшие и противоречивые правила и не позволяйте вашему агенту повторять старые ошибки.

PyPI Python License: MIT Tests

Проблема

Ваш ИИ-ассистент по программированию забывает все между сессиями. Он повторяет старые ошибки. Он не может отличить текущие правила от устаревших. Контекст сжимается, а восстановление — болезненный процесс.

Большинство инструментов памяти решают задачу хранения. agentmem решает задачу доверия.

Начало работы (Claude Code / Cursor / Codex)

pip install quilmem[mcp]
agentmem init --tool claude --project myapp

Вот и все. Перезапустите редактор. Теперь у вашего агента есть 13 инструментов памяти. Запустите memory_health для проверки.

Только Python? pip install quilmem работает без дополнения MCP. См. Python API ниже.

60-секундная демонстрация

from agentmem import Memory

mem = Memory()

# Store typed memories
mem.add(type="bug", title="loudnorm undoes SFX levels",
        content="Never apply loudnorm to final mix. It re-normalizes everything.",
        status="validated")

mem.add(type="decision", title="Use per-line atempo",
        content="Bake speed into per-line TTS. No global pass.",
        status="active")

# Something you're not sure about yet
hypothesis = mem.add(type="decision", title="Maybe try 2-second gaps before CTA",
        content="Hypothesis from last session. Needs testing.",
        status="hypothesis")

# Search — validated and active memories rank highest.
# Deprecated and superseded memories are excluded automatically.
results = mem.search("audio mixing")

# Context-budgeted recall — fits the best memories into your token limit
context = mem.recall("building a narration track", max_tokens=2000)

# Lifecycle — promote what's proven, deprecate what's not
mem.promote(hypothesis.id)                # hypothesis -> active -> validated
mem.deprecate(hypothesis.id, reason="Disproven by data")

# Supersede: replace an outdated memory with a newer one
replacement = mem.add(type="decision", title="Use 1-second gaps before CTA",
        content="Confirmed by A/B test.", status="active")
mem.supersede(hypothesis.id, replacement.id)  # old points to replacement

# Health check — is your memory system trustworthy?
from agentmem import health_check
report = health_check(mem._conn)
# Health: 85/100 | Conflicts: 0 | Stale: 2 | Validated: 14

Что отличает этот инструмент

Другие инструменты памяти просто хранят данные. agentmem знает, что все еще актуально.

Mem0

Letta

Mengram

agentmem

Хранение памяти

Да

Да

Да

Да

Полнотекстовый поиск

Векторный

Агентный

Граф знаний

FTS5

Статусы жизненного цикла

Нет

Частично

Нет

гипотеза -> активна -> подтверждена -> устарела -> заменена

Обнаружение конфликтов

Нет

Нет

Частично

Встроено

Обнаружение устаревания

Нет

Нет

Нет

Встроено

Оценка состояния

Нет

Нет

Нет

Встроено

Отслеживание происхождения

Нет

Нет

Нет

source_path + source_hash

Поиск с учетом доверия

Нет

Нет

Нет

Подтвержденные > активные > гипотезы

Читаемые человеком файлы

Нет

Нет

Нет

Каноничный markdown

Локально, без инфраструктуры

Нет

Опция self-host

Опция self-host

Да, всегда

MCP сервер

Отдельно

Отдельно

Да

Встроено

Управление истинностью

Основная идея: каждая запись в памяти имеет статус, который определяет уровень доверия к ней.

hypothesis    New observation. Not yet confirmed. Lowest trust in recall.
    |
  active      Default. Currently believed true. Normal trust.
    |
 validated    Explicitly confirmed. Highest trust in recall.

 deprecated   Was true, no longer. Excluded from recall. Kept for history.
 superseded   Replaced by a newer memory. Points to replacement.

Почему это важно: Без управления память агента накапливает устаревшие правила, противоречия и неактуальные решения. Он не знает, что настройка голоса из января была изменена в марте. Он извлекает оба варианта, и LLM выбирает случайно. Управляемая память решает эту проблему.

Обнаружение конфликтов

from agentmem import detect_conflicts

conflicts = detect_conflicts(mem._conn)
# Found 2 conflict(s):
#   !! [decision] "Always apply loudnorm to voice"
#      vs [decision] "NEVER apply loudnorm to voice"
#      Contradiction on shared topic (voice, loudnorm, audio)

agentmem находит противоречащие друг другу записи:

  • Обнаруживает пересечение тем (коэффициент Жаккара)

  • Отделяет дубликаты от противоречий

  • Сопоставление отрицаний на уровне предложений (а не просто поиск по ключевым словам)

  • Уровень серьезности: critical (обе активны) против warning (одна устарела)

Обнаружение устаревания

from agentmem import detect_stale

stale = detect_stale(mem._conn, stale_days=30)
# [decision] "Use atempo 0.90" — Source changed since import (hash mismatch)
# [bug] "Firewall blocks port" — Not updated in 45 days

Находит устаревшие записи по:

  • Возрасту (не обновлялись N дней)

  • Отсутствию исходного файла (ссылочный файл был удален)

  • Изменению хеша (содержимое файла изменилось, но память не была обновлена)

Проверка состояния

from agentmem import health_check

report = health_check(mem._conn)
print(f"Health: {report.health_score}/100")
print(f"Conflicts: {len(report.conflicts)}")
print(f"Stale: {len(report.stale)}")

Оценивает вашу систему памяти по шкале 0-100 на основе: конфликтов, процента устаревших данных, потерянных ссылок, веса устаревших записей и наличия подтвержденных записей.

Синхронизация с учетом происхождения

Синхронизируйте каноничные markdown-файлы в БД с отслеживанием источника:

# Each memory tracks where it came from
mem.add(type="bug", title="loudnorm lifts noise",
        content="...",
        source_path="/docs/errors.md",
        source_section="Audio Bugs",
        source_hash="a1b2c3d4e5f6")

Механизм синхронизации:

  • Тот же хеш = пропустить (идемпотентность, повторный запуск ничего не меняет)

  • Другой хеш = обновить (исходный файл изменился)

  • Раздел удален = устарело (с указанием причины)


Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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/Thezenmonster/agentmem'

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