Agentic Rag With Reranking

Agentic RAG with result reranking for better relevance.

  1. Run: uv pip install openai kern-ai cohere lancedb tantivy sqlalchemy to install the dependencies.
1"""
2Agentic Rag With Reranking
3=============================
4
51. Run: `uv pip install openai kern-ai cohere lancedb tantivy sqlalchemy` to install the dependencies.
6"""
7
8from kern.agent import Agent
9from kern.knowledge.embedder.openai import OpenAIEmbedder
10from kern.knowledge.knowledge import Knowledge
11from kern.knowledge.reranker.cohere import CohereReranker
12from kern.models.openai import OpenAIResponses
13from kern.vectordb.lancedb import LanceDb, SearchType
14
15knowledge = Knowledge(
16 # Use LanceDB as the vector database and store embeddings in the `agno_docs` table
17 vector_db=LanceDb(
18 uri="tmp/lancedb",
19 table_name="agno_docs",
20 search_type=SearchType.hybrid,
21 embedder=OpenAIEmbedder(
22 id="text-embedding-3-small"
23 ), # Use OpenAI for embeddings
24 reranker=CohereReranker(
25 model="rerank-multilingual-v3.0"
26 ), # Use Cohere for reranking
27 ),
28)
29
30# ---------------------------------------------------------------------------
31# Create Agent
32# ---------------------------------------------------------------------------
33agent = Agent(
34 model=OpenAIResponses(id="gpt-5.2"),
35 # Agentic RAG is enabled by default when `knowledge` is provided to the Agent.
36 knowledge=knowledge,
37 markdown=True,
38)
39
40# ---------------------------------------------------------------------------
41# Run Agent
42# ---------------------------------------------------------------------------
43if __name__ == "__main__":
44 knowledge.insert(name="Kern Docs", url="https://kern.ndx.rocks/introduction.md")
45 agent.print_response("What are Kern's key features?")

Run the Example

1# Clone and setup repo
2git clone https://github.com/kern-ai/kern.git
3cd kern/cookbook/02_agents/07_knowledge
4
5# Create and activate virtual environment
6./scripts/demo_setup.sh
7source .venvs/demo/bin/activate
8
9python agentic_rag_with_reranking.py