
An introduction to the OpenAI Agents SDK: what an agent actually is, how it differs from a single LLM call, and why this course focuses on the Python SDK specifically.
The story of how OpenAI's experimental Swarm project evolved into the production-ready Agents SDK, and why that history explains some of the SDK's design choices.
A conceptual walkthrough of the four building blocks every system in this course is made from, and how they fit together.
An explanation of what the SDK is actually doing behind the scenes, how it relates to OpenAI's Responses API, and when you might use the Responses API directly instead.
Step-by-step setup of your Google Colab environment, including installing the SDK and securely configuring your OpenAI API key using Colab Secrets.
You will write, run, and get a response from your very first agent in under ten lines of Python code.
A close look at everything a single agent run actually returns, including the final output, which agent produced it, and how many tokens it used.
A complete tour of every property the Agent class accepts, and what each one controls.
How to fine-tune the underlying model's behaviour using ModelSettings, including creativity, output length, and tool-calling controls.
Practical guidance, with real examples, on writing agent instructions that actually produce reliable, predictable behaviour.
How to generate an agent's instructions dynamically at runtime, so the same agent can adapt based on live data or user context.
How to make an agent return typed, structured data instead of plain text, so your code can reliably work with the result.
A fast, reliable way to create variations of an existing agent, such as different personas or tones, without duplicating configuration.
How to control whether, and which, tool an agent is required to call, using the tool_choice setting.
What happens after a tool call completes, and how to control whether the model gets the final word or the tool's raw output is returned directly.
How to turn any Python function into a tool an agent can call, using the @function_tool decorator.
How the SDK automatically converts your function's type hints into a schema the model can understand, and how to avoid common schema pitfalls.
An introduction to OpenAI's built-in hosted tools, including live web search, file search, and code execution, with no extra infrastructure required.
How to let one agent call another agent as if it were a tool, enabling a manager-style architecture where a central agent coordinates specialists.
How to access shared context and run-time state from inside a tool function, so your tools can be aware of who's calling them and why.
How to return more than plain text from a tool, including images, files, and structured data the model can use directly.
How the SDK handles multiple tool calls in a single turn, including when they run in parallel and how execution order is determined.
Best practices for handling errors inside your tools gracefully, so a single failure doesn't crash the entire agent run.
A deeper look at every property available on a RunResult object, including the full list of items generated during a run.
How to stream an agent's response back to your application as it's generated, instead of waiting for the entire run to finish.
The difference between raw token-level streaming events and higher-level structured run item events, and when to use each.
How to control run-level settings such as maximum turns, model overrides, and workflow naming using the RunConfig object.
How to pass your own application state and dependencies into an agent run, and access it from anywhere in the run.
How to catch and handle the exceptions the SDK raises, including runs that exceed the maximum turn limit or trip a guardrail.
How to track token usage and estimate the real dollar cost of a run, a skill essential for running agents in production.
A conceptual comparison of letting the model decide what happens next versus controlling the flow yourself in code, and when to use each approach.
How to let one agent hand off an entire conversation to a specialist agent, transferring full control and context.
How to filter and shape exactly what conversation history a specialist agent receives after a handoff.
A direct, practical comparison of the two multi-agent patterns covered in this course, with guidance on choosing the right one for your use case.
You will build a working triage agent that intelligently routes a conversation to one of several specialist agents.
How to chain multiple agents together in a fixed, predictable sequence controlled entirely by your own Python code.
How to run multiple agents at the same time using asyncio.gather, dramatically reducing total run time for independent tasks.
How to validate, and if necessary block, a user's message before it ever reaches your main agent.
How to check an agent's final response against your own rules before it's shown to the user.
A deeper look at how guardrails actually execute, including the real latency and cost trade-offs between blocking and parallel execution.
An introduction to the SDK's built-in tracing system, and the discovery that every run you've made so far has already been recorded.
A hands-on walkthrough of the OpenAI traces dashboard, showing you exactly how to read and debug a real multi-agent run.
How to group multiple related agent runs into a single named trace using the trace() context manager.
How to hook into an agent run's lifecycle events for custom logging, monitoring, and per-agent cost tracking.
How to generate a visual diagram of any multi-agent system, making complex handoff and tool structures easy to understand at a glance.
The course capstone: you will build a complete multi-agent research assistant from scratch, live, combining everything taught in the course into one real, working system.
Build Production-Ready AI Agents Using the OpenAI Agents SDK in Python
Most tutorials stop at a single agent calling a single tool. This course goes the other ninety percent of the way: multi-agent orchestration, guardrails, structured outputs, real-time streaming, and full observability, all in Python, all built on OpenAI's own official SDK.
You will start with your first agent and end by building a complete multi-agent research assistant, live, line by line, in the course capstone. Along the way you will learn how to equip agents with function tools and hosted tools, stream responses in real time, route conversations between specialist agents with handoffs and triage logic, protect your pipelines with input and output guardrails, and debug and monitor everything you build using the SDK's built-in tracing and the OpenAI dashboard.
Every lecture ships with a Google Colab notebook you run yourself. There is no local setup, no virtual environment, and no TypeScript; this course is Python only, from the SDK's own official Python interface.
Here is what you will be able to do by the end of this course:
Build and configure agents using the OpenAI Agents SDK, from your first agent through advanced configuration and structured outputs
Equip agents with function tools, hosted tools, and multi-agent handoffs to complete real, multi-step tasks
Stream agent responses in real time and manage runs with full control over configuration and context
Orchestrate multi-agent systems using handoffs, triage routing, and parallel execution with asyncio
Protect agent pipelines with input and output guardrails that block invalid requests before they cost you time or money
Debug and monitor agents using the SDK's built-in tracing, the OpenAI dashboard, and lifecycle hooks
Track token usage and cost across multi-agent runs, a skill most courses skip entirely
Build a complete multi-agent research assistant from scratch, combining every concept from the course into one capstone project
If you are a Python developer ready to move past single API calls and start building agents that actually coordinate, this course will take you there.