Agentic RAG with LanceDB
This example demonstrates how to implement Agentic RAG using LanceDB vector database with OpenAI embeddings, enabling the agent to search and retrieve relevant information dynamically.
Code
1"""21. Run: `pip install openai lancedb tantivy pypdf sqlalchemy kern-ai` to install the dependencies32. Run: `python cookbook/rag/04_agentic_rag_lancedb.py` to run the agent4"""56from kern.agent import Agent7from kern.knowledge.embedder.openai import OpenAIEmbedder8from kern.knowledge.knowledge import Knowledge9from kern.models.openai import OpenAIResponses10from kern.vectordb.lancedb import LanceDb, SearchType1112knowledge = Knowledge(13 # Use LanceDB as the vector database and store embeddings in the `recipes` table14 vector_db=LanceDb(15 table_name="recipes",16 uri="tmp/lancedb",17 search_type=SearchType.vector,18 embedder=OpenAIEmbedder(id="text-embedding-3-small"),19 ),20)2122knowledge.insert(23 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"24)2526agent = Agent(27 model=OpenAIResponses(id="gpt-5.2"),28 knowledge=knowledge,29 # Add a tool to search the knowledge base which enables agentic RAG.30 # This is enabled by default when `knowledge` is provided to the Agent.31 search_knowledge=True,32 markdown=True,33)34agent.print_response(35 "How do I make chicken and galangal in coconut milk soup", stream=True36)Usage
Set up your virtual environment
1uv venv --python 3.122source .venv/bin/activate1uv venv --python 3.122.venv\Scripts\activateInstall dependencies
1uv pip install -U kern-ai openai lancedb tantivy pypdf sqlalchemyExport your OpenAI API key
1export OPENAI_API_KEY=your_openai_api_key_hereRun Agent
1python agentic_rag_lancedb.py