Skip to main content
Glama

Долговременная память для ИИ-агентов — темпоральный граф знаний, гибридный поиск, SQLite или PostgreSQL.

crates.io Docker MCP Registry License

java-ai-memory.dev · Исходный код · Документация JamJet · Discord


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

Этот репозиторий содержит запись в реестре Glama. Исходный код находится в основном репозитории JamJet.

Быстрый старт — 30 секунд

# Docker — uses local Ollama by default
docker run --rm -i \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

Или установите через crates.io:

cargo install jamjet-engram-server
engram serve

Настройка Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "engram": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "engram-data:/data",
        "ghcr.io/jamjet-labs/engram-server:0.5.0"
      ]
    }
  }
}

После перезапуска модели станут доступны 11 инструментов MCP.

Инструменты MCP (11)

Инструменты памяти (7)

Инструмент

Описание

memory_add

Извлечение и сохранение фактов из сообщений диалога с помощью LLM. Побочные эффекты: вызывает настроенную LLM для парсинга фактов, затем записывает их в граф знаний. Возвращает ID извлеченных фактов. Требует массив messages и user_id.

memory_recall

Семантический поиск по сохраненным фактам с использованием векторного сходства. Только чтение, без побочных эффектов. Возвращает ранжированные факты, соответствующие запросу, в рамках user_id и опционального org_id. Используйте для получения контекста перед генерацией ответа.

memory_recall

Сборка блока контекста с учетом лимита токенов для промптов LLM с выбором фактов по уровням важности. Только чтение. Возвращает отформатированную строку наиболее релевантных фактов, ограниченную заданным бюджетом токенов. Используйте вместо memory_recall, когда нужен готовый фрагмент промпта.

memory_search

Поиск по ключевым словам с использованием полнотекстового поиска (SQLite FTS5 / Postgres). Только чтение, без побочных эффектов. Возвращает факты, соответствующие точным ключевым словам. Используйте, когда нужно точное совпадение терминов, а не семантическое сходство, как в memory_recall.

memory_forget

Мягкое удаление факта по ID с опциональной причиной. Побочный эффект: помечает факт как удаленный в графе знаний (физически не удаляет). Необратимо через этот инструмент. Используйте, когда пользователь просит удалить конкретную информацию.

memory_stats

Получение агрегированной статистики: общее количество фактов, валидных (не удаленных) фактов, количество сущностей и связей. Только чтение, без побочных эффектов. Используйте для оценки размера и состояния хранилища памяти.

memory_consolidate

Запуск цикла обслуживания графа знаний — затухание устаревших фактов, продвижение фактов с высокой степенью достоверности, дедупликация почти идентичных записей и обобщение кластеров. Побочные эффекты: изменяет оценки фактов, может объединять или архивировать факты. Запускайте периодически для поддержания точности памяти.

Инструменты хранилища сообщений (4)

Инструмент

Описание

messages_save

Сохранение сообщений чата для диалога по ID. Побочные эффекты: записывает сообщения в хранилище и опционально запускает извлечение фактов (управляется параметром --extract-on-save). Используйте для сохранения полной истории диалога вместе с извлеченными фактами.

messages_get

Получение всех сообщений для диалога по ID. Только чтение, без побочных эффектов. Возвращает упорядоченный массив сообщений. Используйте для воспроизведения или проверки прошлых диалогов.

messages_list

Список всех ID диалогов в хранилище сообщений. Только чтение, без побочных эффектов. Возвращает массив строк с ID диалогов. Используйте для обнаружения сохраненных диалогов перед получением через messages_get.

messages_delete

Удаление всех сообщений для диалога по ID. Побочный эффект: безвозвратно удаляет сообщения диалога из хранилища. Необратимо. Не влияет на извлеченные факты — для этого используйте memory_forget.

Все инструменты памяти ограничены областью (org_id, user_id, session_id) — org является самым широким уровнем, session — самым узким.

Провайдеры LLM

Агностичность к провайдерам. Один бинарный файл, установите ENGRAM_LLM_PROVIDER=... и работайте:

Провайдер

Значение переменной окружения

Примечания

Ollama

ollama (по умолчанию)

Локально, бесплатно, без API-ключей

Совместимые с OpenAI

openai-compatible

OpenAI, Azure, Groq, Together, Mistral, DeepSeek, vLLM, LM Studio и др.

Anthropic

anthropic

Claude через Messages API

Google

google

Gemini через generateContent

Shell command

command

Передача в любой внешний скрипт

Mock

mock

Детерминированный, только для тестов

# Example: use Groq instead of Ollama
docker run --rm -i \
  -e ENGRAM_LLM_PROVIDER=openai-compatible \
  -e ENGRAM_OPENAI_BASE_URL=https://api.groq.com/openai/v1 \
  -e OPENAI_API_KEY=gsk_... \
  -v engram-data:/data \
  ghcr.io/jamjet-labs/engram-server:0.5.0

Почему Engram?

Проблема

Ответ Engram

Каждая библиотека памяти агентов ориентирована на Python

Ядро на Rust с нативными клиентами для Python, Java и MCP

Нужно устанавливать Postgres + Qdrant + Neo4j для теста

Один файл SQLite (без инфраструктуры) или Postgres, когда это необходимо

История диалогов — это не память знаний

Конвейер извлечения фактов — структурированные факты из сообщений

Старые факты устаревают и противоречат друг другу

Обнаружение конфликтов + консолидация — затухание, продвижение, дедупликация, обобщение

Поиск по памяти — либо семантический, ЛИБО по ключевым словам

Гибридный поиск — векторный поиск + FTS5 в одном запросе

Поддержка MCP — это второстепенная задача

MCP-native — 11 инструментов, предоставляемых одним бинарным файлом

Невозможно изолировать память по пользователю или арендатору

Первоклассные области видимости — org / user / session встроены в каждый запрос

Клиентские SDK

Язык

Пакет

Установка

Python

jamjet (включает EngramClient)

pip install jamjet

Java

dev.jamjet:jamjet-sdk (включает EngramClient)

Maven Central

Spring Boot

dev.jamjet:engram-spring-boot-starter

Maven Central

Rust

jamjet-engram (встраивается напрямую)

cargo add jamjet-engram

См. также

Лицензия

Apache 2.0 — см. LICENSE.


-
security - not tested
A
license - permissive license
-
quality - not tested

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/jamjet-labs/engram-mcp-server'

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