Skip to main content
Agno supports 25+ vector databases with a unified interface. Switch databases by changing one line of code.
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pgvector import PgVector

knowledge = Knowledge(
    vector_db=PgVector(table_name="docs", db_url="postgresql://..."),
)

Supported Databases

DatabaseImportBest For
PgVectorfrom agno.vectordb.pgvector import PgVectorPostgreSQL users, production
Pineconefrom agno.vectordb.pineconedb import PineconeDbManaged, serverless
Qdrantfrom agno.vectordb.qdrant import QdrantHigh performance, filtering
Weaviatefrom agno.vectordb.weaviate import WeaviateHybrid search, GraphQL
Milvusfrom agno.vectordb.milvus import MilvusScale, distributed
ChromaDBfrom agno.vectordb.chroma import ChromaDbLocal development, prototyping
LanceDBfrom agno.vectordb.lancedb import LanceDbEmbedded, serverless
MongoDBfrom agno.vectordb.mongodb import MongoVectorDbDocument store users
Redisfrom agno.vectordb.redis import RedisVectorDbLow latency, caching
Cassandrafrom agno.vectordb.cassandra import CassandraScale, distributed
ClickHousefrom agno.vectordb.clickhouse import ClickHouseAnalytics, OLAP
SingleStorefrom agno.vectordb.singlestore import SingleStoreReal-time analytics
Upstashfrom agno.vectordb.upstash import UpstashServerless, edge
Couchbasefrom agno.vectordb.couchbase import CouchbaseMobile, edge sync
SurrealDBfrom agno.vectordb.surrealdb import SurrealDBMulti-model

Examples by Database

PgVector

PostgreSQL extension for vector similarity search.
cookbook/07_knowledge/vector_db/pgvector/pgvector_db.py
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pgvector import PgVector

knowledge = Knowledge(
    vector_db=PgVector(
        table_name="documents",
        db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
    ),
)

knowledge.add_content(url="https://example.com/docs.pdf")

agent = Agent(knowledge=knowledge, search_knowledge=True)
agent.print_response("Summarize the documentation")

Hybrid Search with PgVector

Combine vector and keyword search.
cookbook/07_knowledge/vector_db/pgvector/pgvector_hybrid_search.py
from agno.vectordb.pgvector import PgVector, SearchType

vector_db = PgVector(
    table_name="vectors",
    db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
    search_type=SearchType.hybrid,
)

Pinecone

Fully managed vector database.
cookbook/07_knowledge/vector_db/pinecone_db/pinecone_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pineconedb import PineconeDb

knowledge = Knowledge(
    vector_db=PineconeDb(
        name="thai-recipe-index",
        dimension=1536,
        metric="cosine",
        spec={"serverless": {"cloud": "aws", "region": "us-east-1"}},
    ),
)

Qdrant

High-performance vector database with rich filtering.
cookbook/07_knowledge/vector_db/qdrant_db/qdrant_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.qdrant import Qdrant

knowledge = Knowledge(
    vector_db=Qdrant(
        collection="documents",
        url="http://localhost:6333",
    ),
)

Weaviate

Vector database with hybrid search and GraphQL.
cookbook/07_knowledge/vector_db/weaviate_db/weaviate_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.weaviate import Weaviate
from agno.vectordb.search import SearchType

knowledge = Knowledge(
    vector_db=Weaviate(
        collection="vectors",
        search_type=SearchType.vector,
        local=False,
    ),
)

Milvus

Distributed vector database for scale.
cookbook/07_knowledge/vector_db/milvus_db/milvus_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.milvus import Milvus

knowledge = Knowledge(
    vector_db=Milvus(
        collection="recipes",
        uri="tmp/milvus.db",  # Local file or http://localhost:19530 for server
    ),
)

ChromaDB

Embedded vector database for development.
cookbook/07_knowledge/vector_db/chroma_db/chroma_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.chroma import ChromaDb

knowledge = Knowledge(
    vector_db=ChromaDb(
        collection="vectors",
        path="tmp/chromadb",
        persistent_client=True,
    ),
)

LanceDB

Serverless vector database with native Python.
cookbook/07_knowledge/vector_db/lance_db/lance_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.lancedb import LanceDb

knowledge = Knowledge(
    vector_db=LanceDb(
        table_name="vectors",
        uri="tmp/lancedb",
    ),
)

MongoDB Atlas

Vector search on MongoDB.
cookbook/07_knowledge/vector_db/mongo_db/mongo_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.mongodb import MongoVectorDb

knowledge = Knowledge(
    vector_db=MongoVectorDb(
        collection_name="recipes",
        db_url="mongodb+srv://<username>:<password>@cluster0.mongodb.net/...",
        search_index_name="recipes",
    ),
)

Redis

In-memory vector search.
cookbook/07_knowledge/vector_db/redis_db/redis_db.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.redis import RedisVectorDb
from agno.vectordb.search import SearchType

knowledge = Knowledge(
    vector_db=RedisVectorDb(
        index_name="agno_cookbook_vectors",
        redis_url="redis://localhost:6379/0",
        search_type=SearchType.vector,
    ),
)

Run Examples

git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/07_knowledge/vector_db

# PgVector
python pgvector/pgvector_db.py

# Qdrant
python qdrant_db/qdrant_db.py

# ChromaDB (no external deps)
python chroma_db/chroma_db.py