This example demonstrates how to implement Agentic RAG using PgVector (PostgreSQL with vector extensions) for storing and searching embeddings with hybrid search capabilities.
"""1. Run: `./cookbook/run_pgvector.sh` to start a postgres container with pgvector2. Run: `pip install openai sqlalchemy 'psycopg[binary]' pgvector agno` to install the dependencies3. Run: `python cookbook/rag/02_agentic_rag_pgvector.py` to run the agent"""from agno.agent import Agentfrom agno.knowledge.embedder.openai import OpenAIEmbedderfrom agno.knowledge.knowledge import Knowledgefrom agno.models.openai import OpenAIResponsesfrom agno.vectordb.pgvector import PgVector, SearchTypedb_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"knowledge = Knowledge( # Use PgVector as the vector database and store embeddings in the `ai.recipes` table vector_db=PgVector( table_name="recipes", db_url=db_url, search_type=SearchType.hybrid, embedder=OpenAIEmbedder(id="text-embedding-3-small"), ),)knowledge.insert( url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf")agent = Agent( model=OpenAIResponses(id="gpt-5.2"), knowledge=knowledge, # Add a tool to search the knowledge base which enables agentic RAG. # This is enabled by default when `knowledge` is provided to the Agent. search_knowledge=True, markdown=True,)agent.print_response( "How do I make chicken and galangal in coconut milk soup", stream=True)# agent.print_response(# "Hi, i want to make a 3 course meal. Can you recommend some recipes. "# "I'd like to start with a soup, then im thinking a thai curry for the main course and finish with a dessert",# stream=True,# )