

Build an agentic RAG system in one day
Build an agentic RAG system in one day
Most document assistants fail before the model is involved. The PDF was read in the wrong order, a table was lost, or the right passage ranked eleventh. This day covers those steps, then the agent that sits on top of them.
We build one assistant over four TotalEnergies annual reports, about 670 pages each, and write every layer ourselves.
Morning: the search. We read the pages with a layout model and Docling, split them into chunks, and index them for keyword search (BM25) and semantic search (embeddings and HNSW). Then we combine both rankings, rerank the results and filter by company, year and language. The same search runs in plain Python, PostgreSQL and OpenSearch, so you can compare them.
Afternoon: the agent. With Google's Agent Development Kit, the model gets a search tool, skills, a memory and a pause for a person to confirm. It decides when to use each. When one agent isn't enough, as when summarising a 680-page report, we wrap it in a workflow with a router.
Then production. What a question costs, how each part fails, how to trace a request, and how to measure the search, the steps and the answers.
There are 11 coding exercises, about one per topic. You fill in the functions, a check command tells you if they work, and a checkpoint command catches you up if you're stuck. The whole corpus is indexed in the background over lunch, so the afternoon runs on real data.
For: engineers and data scientists comfortable with Python. Bring: a laptop with uv and Docker installed.
Schedule
09:00 Why RAG, and the system we build
09:15 From PDFs to text: layout detection, reading order, Docling
10:15 Chunking and indexing: BM25, embeddings, HNSW
11:15 Retrieval: hybrid search, reranking, metadata filters
13:00 Lunch (the corpus is indexed in the background)
14:00 From LLM to agents: who decides the control flow
14:30 Google ADK: tools, skills, state and memory, human in the loop
15:45 Workflows: a router and nine agents around the search
17:00 In production: cost, failures, tracing, latency, evaluation
17:45 Questions
18:00 Close