Einstein (плагин памяти)
Einstein — официальный плагин долговременной памяти AiHummer. Он даёт агенту
устойчивую, доступную для поиска память, которая переживает перезапуски и
переключение разговоров, и при этом память никогда не превращается в «чёрный
ящик». Главное правило простое: системное хранилище — PostgreSQL, а
канонический Markdown — его человекочитаемая проекция, система индексирует и
предлагает изменения. В режиме review каждое продвижение в долговременную
память проходит проверку человеком; в режиме auto (умолчание) факт, явно
сохранённый агентом через инструмент memory_store, становится доступен поиску
сразу.
Плагин работает напрямую в Linux (без контейнеров) как отдельный небольшой
Python-сервис (только стандартная библиотека — без тяжёлых фреймворков) и
общается со шлюзом по контракту aihummer.memory.v1. Подсистема памяти внутри
шлюза (утверждения-кандидаты, выдача, защитная обёртка данных) описана на
странице концепции
Память (Einstein); эта страница — про сам
плагин, который её обеспечивает.
Факты
| Поле | Значение |
|---|---|
| Версия | 1.0.0 |
| Порт | 8820 |
| Среда | Python (стандартная библиотека), без контейнеров |
Что это такое
Einstein хранит память в виде человекочитаемого Markdown — канонической записи, которую человек может открыть, прочитать и отредактировать. Поверх этой записи он строит механизмы, нужные агенту в момент обработки запроса:
- Выдача (retrieval) — получить память, релевантную текущему разговору.
- Поиск — полнотекстовый и по эмбеддингам поиск по сохранённым фактам.
- Эмбеддинги — векторы для семантической выдачи, отдаются по HTTP.
Поскольку Markdown каноничен, в индексах нет ничего незаменимого: их можно перестроить из этой канонической записи в любой момент, и проверяющий всегда читает тот же текст, что и агент.
Как используется
В момент обработки запроса шлюз запрашивает у Einstein память, релевантную текущему контексту. Выдача приходит модели как результат инструмента, обёрнутый в защитную обёртку данных (data-fence), а не как внедрённые инструкции — защитная обёртка снижает риск интерпретации найденного текста как инструкции, но не заменяет ограничения инструментов, одобрения и тестирование на prompt-инъекции. Новые факты, замеченные в разговоре, извлекаются как утверждения-кандидаты с доказательствами и ставятся в очередь на проверку, а не пишутся в память напрямую.
Отдельный путь — явное сохранение инструментом memory_store: агент может
сохранить факт сам. Как этот факт записывается, определяет режим захвата памяти
ядра: при auto (умолчание) факт сразу становится доступен поиску, при
review и off — становится кандидатом и ждёт одобрения. Результат
инструмента содержит поле searchable_now, по которому агент честно сообщает,
доступен ли сохранённый факт немедленно.
[!NOTE] Система индексирует и предлагает, но не переписывает каноническую память без одобрения. В режиме
reviewпродвижение утверждения в долговременную память — осознанный шаг с проверкой человеком; в режимеauto(умолчание) явные факты агента доступны поиску сразу. Режим памяти (auto / review / off) и режим выдачи (fulltext / embedding) — настройки ядра (AIHUMMER_MEMORY_CAPTURE/AIHUMMER_MEMORY_RETRIEVALв Каталоге настроек), а не форма плагина.
Платформа памяти v2 (включена из коробки)
Einstein поставляется с полной платформой памяти v2: основные функции доступны после установки — извлечение утверждений-кандидатов, очередь проверки, фоновый деривер (факты, связи, сущности из свидетельств), проход объединения и уточнения памяти (dream: дедупликация и самоисцеление), граф памяти и обнаружение противоречий. Режим проверки памяти, эмбеддер и векторное хранилище настраиваются отдельно — настройками ядра. Сам Einstein настраивается вендором: операторских настроек у плагина нет, и на странице «Плагины» у него доступна только кнопка обновления.
[!NOTE] В режиме
reviewутверждение требует одобрения записи в каноническую память (MEMORY.md); в режимеautoэтот шаг пропускается. Все воркеры v2 пишут только в отдельное sidecar-хранилище и не трогают канонический Markdown. Когда Einstein выводит правку, которую стоит зафиксировать в канон, она показывается в интерфейсе проверки и применяется одним кликом — так базовая гарантия сохраняется: каноническая память не переписывается без одобрения. Это продуктовое решение, а не операторская настройка.
Установка
Einstein — встроенный плагин: он устанавливается автоматически для каждого
арендатора, помечен в списке плагинов меткой «Встроенный» и не может быть
удалён — память является частью ядра продукта. Сам модуль всегда присутствует,
но сбор памяти можно отключить: режим памяти off (настройка ядра
AIHUMMER_MEMORY_CAPTURE) останавливает пополнение памяти, не убирая модуль. Отдельно
устанавливать его не нужно; полный жизненный цикл обычных плагинов описан на
странице Установка и обновления. Никаких
контейнеров — Einstein работает как собственный systemd-сервис рядом с gateway.
Безопасность и ограничения
- Канонический Markdown — читаемая проекция. Системное хранилище — PostgreSQL; индексы и эмбеддинги выводимы; человек проверяет и редактирует именно канонический текст.
- Без тихих перезаписей. Базовые функции работают из коробки, а запись в
канон в режиме
reviewed_uiпроходит одобрение человеком одним кликом; воркеры пишут только в sidecar и не трогают канонический Markdown. - Выдача в защитной обёртке. Память доходит до модели как огороженный вывод инструмента, а не как инструкции, что снижает риск косвенных инъекций в промпт (но не отменяет ограничения инструментов и одобрения).
- Защищённый веб-интерфейс. Интерфейс проверки/управления плагина закрыт контролем доступа.
- Без контейнеров. Работает под systemd, не в контейнере.