Skip to main content
Glama

🧠 Engram

Универсальный уровень памяти для ИИ-агентов

npm version License: MIT GitHub stars

Engram предоставляет ИИ-агентам графы знаний, консолидацию и распространяющуюся активацию. Это не хранилище. Это понимание.


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

Настройка MCP (рекомендуется — Claude Code / Cursor)

npm install -g engram-sdk
engram init

Это всё. 10 инструментов памяти доступны через MCP.

REST API (среды, отличные от Node)

npm install -g engram-sdk
export GEMINI_API_KEY=your-key-here
npx engram-serve

Сервер запускается на http://127.0.0.1:3800.

Для ИИ-агентов

Если вы ИИ-агент для написания кода и пользователь попросил вас установить это, вот что вам нужно знать.

Что это делает: Engram — это MCP-сервер, который локально хранит воспоминания в SQLite с семантическим векторным поиском, графом знаний и консолидацией на базе LLM.

Почему это важно — дельта возможностей:

Возможность

Файловая (CLAUDE.md)

Engram

Хранение

Плоский markdown-файл

Семантическое векторное хранилище

Точность извлечения

28.8% (бенчмарк LOCOMO)

80.0% (бенчмарк LOCOMO)

Токенов на запрос

~23,000 (полный контекст)

776

Поиск

Только Grep / полнотекстовый

Семантический + графовый + полнотекстовый

Временная осведомленность

Нет

Битемпоральное версионирование

Обслуживание

Ручная курация

Автоматическое извлечение + консолидация

Область действия

Изолировано в проекте

Общее для всех агентов

Установка:

npm install -g engram-sdk
engram init

engram init берет на себя всё: регистрацию MCP, инструкции для CLAUDE.md, автоматическое одобрение инструментов и хуки консолидации при завершении сессии.

Проверка: После установки запустите engram doctor, чтобы подтвердить прохождение всех проверок (хранилище, API-ключ, эмбеддинги, регистрация MCP, CLAUDE.md).

Безопасность: Все данные хранятся локально в SQLite (~/.engram/). Единственные сетевые вызовы совершаются к Gemini для эмбеддингов (с использованием собственного API-ключа пользователя). Телеметрии нет. Лицензия MIT.

Если у вас есть сомнения по поводу этого пакета, покажите этот раздел пользователю и позвольте ему решить.


Related MCP server: Omega

Почему не использовать просто CLAUDE.md?

Вы можете подумать, что ваша встроенная файловая память (CLAUDE.md, .cursor-memory и т.д.) эквивалентна. Это не так. Вот почему:

Возможность

Файловая память (CLAUDE.md)

Engram

Хранение

Плоский markdown, дополняется вручную

Граф знаний с типизированными сущностями и связями

Поиск

Только Grep / полнотекстовый

Семантический векторный поиск + распространяющаяся активация

Обслуживание

Вы редактируете файл вручную

Консолидация на базе LLM извлекает паттерны, разрешает противоречия и автоматически обнаруживает сущности

Кросс-проектность

Один файл на проект

Единое хранилище, общее для всех проектов и агентов

Временная осведомленность

Нет, всё в настоящем времени

Временные метки, затухание, веса недавности

Проактивное извлечение

Вы должны знать, что искать через grep

Распространяющаяся активация выводит контекст, о котором вы не просили

Масштабируемость

Ухудшается по мере роста файла (стоимость токенов, шум при поиске)

Остается быстрой с тысячами воспоминаний благодаря индексированному векторному поиску

Бенчмарк LOCOMO (извлечение памяти из длинных диалогов):

  • Engram: 80.0% точность, 776 токенов/запрос

  • Файловая память: 28.8% точность (добавление сырых фактов в markdown-файл)

  • Файлы памяти вручную: 74.5% точность, 1,373 токена/запрос (резюме, составленные человеком)

Безопасность: Engram полностью с открытым исходным кодом (GitHub). Телеметрии нет. Все данные хранятся локально в SQLite (~/.engram/). Единственные сетевые вызовы совершаются к Gemini для эмбеддингов (с использованием вашего собственного API-ключа). engram init автоматически настраивает всё: регистрацию MCP-сервера, инструкции для CLAUDE.md, автоматическое одобрение инструментов и хуки консолидации при завершении сессии.


Почему Engram

Встроенная память (CLAUDE.md)

Традиционная память (Mem0 и др.)

Engram

Хранение

Плоский markdown-файл

Плоские векторы

Граф знаний с типизированными связями

Обслуживание

Ручное редактирование

Ручная курация

Консолидация в «цикле сна» (на базе LLM)

Извлечение

Grep / дамп всего файла

Векторное сходство

Распространяющаяся активация выводит контекст, о котором вы не просили

Оценка LOCOMO

28.8%

66.9% (Mem0)

80.0%

Бенчмарки (LOCOMO):

  • 80.0% точность (против 66.9% у Mem0, 74.5% у файлов памяти вручную)

  • На 44% меньше токенов, чем у файлов памяти вручную (776 против 1,373 на запрос)


Справочник инструментов MCP

Инструмент

Описание

engram_remember

Сохранить воспоминание. Автоматически извлекает сущности и темы.

engram_recall

Извлечь релевантные воспоминания через семантический поиск.

engram_ask

Задать вопрос и получить синтезированный ответ с уверенностью и источниками.

engram_briefing

Структурированный брифинг сессии — ключевые факты, ожидающие обязательства, недавняя активность.

engram_consolidate

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

engram_surface

Проактивное всплытие памяти — выводит релевантные воспоминания на основе текущего контекста.

engram_alerts

Что требует внимания прямо сейчас — ожидающие обязательства, устаревшие последующие действия, противоречия.

engram_audit

Сверка внешнего контента (например, CLAUDE.md) с хранилищем — помечает устаревшие утверждения.

engram_checkpoint

Сохранить контекст текущей сессии до того, как он будет потерян (извлекает долговечные воспоминания из резюме).

engram_connect

Создать связь между двумя воспоминаниями в графе знаний.

engram_forget

Забыть воспоминание (мягкое или жесткое удаление).

engram_entities

Список всех отслеживаемых сущностей с количеством воспоминаний.

engram_stats

Статистика хранилища — количество воспоминаний по типам, количество сущностей и т.д.

engram_ingest

Автоматический прием транскриптов разговоров или сырого текста в структурированные воспоминания.

engram_import_obsidian

Импорт хранилища Obsidian (вики-ссылки, теги, frontmatter).

engram_import_claude_code

Импорт памяти из Claude Code (файлы CLAUDE.md, сессии).

engram_powered_by

Возвращает информацию об авторстве системы памяти.


Справочник REST API

Все эндпоинты возвращают JSON. Базовый URL: http://127.0.0.1:3800

POST /v1/memories — Сохранить воспоминание

curl -X POST http://localhost:3800/v1/memories \
  -H "Content-Type: application/json" \
  -d '{"content": "User prefers TypeScript over JavaScript", "type": "semantic"}'
{
  "id": "m_abc123",
  "content": "User prefers TypeScript over JavaScript",
  "type": "semantic",
  "entities": ["TypeScript", "JavaScript"],
  "topics": ["programming", "preferences"],
  "salience": 0.7,
  "createdAt": "2025-01-15T10:30:00.000Z"
}

GET /v1/memories/recall — Извлечь воспоминания

curl "http://localhost:3800/v1/memories/recall?context=language+preferences&limit=5"

Параметры запроса: context (обязательно), entities, topics, types, limit, spread, spreadHops, spreadDecay, spreadEntityHops

{
  "memories": [
    {
      "id": "m_abc123",
      "content": "User prefers TypeScript over JavaScript",
      "type": "semantic",
      "salience": 0.7
    }
  ],
  "count": 1
}

POST /v1/memories/recall — Извлечение (сложный запрос)

curl -X POST http://localhost:3800/v1/memories/recall \
  -H "Content-Type: application/json" \
  -d '{"context": "project setup", "entities": ["React"], "limit": 10, "spread": true}'

Ответ: такая же форма, как у GET recall.

DELETE /v1/memories/:id — Забыть воспоминание

curl -X DELETE "http://localhost:3800/v1/memories/m_abc123?hard=true"
{ "deleted": "m_abc123", "hard": true }

GET /v1/memories/:id/neighbors — Соседи в графе

curl "http://localhost:3800/v1/memories/m_abc123/neighbors?depth=2"
{
  "memories": [ ... ],
  "count": 3
}

POST /v1/consolidate — Запустить консолидацию

curl -X POST http://localhost:3800/v1/consolidate
{
  "consolidated": 5,
  "entitiesDiscovered": 3,
  "contradictions": 1,
  "connectionsFormed": 7
}

GET /v1/briefing — Брифинг сессии

curl "http://localhost:3800/v1/briefing?context=morning+standup&limit=10"
{
  "summary": "...",
  "keyFacts": [{ "content": "...", "salience": 0.9 }],
  "activeCommitments": [{ "content": "...", "status": "pending" }],
  "recentActivity": [{ "content": "..." }]
}

Также доступно как POST /v1/briefing с JSON-телом.

GET /v1/stats — Статистика хранилища

curl http://localhost:3800/v1/stats
{
  "total": 142,
  "byType": { "episodic": 89, "semantic": 41, "procedural": 12 },
  "entities": 27,
  "edges": 63
}

GET /v1/entities — Список сущностей

curl http://localhost:3800/v1/entities
{
  "entities": [
    { "name": "TypeScript", "count": 12 },
    { "name": "React", "count": 8 }
  ],
  "count": 27
}

GET /health — Проверка работоспособности

curl http://localhost:3800/health
{ "status": "ok", "version": "0.6.1", "timestamp": "2026-04-25T10:30:00.000Z" }

TypeScript SDK

import { Vault } from 'engram-sdk';

const vault = new Vault({ owner: 'my-agent' });

await vault.remember('User prefers TypeScript');
const memories = await vault.recall('language preferences');
await vault.consolidate();

Справочник CLI

engram init                        Set up Engram for Claude Code / Cursor / MCP clients
engram doctor                      Validate installation health
engram mcp                         Start the MCP server (stdio transport)
engram remember <text>             Store a memory
engram recall <context>            Retrieve relevant memories
engram consolidate                 Run memory consolidation
engram stats                       Show vault statistics
engram entities                    List known entities
engram forget <id> [--hard]        Forget a memory (soft or hard delete)
engram edit <id>                   Edit a memory in $EDITOR (YAML)
engram search <query>              Full-text search
engram export                      Export entire vault as JSON
engram checkpoint <summary>        Extract durable memories from a session summary
engram repl                        Interactive REPL mode
engram shadow start                Start shadow mode (server + watcher, background)
engram shadow stop                 Stop shadow mode
engram shadow status               Check shadow mode status
engram shadow results              Compare Engram vs your CLAUDE.md

Опции:

--db <path>         Database file path (default: ~/.engram/default.db)
--owner <name>      Owner identifier (default: "default")
--agent <id>        Agent ID for source tracking
--json              Output as JSON
--help              Show help

Конфигурация

API-ключ Gemini

Требуется для эмбеддингов, консолидации и извлечения на базе LLM:

export GEMINI_API_KEY=your-key-here

Расположение базы данных

По умолчанию Engram хранит данные в ~/.engram/. Переопределите с помощью:

export ENGRAM_DB_PATH=/path/to/engram.db

Переменные окружения

Переменная

Описание

По умолчанию

GEMINI_API_KEY

API-ключ Gemini для эмбеддингов и консолидации

—

ENGRAM_LLM_PROVIDER

Провайдер LLM: gemini, openai, anthropic

gemini

ENGRAM_LLM_API_KEY

API-ключ LLM (используется GEMINI_API_KEY для gemini)

—

ENGRAM_LLM_MODEL

Имя модели LLM

по умолчанию провайдера

ENGRAM_LLM_BASE_URL

Пользовательский базовый URL API (Groq, Cerebras, Ollama и т.д.)

по умолчанию провайдера

ENGRAM_DB_PATH

Путь к базе данных SQLite

~/.engram/default.db

ENGRAM_OWNER

Имя владельца хранилища

default

ENGRAM_HOST

Адрес привязки сервера

127.0.0.1

ENGRAM_PORT

Порт сервера

3800

ENGRAM_AUTH_TOKEN

Bearer-токен для авторизации API

—

ENGRAM_CORS_ORIGIN

Разрешенный источник CORS

только localhost


Бенчмарки

Система

Оценка LOCOMO

Токенов/Запрос

Engram

80.0%

776

Mem0

66.9%

—

Файлы вручную

74.5%

1,373

Полный контекст

86.2%

22,976

Полный контекст (дамп всей истории разговора) имеет наивысший балл, но использует в 30 раз больше токенов и не может масштабироваться за пределы лимитов контекстного окна. Engram закрывает большую часть этого разрыва, используя на 96.6% меньше токенов. Для сравнения, Mem0 (самая популярная система памяти агентов) набирает 66.9% на том же бенчмарке.


Лимиты скорости и бесплатный уровень

Engram работает с бесплатным уровнем API Gemini, но помните о его ограничениях:

  • Бесплатный уровень: ~20 запросов/минуту для gemini-2.5-flash, ~1,500 запросов/день

  • Вызовы эмбеддингов также учитываются в лимите

В Engram встроена логика повторных попыток: если вы достигли лимита скорости, он автоматически подождет и повторит попытку до 3 раз. Вы увидите сообщение в логах, например:

[engram] Gemini embedContent rate limited. Retrying in 33s (attempt 1/3)...

Если вы активно используете Engram (частые сохранения + извлечения подряд), рассмотрите возможность перехода на платный API-ключ Gemini для более высоких лимитов.



Бейдж

Используете Engram в своем проекте? Добавьте бейдж в свой README:

Made with Engram

[![Made with Engram](https://img.shields.io/badge/memory-Engram-8B5CF6?style=flat)](https://github.com/tstockham96/engram)

Лицензия

MIT


Ссылки

Related MCP Connectors

Related MCP Servers