Agent with Knowledge
Give your agent a searchable knowledge base (Agentic RAG).
Knowledge gives your agent information it can search at runtime. This pattern is known as Agentic RAG. The agent decides when to search based on the user's question.
Create a Python file
1from kern.agent import Agent2from kern.knowledge.embedder.openai import OpenAIEmbedder3from kern.knowledge.knowledge import Knowledge4from kern.models.openai import OpenAIResponses5from kern.vectordb.lancedb import LanceDb, SearchType67knowledge = Knowledge(8 vector_db=LanceDb(9 uri="tmp/lancedb",10 table_name="recipes",11 search_type=SearchType.hybrid,12 embedder=OpenAIEmbedder(id="text-embedding-3-small"),13 ),14)1516# Load a PDF into the knowledge base17knowledge.insert(18 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",19)2021agent = Agent(22 model=OpenAIResponses(id="gpt-5.2"),23 knowledge=knowledge,24 instructions="Search your knowledge base for Thai recipes. Be concise.",25 markdown=True,26)2728agent.print_response("How do I make Pad Thai?", stream=True)29agent.print_response("What ingredients do I need for green curry?", stream=True)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 pypdfExport your OpenAI API key
1export OPENAI_API_KEY="your_openai_api_key_here"1$Env:OPENAI_API_KEY="your_openai_api_key_here"Run Agent
1python agent_with_knowledge.pyHow It Works
- Knowledge base: Documents are chunked, embedded, and stored in a vector database
- Search: Agent searches the knowledge base using hybrid search (semantic + keyword)
- Context: Relevant chunks are added to context before generating a response
Adding Different Content Types
1# From a URL2knowledge.insert(url="https://example.com/document.pdf")34# From a local file5knowledge.insert(path="./documents/guide.pdf")67# From text8knowledge.insert(text="Your content here...")