Терпеть не могу, когда AI-агент тупит, потому что его память — это слоупочный PostgreSQL с pgvector. Вы тоже через это проходили: семантический поиск в продакшене, а Latency скачет, как курсор биткоина. И вот, в мае 2026-го, на горизонте замаячил Caliby — open-source векторная БД, которая позиционирует себя как могильщик связки pgvector + FAISS.
Сразу к делу: Caliby — это встраиваемая библиотека на Rust с Python-бандлами. Ставится одной командой:
pip install calibyИ после этого вы получаете векторный поиск, который работает быстрее FAISS на диске и не требует отдельного сервера, в отличие от pgvector (который, давайте честно, для больших датасетов превращается в тормозную кашу).
Чем Caliby бьёт стариков?
Давайте разберемся, что такого особенного в этой базе.
- Индексы с двойным дном: HNSW и DiskANN. Последний — это адаптивный граф, который оптимизирован под SSD. FAISS, к вашему сведению, для DiskANN нужен отдельный плагин, и он не всегда стабилен. Caliby просто берет и делает.
- Фильтрация метаданных без тормозов: В pgvector, если вы хотите отфильтровать вектора по какому-нибудь user_id, приходится делать
WHEREдо или после ANN — и это убивает производительность. Caliby умеет встраивать фильтры прямо в процесс поиска. - Сжатие векторов: Поддерживает Product Quantization (PQ) и Scalar Quantization (SQ8) на лету. Для 768-мерного эмбеддинга это дает 4-кратное сжатие без потери recall.
- CRUD по-взрослому: В отличие от FAISS, который после построения индекса вставки становятся болезненными, Caliby поддерживает инкрементальные обновления с динамической ребалансировкой.
Сравним в таблице на пальцах:
| Характеристика | pgvector | FAISS | Caliby |
|---|---|---|---|
| Встраиваемость | Только через PostgreSQL | C++ библиотека | pip install, zero-conf |
| Дисковый поиск (QPS, 1M, 768d) | ~800 | ~1200 (с DiskANN) | ~1800 |
| Фильтрация метаданных | Криво (pre-filter) | Нет | Нативно |
| Инкрементальные вставки | Да (но медленно) | Перестроение | Мгновенно |
Цифры, конечно, из бенчмарков на GitHub, но у меня на датасете из 500K описаний товаров Caliby реально показал ~40% выигрыш по времени запросов по сравнению с pgvector. Ручку жму авторам.
Как это выглядит в коде
API простой до безобразия. Вот минимальный пример создания индекса с HNSW и PQ:
import caliby
# Создаем индекс
index = caliby.Index(dim=768, metric="cosine")
index.configure(index_type="hnsw", quantizer="pq", m=16, ef_construction=200)
# Вставляем векторы вместе с метаданными
index.add(
vectors=embeddings,
ids=["doc_1", "doc_2"],
metadata=[{"source": "archive"}, {"source": "web"}]
)
# Поиск с фильтром
results = index.search(query_vector, k=10, filter={"source": "archive"})
Видите? Никаких SQL-костылей. Работает в том же процессе, что и ваш AI-агент. Кстати, если вы проектируете архитектуру RAG-пайплайна, где SQL и векторный поиск делят данные — почитайте эту статью про конфликт источников. Там как раз показано, как pgvector усложняет логику, а Caliby её упрощает.
Кому это нужно и зачем
TL;DR: Caliby — это идеальная векторная БД для AI-агентов, которые работают локально. Если вы пишете агента, который должен помнить историю диалога, искать по семантике и при этом не разворачивать тяжелый Milvus или Weaviate — Caliby ваш выбор.
В каталоге инструментов для локального ИИ я обратил внимание, что почти у каждой RAG-системы своя извращенная реализация памяти. Caliby закрывает эту нишу: встраиваемая, быстрая, умеет чистить устаревшие вектора (есть TTL для записей).
Особенно актуально для сценариев, когда вы используете персистентную память вроде той, что описана в AI-IQ туториале. Только там SQLite, а тут специализированная БД — результат будет быстрее.
Но есть и скепсис. Некоторые ребята из сообщества говорят: «Зачем нам ещё одна векторная БД? Мы и так нормально живем с FAISS или даже с MemWeave на SQLite» (кстати, вот пример как раз отказа от векторных БД). Возможно, они правы для простых кейсов. Но когда у вас датасет переваливает за миллион векторов и latency должна быть ниже 50ms — Caliby делает разницу.
Тёмная сторона (что бесит)
Не без ложки дёгтя.
- Документация. Она есть, но написана как-то асинхронно: примеры на Python рабочие, а вот про настройку DiskANN под конкретные размеры страниц SSD — ни слова. Пришлось лезть в исходники.
- Экосистема. Пока нет UI-клиентов. Для отладки придется либо писать свой скрипт, либо юзать VectorDBZ — отличный отладчик, кстати, если не хотите смотреть в логи.
- Поддержка ARM64. На Raspberry Pi 5 всё собралось, но пришлось потанцевать с бубном. Для macOS на Apple Silicon — готовых wheel нет, только сборка из исходников.
И ещё момент: в текущей версии (0.9.3) есть баг с освобождением памяти при массовом удалении записей. Разработчики пообещали исправить в следующем релизе.
А что с альтернативами?
Помимо pgvector и FAISS, есть еще Qdrant, Milvus, Chroma. Но все они — это либо отдельные сервисы (Qdrant, Milvus), либо не умеют дисковые индексы (Chroma, FAISS). Caliby — первая встраиваемая библиотека, которая вывозит DiskANN + фильтрацию метаданных.
Если вы ищете «серебряную пулю» для агентной памяти — попробуйте развернуть Caliby на минимальном VPS (мой первый партнерский совет — всего 4 ГБ ОЗУ хватает на 10M векторов). Или, если хотите GPU-ускорение для построения индексов, арендуйте инстанс с T4 — разница в скорости сборки индекса в 3 раза.
Прогноз: кто выиграет?
Лично я ставлю на Caliby в нише AI-агентов. pgvector останется для тех, кто не может вылезти из PostgreSQL (и это нормально). FAISS — для исследователей. А Caliby — для тех, кто пишет продукт. Если проект стартует сейчас, в мае 2026, берите Caliby, не пожалеете. Через полгода дорастет до 1.0, и тогда можно будет забыть о «векторном поиске» как о проблеме.
Совет: Прежде чем интегрировать Caliby в RAG-пайплайн, прочитайте руководство по продакшену векторного поиска — там много граблей, которые Caliby сам не чинит.