Главная / Статьи

Сравнение восьми бесплатных баз данных векторов для ИИ-агентов: ограничения, подходящесть и компромиссы.

Сравнение восьми векторных баз данных с бесплатными тарифами с точки зрения памяти агентов: жесткие ограничения, возможности развертывания, конкурентоспособность и то, какая из них подходит для ИИ-агентов в вашей среде.

Издатель: REACTAPP.TOP11 мин чтения2633 слов

Источники: 8 Best Free Vector Databases for AI Agents in 2026

Векторные базы данных снова и снова всплывают при создании агентов с ограниченным бюджетом: VectorAI DB Community Edition, Qdrant, Weaviate, Milvus, ChromaDB, LanceDB, pgvector и Pinecone. Каждая из них сначала предоставляется бесплатно. Однако это не то же самое, что бесплатное использование в масштабах, и это тоже не то же самое, что возможность развертывания в любом месте, где должен работать агент.

Агенты в большей степени зависят от векторных хранилищ, чем любой отдельный пайплайн RAG. Их память постоянно записывается и читается в течение множества сессий. Поэтому необходимо знать, сохранится ли эта память после перезагрузки, как будут вести себя времена отклика при одновременных запросах, и сможет ли движок работать рядом с агентом даже на устройстве с нестабильным или отсутствующим подключением.

Бесплатный тариф не может обеспечить всё это. Чтобы оценить уровень задержек при реальной одновременной нагрузке, обычно требуется платный тариф достаточной мощности для создания такой нагрузки. Тем не менее бесплатные тарифы позволяют увидеть, где каждый поставщик устанавливает свои ограничения, причём некоторые из этих ограничений исключают тот или иной вариант ещё до написания кода. Одна служба удаляет неиспользуемый кластер через 14 дней. Другая не имеет версии с самостоятельной разверткой, что исключает её использование, если данные не могут покидать вашу инфраструктуру. В каждой из приведённых ниже записей чётко указаны ограничения, чтобы вы могли подобрать базу данных к своей среде развертывания и понять, что придётся отказаться. Ограничения, лимиты и цены часто меняются, поэтому перед принятием решения уточните актуальные данные на странице с ценообразованием у каждого поставщика.

Критерии

Было сравнено восемь баз данных по пяти критериям, важным именно для агентов.

  • Вид бесплатного тарифа. Полностью самостоятельная развертка без ограничений по векторам, управляемый бесплатный план с ограничениями по хранилищу или векторам, или использование библиотеки вместо базы данных.
  • Подходящая схема использования памяти. Тип конфигурации памяти агента, который упрощается благодаря базе данных.
  • Задержка при нагрузке. Как система ведет себя, когда одновременно поступают запросы от нескольких агентов.
  • Возможность работы локально. Возможность полной работы на собственных серверах без зависимости от облаков.
  • Что нарушается при переходе за пределы бесплатного тарифа. Момент, когда что-то перестает работать или начинает стоить денег.

Большинство опубликованных сравнений касаются задач RAG или рекомендательных систем, в которых база данных отвечает на запросы без сохранения состояния и пересоздается из фиксированного набора документов. Агенты отличаются тем, что они накапливают память в течение нескольких сессий. Хранилище должно сохранять состояние, а не просто отвечать на запросы, что меняет перечень приемлемых компромиссов.

Восемь решений, по одному

1. VectorAI DB Community Edition

VectorAI DB — это векторная база данных, которую можно запускать самостоятельно; она разработана так, чтобы работать одинаково как на ноутбуке разработчика, так и в отключенной производственной среде.

Бесплатный тариф. Community Edition работает в самохостинге и имеет ограничение в 5 000 векторов, что является минимальным жестким лимитом. Согласно сообщениям, отдельный 30-дневный пробный период повышает этот лимит до одного миллиона векторов. Приложение поставляется как единый контейнер Docker без внешних зависимостей, таких как Kubernetes, etcd или системы хранения объектов. Его создатель опубликовал результаты тестирования, согласно которым на машине с объемом памяти 64 ГБ возможно выполнять около 745 запросов в секунду к 10 миллионам 768-мерных векторов, что на 22 раза превосходит показатели Milvus и Qdrant Local на том же оборудовании. Считайте это заявлением производителя: оно касается платной версии с 10 миллионами векторов, а не бесплатной версии с 5 000 векторами.

Подходит для агентов в тех случаях, когда агенту необходимо работать там, где находятся данные, а не там, где расположен центр обработки данных у облачного провайдера: на объектах с изолированной сетью, при строгих правилах размещения данных, с использованием оборудования типа NVIDIA Jetson и Raspberry Pi, или в любых ситуациях, когда сам выход данных в облако является проблемой. Поставщик предлагает конфигурации, соответствующие требованиям регулирования, для приложений, создаваемых на их основе, что отличается от сертификации, предоставляемой с бесплатной версией.

Шаблон памяти. Память для агентов, работающих в режиме «края сети» и офлайн, а также надежная память в целом. Данные сохраняются на диске и восстанавливаются после перезагрузки, причем наличие всего одного контейнера для выполнения кода делает использование в режиме офлайн и с изолированной сетью практичным в ситуациях, когда Kubernetes недоступен.

Недостаток. Вы сами обеспечиваете хостинг, точка. Не существует бесплатных управляемых облачных планов, в отличие от Pinecone или Qdrant Cloud, поэтому командам, которые не хотят, чтобы кто-либо управлял серверами, следует выбрать другой вариант.

# VectorAI DB -- basic similarity search.

from actian_vectorai import VectorAIClient, VectorParams, Distance

with VectorAIClient("localhost:6574") as client:
    client.collections.create(
        "agent_memory",
        vectors_config=VectorParams(size=768, distance=Distance.Cosine),
    )

    client.points.upsert(
        "agent_memory",
        points=[{"id": 1, "vector": [0.1] * 768, "payload": {"text": "example memory"}}],
    )

    results = client.points.search(
        "agent_memory",
        query_vector=[0.1] * 768,
        limit=5,
    )

2. Qdrant

Qdrant — это open-source база данных векторов, написанная на языке Rust. Вы можете разместить её сами без ограничений по объему векторов или использовать сервис Qdrant Cloud.

Бесплатный тариф. Разместив её на собственном оборудовании, вы не платите ничего, причем нет никаких ограничений (лицензия Apache 2.0). В сервисе Qdrant Cloud бесплатный план предоставляет один узел с половиной ядра процессора, 1 ГБ памяти и 4 ГБ хранилища, что примерно достаточно для миллиона векторов размером 768 измерений.

Подходит для агентов, когда вам нужна быстрая фильтрованная поиск в производственной среде, а также требуются клиентские библиотеки для Python, TypeScript, Rust, Go, Java и .NET.

Паттерн памяти. Постоянная память агента. Фильтрация полезной нагрузки в сочетании с поиском векторов позволяет агенту хранить данные с метаданными, такими как информация о пользователе, сессии и временной метке, а затем загружать фильтрованную подмножину при выполнении запроса.

Недостаток. Бесплатный облачный план работает, но ограничен 1 ГБ оперативной памяти. Самостоятельное хостинг разбирает это ограничение, но добавляет сложности в управлении и мониторинге собственного кластера. Задержка запросов также меняется в зависимости от размера набора данных и сложности фильтров, поэтому необходимо тестировать на реальной нагрузке агента.

# Qdrant -- basic similarity search.
from qdrant_client import QdrantClient
from qdrant_client.models import VectorParams, Distance, PointStruct

client = QdrantClient(url="http://localhost:6333")

client.create_collection(
    collection_name="agent_memory",
    vectors_config=VectorParams(size=768, distance=Distance.COSINE),
)

client.upsert(
    collection_name="agent_memory",
    points=[PointStruct(id=1, vector=[0.1] * 768, payload={"text": "example memory"})],
)

results = client.query_points(
    collection_name="agent_memory",
    query=[0.1] * 768,
    limit=5,
)

Хостинг агента с собственной памятью в Qdrant сегодня является проверенным решением. Однако для сетей с изолированным подключением проблема заключается в том, что всю инфраструктуру все равно приходится управлять самостоятельно.

3. Weaviate

Weaviate — это open-source база данных векторов, в которой каждый запрос включает гибридный поиск, сочетающий плотные векторы с поиском по ключевым словам с использованием алгоритма BM25.

Бесплатный тариф. Хостинг Weaviate самостоятельно бесплатен и неограничен в рамках лицензии BSD-3. Его облачная версия в настоящее время предлагает 14-дневную пробную версию в среде песочницы, после чего начинаются платные тарифы; для получения актуальных условий ознакомьтесь с страницей цен.

Подходит для агентов, когда один запрос должен сочетать поиск по ключевым словам с семантическим сходством. Примером может служить агент, который должен восстановить информацию, соответствующую как точному названию сущности, так и расплывчатой концепции одновременно. Weaviate предоставляет такие гибридные сценарии работы через API REST и GraphQL.

Шаблон памяти. Гибкая система поиска в памяти. Сочетание алгоритма BM25 с векторами — основная причина выбора Weaviate вместо чистого векторного движка для воспроизведения информации, особенно когда память зависит как от концепции, так и от точного термина.

Недостаток. При использовании на хостинге бесплатная версия истекает сроком действия: это краткосрочная пробная версия, а не постоянный тариф. Если разместить систему самостоятельно, этой проблемы можно избежать, хотя затраты на память растут с объемом данных, поскольку граф HNSW сохраняется полностью в оперативной памяти.

# Weaviate -- basic similarity search.
import weaviate
from weaviate.classes.config import Configure
from weaviate.classes.query import MetadataQuery

client = weaviate.connect_to_local()

memories = client.collections.create(
    name="AgentMemory",
    vector_config=Configure.Vectors.self_provided(),
)

memories.data.insert(
    properties={"text": "example memory"},
    vector=[0.1] * 768,
)

response = memories.query.near_vector(
    near_vector=[0.1] * 768,
    limit=5,
    return_metadata=MetadataQuery(distance=True),
)

client.close()

Агент, который должен работать на ограниченном оборудовании с ограниченными ресурсами, а не в постоянно подключенном облачном кластере, столкнется с трудностями при хранении индекса, полностью размещенного в ОЗУ.

4. Milvus

Milvus — это open-source распределенный движок, предназначенный для работы с коллекциями, содержащими миллиарды векторов.

Бесплатный тариф. Можно скачать и запустить его самостоятельно без ограничений по количеству векторов (лицензия Apache 2.0). Существуют два более легких режима: Milvus Lite для локальной работы и Standalone для одного узла. Для высокодоступных производственных кластеров требуется распределенная архитектура, включающая Kubernetes, etcd и хранилище объектов вроде MinIO. Также поддерживается индексация с использованием GPU для очень больших наборов данных.

Подходит для агентов, когда база знаний содержит сотни миллионов векторов или больше, и когда необходимо использование одиннадцати и более типов индексов для настройки скорости поиска и качества воспроизведения данных для каждой коллекции.

Шаблон памяти. Долговечная память в очень больших масштабах. Она оправдывает себя тогда, когда объем данных замедляет работу хранилища памяти, но не подходит, когда проблемы возникают из-за большого количества сессий или развертывания на периферии.

Недостаток. Уровень операционных затрат высок. Распределенный режим — это не то, что стоит применять для побочного проекта; масштабирование на несколько узлов приносит значительную сложность, к тому же он не подходит для периферийных устройств или оборудования с ограниченными возможностями.

# Milvus -- basic similarity search.
from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530", token="root:Milvus")

client.create_collection(collection_name="agent_memory", dimension=768)

client.insert(
    collection_name="agent_memory",
    data={"id": 1, "vector": [0.1] * 768, "text": "example memory"},
)

results = client.search(
    collection_name="agent_memory",
    data=[[0.1] * 768],
    limit=5,
)

Если вам нужна более легкая альтернатива, тщательно взвесите возможности решения на основе Kubernetes перед тем, как применять его для векторного поиска.

5. ChromaDB

ChromaDB — это open-source хранилище векторов, которое можно интегрировать в собственный процесс практически без какой-либо настройки.

Бесплатный тариф. Он бесплатен и не имеет ограничений по количеству векторов, независимо от того, интегрирован ли он в процесс на Python или запущен как отдельный контейнер Docker. В описании проекта говорится, что он не предлагает управляемых облачных сервисов, хотя сейчас может существовать вариант хостинга, поэтому проверьте сайт проекта.

Подходит для агентов, когда цель — быстрые эксперименты с уровнем памяти, тестирование размеров блоков, настроек поиска и промптов до создания инфраструктуры.

Шаблон памяти. Рабочая память. Подходит для кратковременной или этапной памяти внутри одного процесса агента, но менее эффективна в качестве долговременного хранилища, которым одновременно пользуется множество экземпляров агентов.

Недостаток. Её эффективность не была доказана в масштабах крупных производственных систем. Удаление элементов не сокращает размер индекса, поскольку операции удаления в графе являются ресурсоемкими, а структура HNSW продолжает расти; фрагментация сохраняется до тех пор, пока индекс не будет сжат или воссоздан. Агент, который постоянно добавляет и удаляет данные из памяти, вынужден сам заниматься их очисткой, а также считываться с ограничениями одного узла и вручную восстанавливать данные.

# ChromaDB -- basic similarity search.
import chromadb

client = chromadb.PersistentClient(path="./agent_memory")
collection = client.get_or_create_collection(name="agent_memory")

collection.add(
    ids=["1"],
    embeddings=[[0.1] * 768],
    documents=["example memory"],
)

results = collection.query(
    query_embeddings=[[0.1] * 768],
    n_results=5,
)

Когда несколько экземпляров агента должны делить один хранилище памяти, первым исчерпывается ресурс встроенной модели. Обычным решением является отдельный сервер, к которому подключаются несколько процессов, а не что-то, находящееся внутри одного процесса Python.

6. LanceDB

LanceDB — это программное обеспечение с открытым исходным кодом, предназначенное для встраивания: оно работает с файлами в системах хранения объектов и совсем не требует серверного процесса.

Бесплатный тариф. Самостоятельно размещенная или встроенная версия LanceDB бесплатна, не имеет ограничений по векторам и распространяется под лицензией Apache 2.0. Управляемая безсерверная версия LanceDB Cloud находилась в приватном бета-тестировании, и при написании исходного кода требовалась специальная приложение, поэтому единственным надежным вариантом является самостоятельное размещение.

Подходит для агентов в тех случаях, когда они работают на периферии или в рамках рабочего процесса по обработке данных, где сетевой переход к отдельной базе данных неприемлем, и вы хотите, чтобы хранилище находилось в той же файловой системе, что и остальные компоненты конвейера.

Шаблон памяти. Периферийная и разрывистая память. Встроенная, безсерверная архитектура идеально соответствует агенту, который не может обеспечить стабильное соединение с процессом базы данных.

Недостаток. Та же встроенная модель, которая делает её эффективной на периферии, ограничивает её при одновременной обработке задач. В многоагентных системах часто несколько процессов одновременно записывают данные в одну таблицу, что является самым сложным типом нагрузки для внутрипроцессного хранилища. Проверьте такой сценарий перед тем, как приступать к реализации.

# LanceDB -- basic similarity search.
import lancedb

db = lancedb.connect("./agent_memory")

table = db.create_table(
    "agent_memory",
    data=[{"id": 1, "vector": [0.1] * 768, "text": "example memory"}],
)

results = table.search([0.1] * 768).limit(5).to_list()

7. pgvector

pgvector — это расширение для PostgreSQL, которое позволяет уже существующей базе данных выполнять поиск по векторному сходству, так что не требуется добавление новой системы.

Бесплатный тариф. Это расширение бесплатно и имеет открытый исходный код. Все, кто уже платит за Postgres, могут использовать его бесплатно. Тем, у кого нет Postgres, придется использовать целую реляционную базу данных только для поиска векторов.

Подходит агентам тогда, когда приложение уже работает на Postgres, и дополнительный хранилище данных только для памяти будет нежелательно.

Режим работы в памяти. Данные сохраняются в постоянной памяти внутри основной базы данных. Преимущество перед специализированным движком заключается в транзакционной целостности, поскольку записи в память фиксируются одновременно с реляционными строками приложения.

Недостаток. Специально разработанные векторные базы данных превосходят его при выполнении крупных фильтрованных запросов, и он не подходит для использования в изолированных или периферийных средах, если только вы не готовы запускать там полную инстанцу Postgres.

# pgvector -- basic similarity search.
import psycopg
from pgvector.psycopg import register_vector

conn = psycopg.connect("dbname=agent_memory")
register_vector(conn)

conn.execute("CREATE EXTENSION IF NOT EXISTS vector")
conn.execute(
    "CREATE TABLE IF NOT EXISTS memories (id bigserial PRIMARY KEY, "
    "text text, embedding vector(768))"
)
conn.execute(
    "INSERT INTO memories (text, embedding) VALUES (%s, %s)",
    ("example memory", [0.1] * 768),
)

results = conn.execute(
    "SELECT text FROM memories ORDER BY embedding <-> %s LIMIT 5",
    ([0.1] * 768,),
).fetchall()

Если объем вашей работы требует уровня производительности, которого не может достичь pgvector, вам придется полностью отказаться от модели Postgres, и это тот компромисс, который необходимо учесть.

8. Pinecone

Pinecone работает как управляемый безсерверный сервис, и его нельзя разместить самостоятельно.

Бесплатный тариф. Тариф Starter предоставляет 2 ГБ пространства для хранения индексов, максимум пять индексов, два миллиона единиц записей и один миллион единиц чтения в месяц, все это в одном регионе AWS (us-east-1) и для одного проекта. Официально не указан лимит на векторы, что означает, что первым будет исчерпано пространство для хранения.

Подходит агентам в тех случаях, когда вы не хотите, чтобы что-либо работало во время прототипирования, и вам подходит ситуация, когда память агента находится полностью на чужой инфраструктуре.

Шаблон памяти. При разработке прототипов происходит истощение памяти. Бесплатный тариф предназначен для пробного использования и небольших проектов, он не подходит для постепенного расширения хранилища данных агента в производственных условиях.

Недостаток. Ограничение объема хранения — не главная проблема для агентов. Главной проблемой является отсутствие возможности самостоятельной развертки. Если данные должны оставаться внутри вашей инфраструктуры, Pinecone не подходит, каким бы щедрым ни был бесплатный тариф.

# Pinecone -- basic similarity search.
from pinecone import Pinecone, ServerlessSpec
import os

pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])

pc.create_index(
    name="agent-memory",
    dimension=768,
    metric="cosine",
    spec=ServerlessSpec(cloud="aws", region="us-east-1"),
)

while not pc.describe_index("agent-memory").status["ready"]:
    pass

index = pc.Index("agent-memory")
index.upsert(vectors=[("1", [0.1] * 768, {"text": "example memory"})])

results = index.query(vector=[0.1] * 768, top_k=5)

База данных, существующая исключительно в облаке, просто не является вариантом для развертываний, у которых ограничения полностью исключают использование облачных сервисов.

Как принять решение

Принимайте решение в следующем порядке: где будет происходить развертывание, что вы уже используете и какими будут масштабы системы.

Сначала необходимо определить место развертывания, поскольку именно этот фактор может полностью отвергнуть тот или иной вариант. База данных, существующая только в облаке, нельзя разместить на серверах с изолированной сетью, а когда требования регулирований предписывают оставить данные на месте, никакой бесплатный план не может изменить это решение. Лимит хранилища — это лишь цифра, за превышение которой придется платить позже.

Два фактора не входят в этот порядок рассмотрения. Если Postgres уже используется в вашей инфраструктуре, pgvector позволяет избежать необходимости в дополнительной базе данных при любом месте развертывания. Если вы планируете работу с миллиардами векторов, Milvus создан специально для этого с самого начала. А если вы только разрабатываете прототип, начните с ChromaDB локально и перейдите на хостинговый вариант, когда это действительно понадобится.

Для локальных, изолированных или периферийных решений реалистичный список вариантов — это самохостящиеся решения, а именно VectorAI DB, Qdrant, Milvus, LanceDB и pgvector; выбор между ними зависит от необходимого уровня масштабирования, требований к одновременной работе и объема оперативных задач, которые может обрабатывать ваша команда.