Бэкенды хранения
PRX-Memory поддерживает несколько бэкендов хранения для сохранения воспоминаний и их векторных эмбеддингов. Крейт prx-memory-storage предоставляет унифицированный интерфейс, который реализуют все бэкенды.
Доступные бэкенды
| Бэкенд | Значение конфига | Поддержка векторов | Хранение | Лучше всего для |
|---|---|---|---|---|
| JSON | json | Встроено в записи | Файловое | Разработка, малые наборы данных |
| SQLite | sqlite | Встроенные векторные столбцы | Файловое | Продакшен, средние наборы данных |
| LanceDB | lancedb | Нативный векторный индекс | Директорийное | Большие наборы данных, быстрый ANN-поиск |
Бэкенд по умолчанию
Бэкенд по умолчанию — JSON (PRX_MEMORY_BACKEND=json), не требующий никакой дополнительной настройки. Для продакшен-развёртываний рекомендуется SQLite.
JSON-бэкенд
Простейший бэкенд хранит все воспоминания в одном JSON-файле. Идеально подходит для разработки, тестирования и небольших наборов памяти (до 10 000 записей).
PRX_MEMORY_BACKEND=json
PRX_MEMORY_DB=./data/memory-db.jsonПреимущества:
- Нулевая настройка — просто укажите путь к файлу.
- Человекочитаемый — просматривайте и редактируйте любым текстовым редактором.
- Портабельный — скопируйте файл для переноса всей базы памяти.
Ограничения:
- Весь файл загружается в память при запуске.
- Операции записи перезаписывают весь файл.
- Нет индексированного поиска по векторам — полный перебор для поиска сходства.
SQLite-бэкенд
SQLite обеспечивает ACID-транзакции, индексированные запросы и встроенную поддержку векторных столбцов для эффективного поиска по сходству.
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.dbПодробную конфигурацию см. в разделе SQLite-хранение.
LanceDB-бэкенд (опционально)
LanceDB обеспечивает нативный приближённый поиск ближайших соседей (ANN) с колоночным хранением. Включите его с флагом функции lancedb-backend:
cargo build --release -p prx-memory-mcp --bin prx-memoryd --features lancedb-backendPRX_MEMORY_BACKEND=lancedb
PRX_MEMORY_DB=./data/lancedbТребуется флаг функции
Поддержка LanceDB не включена в сборку по умолчанию. Необходимо включить флаг функции lancedb-backend во время компиляции.
Выбор бэкенда
| Сценарий | Рекомендуемый бэкенд |
|---|---|
| Локальная разработка | JSON |
| Продакшен с <100 тыс. записей | SQLite |
| Продакшен с >100 тыс. записей | LanceDB |
| Нужно человекочитаемое хранение | JSON |
| Нужны ACID-транзакции | SQLite |
| Нужен быстрый ANN-поиск | LanceDB |
Операции с хранилищем
PRX-Memory предоставляет инструменты для обслуживания хранилища:
| Инструмент | Описание |
|---|---|
memory_export | Экспортировать все воспоминания в портабельный формат |
memory_import | Импортировать воспоминания из экспорта |
memory_migrate | Мигрировать между бэкендами хранения |
memory_compact | Оптимизировать хранение и освободить место |
memory_reembed | Перегенерировать эмбеддинги всех воспоминаний с новой моделью |
Следующие шаги
- SQLite-хранение — конфигурация и настройка SQLite
- Векторный поиск — принцип работы поиска по векторному сходству
- Справочник конфигурации — все переменные окружения