Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agno-v2-shaloo-ai-support-link.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Embedders convert text into vectors (lists of numbers) that capture meaning. These vectors enable semantic search, so “How do I reset my passcode?” finds documents mentioning “change PIN” even without keyword matches.
from agno.knowledge.knowledge import Knowledge
from agno.knowledge.embedder.openai import OpenAIEmbedder
from agno.vectordb.pgvector import PgVector

knowledge = Knowledge(
    vector_db=PgVector(
        table_name="docs",
        db_url=db_url,
        embedder=OpenAIEmbedder(),  # Default
    ),
)

How It Works

  1. Insert: When you add content, each chunk is converted to a vector
  2. Store: Vectors are saved in your vector database
  3. Search: Queries are embedded and matched against stored vectors by similarity
Agno uses OpenAIEmbedder by default, but you can swap in any supported embedder.

Configuration

from agno.knowledge.embedder.openai import OpenAIEmbedder

embedder = OpenAIEmbedder(
    id="text-embedding-3-small",
    dimensions=1536,
)

Using with Knowledge

from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pgvector import PgVector

knowledge = Knowledge(
    vector_db=PgVector(
        table_name="docs",
        db_url=db_url,
        embedder=OpenAIEmbedder(id="text-embedding-3-small"),
    ),
)

# Content is embedded automatically on insert
knowledge.insert(path="documents/")

Batch Embeddings

Process multiple texts in a single API call to reduce requests and improve performance:
embedder = OpenAIEmbedder(
    id="text-embedding-3-small",
    dimensions=1536,
    enable_batch=True,
    batch_size=100,
)
Embedders with batch support: OpenAI, Azure OpenAI, Gemini, Cohere, Voyage AI, Mistral, Fireworks, Together, Jina, Nebius.

Best Practices

Re-embed when changing models: Vectors from different embedders aren’t compatible. If you switch embedders, you must re-embed all content.
Test retrieval quality: Use sample queries to verify you’re finding the right chunks. Adjust chunking strategy or embedder if results are poor.
Match dimensions: Ensure your embedder’s output dimensions match what your vector database expects.

Supported Embedders

EmbedderTypeCostNotes
OpenAIHosted$$Default, excellent quality
GeminiHosted$$Multilingual, Google ecosystem
CohereHosted$$Strong retrieval performance
Voyage AIHosted$$$Specialized for retrieval
MistralHosted$$European provider
OllamaLocalFreePrivacy, offline
FastEmbedLocalFreeFast local embeddings
HuggingFaceLocal/HostedFree/$Open source models
AWS BedrockHosted$$AWS ecosystem
Azure OpenAIHosted$$Azure ecosystem
FireworksHosted$Fast inference
TogetherHosted$Open source models
JinaHosted$$Multilingual
NebiusHosted$European provider

Choosing an Embedder

ConsiderationRecommendation
General useOpenAI or Gemini
Privacy/offlineOllama or FastEmbed
MultilingualGemini or Jina
Cost-sensitiveLocal embedders (free) or Fireworks/Together ($)
Best retrieval qualityVoyage AI or Cohere
Key factors:
  • Hosted vs local: Local for privacy and no API costs; hosted for quality and convenience
  • Latency and cost: Smaller models are cheaper and faster; larger models often retrieve better
  • Language support: Ensure your embedder supports your content’s languages
  • Dimension size: Match your vector database’s expected embedding dimensions

Next Steps

OpenAI Embedder

Default embedder setup

Ollama Embedder

Local embeddings for privacy

Vector DB

Store your embeddings

Chunking

Prepare content for embedding