17 hands-on labs, from your first tool-calling agent to evaluation, observability and deployment. Each guide starts from an empty folder and ends with working code running against Azure OpenAI.
.env.Build your first tool-calling agent: a Northwind support assistant that looks up order status and invoice totals.
LAB 01 · Models, messages and structured outputTurn raw support tickets into typed Pydantic records with with_structured_output, and classify a whole batch at once without flooding the API.
LAB 02 · Tools and create_agentBuild the support agent the rest of the course extends: four tools, custom state, a per-run context, a typed Resolution answer and a tool-error policy.
LAB 03 · MiddlewareMake a support agent production-ready with a middleware list: PII redaction, your own audit trail, a tool budget, retries and a fallback model.
LAB 04 · MemoryGive the support agent two kinds of memory: SQLite-backed conversation threads and a shared customer profile in a store.
LAB 05 · Streaming and UXBuild a live terminal view of an agent run: tool calls, progress from a slow tool and the answer token by token, all from one stream call.
LAB 06 · Retrieval and RAGIndex eight policy documents in a persistent Chroma store and build an agent that searches them and answers with checkable citations.
LAB 07 · LangGraph fundamentalsBuild a LangGraph workflow that classifies a ticket in parallel, routes it to one of three desks, and drafts a reply in a grade-and-revise loop.
LAB 08 · LangGraph advancedBuild a refund workflow that pauses for a manager, survives a restart through a SQLite checkpoint, pays out exactly once, and can be re-decided with time travel.
LAB 09 · Human in the loop and guardrailsLet an agent issue refunds safely: an off-topic filter, PII redaction, human approval above $100 and a hard $500 cap that even a reviewer cannot override.
LAB 10 · Multi-agent systemsBuild one support organisation twice, as supervisor-plus-subagents and as agent handoffs, and count the model calls each pattern costs.
LAB 11 · MCP and interoperabilityPublish the Northwind order system as an MCP server with FastMCP, then use it from an agent that checks provenance, screens tool descriptions and asks a human before moving money.
LAB 12 · Deep AgentsBuild a deep agent that plans, delegates research to a subagent, follows a skill, obeys its AGENTS.md memory and writes a customer health report to a virtual filesystem.
LAB 13 · Testing and evaluationBuild the harness that decides whether a change to the support agent is safe to ship: code evaluators, trajectory scoring, a regression gate that fails CI, and a live run against Azure OpenAI.
LAB 14 · Observability and monitoringInstrument the Northwind support agent with metadata, cost and feedback, and print an on-call cockpit: error rate, p50/p95 latency, tokens, cost, tool health and thumbs-up rate.
LAB 15 · DeploymentTurn the Northwind support agent into a service other people can call, twice: on the local Agent Server with langgraph dev, and on a licence-free FastAPI wrapper you own.
Build a static reviewer that scans an agent project for production gaps, such as in-memory state, hard-coded keys and unguarded refund tools, and writes a scored gap report. Then score the human checklist that no regex can answer.