Build a Multi-Agent Research Assistant
This course has one rule: you build one thing, lesson by lesson. Each lesson adds exactly one capability to the same codebase, and by the end you have a working multi-agent research assistant — a planner that decomposes a question, parallel executors that gather information, shared memory they cooperate through, and a critic that validates the result — built from scratch in Python, running entirely in your browser.
Prerequisites
- Comfortable Python — functions, classes, list/dict comprehensions
- A passing acquaintance with
async/await(lesson 5 introduces it from zero) - No prior LLM or API key required — a deterministic
MockLLMruns throughout; you swap in a real model at the end - It does not teach LangChain or CrewAI; it teaches the patterns underneath them
Prerequisites
Comfortable Python
Functions, classes, list/dict comprehensions
A passing acquaintance with async/await
Lesson 5 introduces it from zero, but it helps to have seen it
No LLM or API key required
A deterministic MockLLM runs throughout; swap in a real model at the end
Lessons
The bare LLM loop
One model, one prompt, one reply — the smallest thing that runs
Give it a tool
The model asks; your code acts and reports back
ReAct: reason before you act
Interleave a thought and an action on every step
The Planner: decompose before you search
Break a research question into sub-questions first
Parallel executors: run sub-questions concurrently
async/await so N sub-questions run at once, not in series
Shared memory: one source of truth
A store every agent reads from and writes to
The Critic: validate before you deliver
A second agent whose only job is to find the flaws
Close the loop: the Orchestrator
Wire planner, executors, memory, and critic into one system
Observability: see inside the machine
Trace every step so you can tell which agent is the bottleneck
The whole system
Step back and read the finished assistant as one design
Unlocks
Any agentic framework
LangChain, CrewAI, and the rest read as familiar once you know the patterns underneath
A real-LLM research assistant
Swap the MockLLM for a live model and run the same system for real