
Learn how to use the course repositories, lesson resource pages, and Git checkpoints to follow along, compare solutions, and recover from mistakes.
Set up Python, uv, project dependencies, and an OpenAI API key before building and running your first agent.
Inspect OpenAI traces to understand what happened during an agent run and organize traces with names, groups, and metadata.
Use Pydantic models and output_type to return validated structured data instead of unpredictable free-form text.
Stream response events as they arrive so users receive output immediately instead of waiting for the complete answer.
Choose models and configure settings that control response style, length, creativity, and reasoning behavior.
Turn typed Python functions into tools an agent can call and inspect their arguments and results through tracing.
Equip an agent with OpenAI-hosted capabilities such as web search without implementing or hosting the tool runtime yourself.
Let agents execute shell commands locally and understand when to use ShellTool, ApplyPatchTool, and ComputerTool.
Connect an agent to an external filesystem MCP server and understand stdio, HTTP, SSE, and hosted MCP integrations.
Expose specialist agents as callable tools so a parent agent can delegate focused work while retaining control of the conversation.
Transfer a conversation to a specialist agent and customize the handoff behavior with structured configuration and input filtering.
Validate incoming requests and trigger a controlled stop before the primary agent handles an invalid or out-of-scope request.
Inspect an agent’s final response and block unreliable information, such as hotel prices that were not checked in real time.
Build a voice pipeline that records speech, transcribes it, runs an agent, and streams the spoken response through the speakers.
Create a continuous voice conversation over WebSockets with live audio, persistent context, turn detection, and interruption handling.
Structure the capstone project and stream responses from the Travel Assistant into a browser-based Chainlit interface.
Preserve context across conversation turns and compare manual message history with the Responses API’s previous_response_id.
Connect the assistant to live weather data through a hosted MCP server and display its tool activity in the chat.
Connect a flight-search MCP server so the assistant can return current flight options and useful booking links.
Replace basic instructions with a structured production prompt that gathers missing details and prevents fabricated tool arguments.
Pass typed user context into each run and render personalized prompts so the assistant stops requesting information it already knows.
Let the agent update durable profile information while keeping temporary, one-time trip details out of the user’s saved context.
Pause sensitive tool calls, present approval controls in Chainlit, and safely resume the agent after the user approves or rejects them.
Add live web search for activities and events, configure its scope, require sourced results, and inspect search calls through tracing.
Refactor the assistant into an orchestrator with Weather, Flights, and Places specialists that collaborate on complete trip plans.
Hand failed booking conversations to a customer-support agent and pass a structured explanation of why the transfer occurred.
Configure and stream concise reasoning summaries into a collapsible Thinking step before displaying the final response.
Connect SDK run hooks to a live progress interface showing which specialist tools are running, completed, or failed.
Replace a wall of text with a typed, interactive trip-plan card containing flights, weather, daily activities, notes, and sources.
Add browser-based realtime voice while reusing the assistant’s specialist agents, progress UI, trip-plan artifact, and support handoff.
Add layered moderation, jailbreak, scope, and fabrication checks using OpenAI’s configurable Guardrails package.
AI agents can do far more than return a block of text. They can use tools, retrieve live information, collaborate with specialist agents, remember context, ask for human approval, and communicate through voice.
In this hands-on course, you will learn how to build these systems in Python using the OpenAI Agents SDK. We begin with focused lessons covering the core SDK before combining everything into a production-style AI Travel Assistant.
You will learn how to:
Build, configure, run, and trace OpenAI agents
Stream responses and return validated structured outputs
Add function tools, hosted tools, local runtime tools, and MCP servers
Create multi-agent workflows using agents as tools and handoffs
Manage memory, prompts, user context, and self-updating profiles
Add input guardrails, output guardrails, and human approval
Build voice pipelines and continuous realtime voice conversations
Evaluate, red-team, deploy, and monitor an agent application
The main project is a browser-based AI Travel Assistant built with Chainlit. It searches for current weather and flights through MCP, finds activities through web search, remembers user preferences, and delegates work to Weather, Flights, and Places specialists.
You will improve the user experience with live tool-progress updates, customer-support handoffs, reasoning summaries, a rich trip-plan artifact, and realtime voice. You will then protect the application with configurable guardrails and human approval for sensitive actions.
Finally, you will create offline evaluations with Promptfoo, red-team the agent with adversarial inputs, deploy it to Hugging Face Spaces, and monitor production conversations with Langfuse.
The advanced section introduces ChatKit, Sandbox Agents, isolated workspaces, and reusable skills loaded on demand.
This course is designed for developers with basic programming experience. No previous experience with the OpenAI Agents SDK, MCP, multi-agent systems, voice AI, or agent evaluations is required.
By the end, you will have a complete, deployed AI agent project and the practical foundation to design, build, test, and ship your own text and voice agents.