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 Agent
2from kern.knowledge.embedder.openai import OpenAIEmbedder
3from kern.knowledge.knowledge import Knowledge
4from kern.models.openai import OpenAIResponses
5from kern.vectordb.lancedb import LanceDb, SearchType
6
7knowledge = 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)
15
16# Load a PDF into the knowledge base
17knowledge.insert(
18 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
19)
20
21agent = 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)
27
28agent.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.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U kern-ai openai lancedb tantivy pypdf

Export 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.py

How It Works

  1. Knowledge base: Documents are chunked, embedded, and stored in a vector database
  2. Search: Agent searches the knowledge base using hybrid search (semantic + keyword)
  3. Context: Relevant chunks are added to context before generating a response

Adding Different Content Types

1# From a URL
2knowledge.insert(url="https://example.com/document.pdf")
3
4# From a local file
5knowledge.insert(path="./documents/guide.pdf")
6
7# From text
8knowledge.insert(text="Your content here...")