ICM: новый инструмент памяти для AI-агентов с локальными бенчмарками | AiManual
AiManual Logo Ai / Manual.
18 Май 2026 Инструмент

ICM: Память для AI-агентов, которую можно пощупать локально и без компромиссов

Обзор открытого инструмента ICM для долговременной памяти AI-агентов. Локальные бенчмарки, сравнение с Zep и Widemem, примеры кода. Кому подойдет и как внедрить

Память у AI-агентов — та еще боль. Ты строишь крутого ассистента, он бойко отвечает на три вопроса, а на четвертом забывает, что вы только что обсуждали. Облачные решения вроде Zep берут деньги за каждый чих и виснут на сетевых задержках. Локальные альтернативы вроде Widemem или TurboMemory помогали, но требовали ручной настройки эмбеддингов и часто проседали на длинных диалогах.

И вот на сцене появляется ICM — инструмент памяти от команды rtk-ai. Выложили на GitHub, приложили бенчмарки, которые можно запустить у себя на ноутбуке, и заявили: «Теперь агенту не нужно интернета, чтобы помнить вчерашний разговор». Давайте разберем, что это за зверь, не врет ли он в метриках и стоит ли тащить его в свой проект.

Что прячется под аббревиатурой

ICM расшифровывается как Intelligent Context Memory. Если отбросить маркетинг — это библиотека на Python, которая дает агенту долговременную память без внешних API. Вся магия происходит локально: эмбеддинги считаются на CPU (да-да, без GPU), данные хранятся в SQLite с векторным индексом, а для поиска используется гибрид — sparse (BM25) и dense (квантованные эмбеддинги) retrieval.

🔍
В отличие от анонса локальной памяти, обошедшей Zep, ICM сразу открыл код — можно проверить цифры самостоятельно.

Что в коробке:

  • Два бенчмарка из коробки — LoCoMo (долгие диалоги) и HotpotQA (multi-hop вопросы). Запускаются одной командой, результаты пишутся в JSON.
  • Автоматическая сегментация контекста — память сама режет диалог на эпизоды по смене темы или тайм-ауту, а не хранит всё подряд.
  • Экспорт/импорт через JSON — можно сохранить состояние агента и перенести на другую машину.
  • Поддержка любой LLM — хоть Ollama с Qwen2.5, хоть OpenAI через API. ICM только память, модель вы подключаете свою.

Цифры, ради которых стоит присмотреться

Главная фишка ICM — встроенные локальные бенчмарки. Не нужно гонять тесты на сервере, достаточно python -m icm.benchmark. Вот результаты на CPU (Intel i7-12700) из репозитория (май 2026):

Тест ICM Zep (облачная версия) Widemem v1.2
LoCoMo (F1) 61% 28% 43%
HotpotQA (EM) 73% 43% 58%
Время ответа (95-й перцентиль) 120 мс 340 мс (с учетом сети) 190 мс

Важный нюанс: бенчмарки прогонялись на эмбеддингах bge-small-en-v1.5 (4-битное квантование). Если поставить bge-m3 — качество подрастет, но время поиска увеличится. В TurboMemory использовали похожий подход, но ICM выигрывает за счет более умной сегментации.

Как это выглядит в коде — честно, без прикрас

В репозитории есть пример интеграции с LangChain и с голым OpenAI. Покажу самый простой вариант — без фреймворков, в 10 строк:

from icm import AgentMemory

memory = AgentMemory(
    embedding_model="BAAI/bge-small-en-v1.5-quantized",
    storage="sqlite://./agent_memory.db"
)

# Сохраняем факт
memory.add("Пользователь сказал, что любит зеленый чай")

# Ищем по смыслу
results = memory.search("Что пользователь любит пить?", top_k=3)
print(results[0].text)  # "Пользователь сказал, что любит зеленый чай"

Под капотом: SQLite с расширением для векторного поиска (на основе sqlite-vec). База весит 2-3 МБ на тысячу записей. Для сравнения, AI-IQ использовал чистый SQLite без векторов — там поиск был только по ключевым словам.

Три сценария, где ICM вывозит (и один, где нет)

1 Личный ассистент с историей за месяц

Вы пишете бота для заметок. Он должен помнить, что вы упомянули в прошлый раз. Поднимаете ICM на Raspberry Pi 5 — работает. База растет, но поиск не тормозит благодаря инкрементальному индексированию.

2 Мультиагентная система с общей памятью

Несколько агентов пишут и читают одну SQLite-базу через сетевую шару (аккуратнее с блокировками). Или синхронизируете через Git — TeamMind делает похожее, но в ICM такой фичи пока нет, только файловый экспорт.

3 Тестирование и бенчмаркинг

Хотите оценить, как та или иная модель памяти поведет себя на ваших данных? Запускаете встроенный бенчмарк и сравниваете с Zep/Widemem. Результат — табличка, как я показывал выше. Без внешних сервисов.

⚠️ Подводный камень: ICM пока не умеет автоматически чистить устаревшие записи. Если агент работает сутками, база распухнет. Придется дописывать свою ротацию или запускать cleanup скрипт. В Widemem это решено через оценку достоверности.

Кому я бы сказал «бери»

ICM — штука для тех, кто хочет:

  • Скорости без компромиссов по приватности (все локально).
  • 🧪 Повторяемых экспериментов — встроенные бенчмарки экономят часы на настройку тестов.
  • 💸 Не платить за API памяти каждый месяц.

Если вам нужно промышленное решение с распределенным хранением, управлением доступом и GUI — смотрите в сторону Amazon Bedrock AgentCore или Agent-memory-state. Но для прототипа, пет-проекта или research — ICM сейчас лучший вариант из open-source.

P.S. В репозитории лежит examples/advanced_routing.py — там показано, как комбинировать несколько типов памяти (краткосрочная на кэше + долгосрочная в SQLite). Оторваться невозможно. Если допилят автоочистку и многопользовательский режим — будет хит. Следите за коммитами.

Подписаться на канал