SQLite-хранение
SQLite-бэкенд предоставляет надёжный, файловый движок хранения с ACID-транзакциями, индексированными запросами и встроенной поддержкой векторных столбцов для эффективного поиска по сходству. Это рекомендуемый бэкенд для продакшен-развёртываний с количеством воспоминаний до 100 000.
Конфигурация
PRX_MEMORY_BACKEND=sqlite
PRX_MEMORY_DB=./data/memory.dbФайл базы данных создаётся автоматически при первом запуске. Все таблицы, индексы и векторные столбцы инициализируются PRX-Memory.
Обзор схемы
SQLite-бэкенд хранит воспоминания в структурированной схеме:
| Столбец | Тип | Описание |
|---|---|---|
id | TEXT | Уникальный идентификатор воспоминания |
text | TEXT | Содержимое воспоминания |
scope | TEXT | Область видимости воспоминания (global, project и т.д.) |
tags | TEXT | JSON-массив тегов |
importance | REAL | Оценка важности (0.0–1.0) |
created_at | TEXT | Временная метка ISO 8601 |
updated_at | TEXT | Временная метка ISO 8601 |
embedding | BLOB | Векторный эмбеддинг (если включено) |
metadata | TEXT | Дополнительные метаданные JSON |
Векторное хранение
При включённых эмбеддингах векторные данные хранятся как BLOB-столбцы в той же таблице, что и запись воспоминания. Совместное расположение упрощает запросы и исключает накладные расходы на JOIN.
Поиск по векторному сходству использует вычисление косинусного сходства методом полного перебора по сохранённым векторам. Для наборов данных до 100 000 записей это обеспечивает время запроса менее секунды (p95 менее 123 мс по результатам бенчмарков).
Обслуживание
Уплотнение
Со временем удаления и обновления могут оставлять фрагментированное пространство. Используйте memory_compact для освобождения места:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "memory_compact",
"arguments": {}
}
}Резервное копирование
Файл базы данных SQLite можно создать резервную копию, просто скопировав файл при остановленном сервере:
cp ./data/memory.db ./data/memory.db.backupWARNING
Не копируйте файл базы данных во время работы сервера. SQLite использует журналирование с опережающей записью (WAL), и копирование файла во время записи может создать повреждённую резервную копию. Сначала остановите сервер или используйте инструмент memory_export для безопасного экспорта.
Миграция с JSON
Для миграции с JSON-бэкенда на SQLite:
- Экспортируйте воспоминания с помощью
memory_export. - Измените конфигурацию бэкенда на SQLite.
- Импортируйте экспортированные данные с помощью
memory_import.
Или используйте инструмент memory_migrate для прямой миграции.
Следующие шаги
- Векторный поиск — как работает поиск по сходству внутри
- Обзор хранения — сравнение всех бэкендов
- Справочник конфигурации — все переменные окружения