Ninetails Memory Engine V4.5: Квантование Int8 + Кэш LRU сокращает локальную память MCP до 60 МБ

✍️ OpenClawRadar📅 Опубликовано: 1 апреля 2026 г.🔗 Source
Ninetails Memory Engine V4.5: Квантование Int8 + Кэш LRU сокращает локальную память MCP до 60 МБ
Ad

Движок памяти Ninetails V4.5 решает проблему узкого места в памяти для локальных инструментов MCP (Model Context Protocol), внедряя скалярную квантовую обработку Int8 в сочетании со стратегией вытеснения LRU. Решение позволяет всему процессу движка работать в настольном приложении Tauri, занимая всего 40–60 МБ оперативной памяти.

Проблема с памятью

Стандартное вложение с 1536 измерениями в формате float32 занимает около 6144 байт (~6 КБ). Хранение 10 000 воспоминаний означает ~60 МБ только для векторов, а для 100 000 воспоминаний — уже ~600 МБ. Для локального инструмента, работающего на SQLite, такое потребление ресурсов неприемлемо.

Техническая реализация

Уровень 1: Скалярная квантовая обработка Int8

Сжатие float32 (4 байта/измерение) до int8 (1 байт/измерение) сокращает объём хранилища до четверти от исходного размера. Реализация вычисляет числовой диапазон каждого измерения, преобразует числа с плавающей запятой в целочисленный диапазон от -128 до 127, а затем выполняет обратную квантовую обработку в float32 при извлечении для расчёта косинусного сходства.

# Квантование: float32 → int8
def quantize_vector(vector_fp32, scale, zero_point):
    quantized = np.round(vector_fp32 / scale) + zero_point
    return np.clip(quantized, -128, 127).astype(np.int8)

# Обратная квантовая обработка: int8 → float32 (приближённо)
def dequantize_vector(vector_int8, scale, zero_point):
    return (vector_int8.astype(np.float32) - zero_point) * scale

Результат на практике: вектор с 1536 измерениями сокращается с 6144 байт до 1536 байт. С учётом накладных расходов на глобальный масштаб и нулевую точку реальный коэффициент сжатия составляет около 3,8–4,0.

Уровень 2: Стратегия вытеснения LRU

Квантованные векторы хранятся в базе данных SQLite (vector_cache.sqlite) с использованием стратегии наименее недавно использованных (LRU) и жёстким ограничением в 10 000 записей. Часто используемые векторы остаются в оперативной памяти, а устаревшие — вытесняются.

Ad

Соображения по точности

Квантование Int8 приводит к потере данных, но допустимо для извлечения памяти, потому что:

  • Движок использует гибридный поиск: 70% векторного сходства + 30% BM25. Даже если квантование слегка искажает ранжирование векторов, точное совпадение ключевых слов через BM25 возвращает релевантные воспоминания наверх.
  • Для извлечения памяти ИИ достаточно вывести контекст в топ-5 результатов, в отличие от рекомендательных алгоритмов, которым нужна абсолютная точность для первого места.

Пояснение по поводу «TurboQuant»

Движок использует стандартную скалярную квантовую обработку Int8 для хранения векторов в SQLite, а не TurboQuant от Google (ICLR 2026), который представляет собой алгоритм сжатия на 3 бита (PolarQuant + QJL), разработанный для кэша ключ-значение при выводе ИИ на GPU. Брендинг «TurboQuant Compression» в интерфейсе — это дань философии агрессивного сокращения битов.

Полный технологический стек

  • Сжатие векторов: Скалярная квантовая обработка Int8 (~4x реальное сжатие)
  • Управление кэшем: SQLite + стратегия вытеснения LRU (ограничение: 10 000 записей)
  • Поисковая система: Гибридная: 70% векторного сходства + 30% BM25
  • Менеджер профилей: Автоматическое извлечение фактов STATIC/DYNAMIC
  • Извлечение фактов: Фоновые асинхронные вызовы ИИ через asyncio.to_thread
  • Хранение данных: 3 базы данных SQLite (100% локально)
  • Настольное приложение: Tauri + Vue 3 + PyInstaller sidecar

Движок имеет открытый исходный код под лицензией MIT на GitHub: sunhonghua1/ninetails-memory-engine.

📖 Read the full source: r/LocalLLaMA

Ad

👀 Смотрите также

McPherson AI выпускает два новых навыка для операций в сфере быстрого питания на платформе ClawHub: диагностику стоимости продуктов и аудит утечек рабочего времени.
Инструменты

McPherson AI выпускает два новых навыка для операций в сфере быстрого питания на платформе ClawHub: диагностику стоимости продуктов и аудит утечек рабочего времени.

На ClawHub опубликованы два новых бесплатных навыка: qsr-food-cost-diagnostic еженедельно выявляет проблемы с себестоимостью с помощью четырёхуровневой диагностики, а qsr-labor-leak-auditor обеспечивает ежедневный контроль рабочего времени с оповещениями в середине недели для предотвращения перерасхода.

OpenClawRadar
LystBot: MCP-сервер для Claude для управления списками и задачами
Инструменты

LystBot: MCP-сервер для Claude для управления списками и задачами

LystBot — это приложение для управления списками с нативным сервером MCP, которое позволяет Claude напрямую взаимодействовать со списками покупок, задачами и списками для сборов. Создано в основном с помощью Claude Code, включает мобильное приложение на Flutter, REST API, CLI и открытый MCP-сервер на Node.js.

OpenClawRadar
engram v3.4.0 добавляет плагин Anthropic для поддержания работы Claude Code в условиях новых лимитов скорости
Инструменты

engram v3.4.0 добавляет плагин Anthropic для поддержания работы Claude Code в условиях новых лимитов скорости

engram v3.4.0 представляет выделенный плагин Anthropic для Claude Code, добавляющий три навыка для управления затратами, запроса контекста и выявления ошибок. Установите с помощью `/plugin install engram` или `npm install -g engramx@latest`.

OpenClawRadar
Процесс извлечения пользовательского голоса для кода Claude с использованием шаблона
Инструменты

Процесс извлечения пользовательского голоса для кода Claude с использованием шаблона

Разработчик делится трёхэтапным процессом извлечения для создания пользовательского голосового навыка для Claude Code, в результате которого получается файл SKILL.md на 510 строк с чёрными списками LLM-измов, анти-перформативными правилами и режимами голоса для конкретных форматов. Открытый шаблон работает с любым языком, используя 10+ образцов письма.

OpenClawRadar