{"id":49849572,"url":"https://github.com/temporalio/edu-ai-workshop-openai-agents-sdk","last_synced_at":"2026-05-14T14:09:52.096Z","repository":{"id":324098628,"uuid":"1095940736","full_name":"temporalio/edu-ai-workshop-openai-agents-sdk","owner":"temporalio","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-13T19:06:21.000Z","size":864,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-13T21:06:07.514Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temporalio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-13T18:09:34.000Z","updated_at":"2025-11-13T19:01:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/temporalio/edu-ai-workshop-openai-agents-sdk","commit_stats":null,"previous_names":["temporalio/edu-ai-workshop-openai-agents-sdk"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/temporalio/edu-ai-workshop-openai-agents-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fedu-ai-workshop-openai-agents-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fedu-ai-workshop-openai-agents-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fedu-ai-workshop-openai-agents-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fedu-ai-workshop-openai-agents-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temporalio","download_url":"https://codeload.github.com/temporalio/edu-ai-workshop-openai-agents-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fedu-ai-workshop-openai-agents-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33028256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-14T14:09:51.280Z","updated_at":"2026-05-14T14:09:52.078Z","avatar_url":"https://github.com/temporalio.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![Workshop Hero Banner](images/hero-banner.svg)\n\n\u003c/div\u003e\n\n---\n\nLearn to build **durable AI agents** using **OpenAI Agents SDK + Temporal** in this hands-on 90-minute workshop. Everything runs in GitHub Codespaces with zero local setup required.\n\n## What You'll Build\n\n\u003cdiv align=\"center\"\u003e\n\n### Master Durable AI Agents\n\n\u003c/div\u003e\n\nBy the end of this workshop, you'll understand how to:\n\n- **Create AI agents** with tool calling using OpenAI's Agents SDK\n- **Build durable workflows** with Temporal for reliability and retries\n- **Combine both** to create production-ready AI agents that survive failures\n- **Implement multi-agent systems** with handoff patterns\n- **Observe and debug** agent execution using Temporal UI\n\n\u003e **Pro Tip**: These aren't just toy examples—you'll learn production patterns used by real companies!\n\n## Prerequisites\n\n\u003cdiv align=\"center\"\u003e\n\n**What You Need to Bring**\n\n\u003c/div\u003e\n\n- **Basic Python knowledge** - If you can write a function, you're ready!\n- **OpenAI API key** - [Get one here](https://platform.openai.com/api-keys) (free tier works!)\n- **GitHub account** - For Codespaces \n\n\u003e **Cost Note**: The workshop uses ~$0.50-$1.00 of OpenAI API credits. Free tier is plenty!\n\n## Quick Start\n\n\u003cdiv align=\"center\"\u003e\n\n### Ready, Set, Code!\n\n*Get started in minutes!*\n\n\u003c/div\u003e\n\n### GitHub Codespaces (Recommended)\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50px\"\u003e1.\u003c/td\u003e\n\u003ctd\u003eOpen in GitHub Codespaces\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e2.\u003c/td\u003e\n\u003ctd\u003eWait 2-3 minutes for the environment to set up\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e3.\u003c/td\u003e\n\u003ctd\u003eAdd your OpenAI API key to \u003ccode\u003e.env\u003c/code\u003e:\n   \u003cpre\u003e# The .env file is already created during setup\n# Edit .env and add your OPENAI_API_KEY\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e4.\u003c/td\u003e\n\u003ctd\u003eInstall and start Temporal server using the notebook:\n   \u003cul\u003e\n   \u003cli\u003eOpen \u003ccode\u003etemporal_installation.ipynb\u003c/code\u003e in VS Code\u003c/li\u003e\n   \u003cli\u003eRun each cell to:\n     \u003cul\u003e\n       \u003cli\u003eInstall the Temporal CLI\u003c/li\u003e\n       \u003cli\u003eStart the Temporal dev server\u003c/li\u003e\n     \u003c/ul\u003e\n   \u003c/li\u003e\n   \u003cli\u003e\u003cstrong\u003eVerify In Codespaces:\u003c/strong\u003e Go to the \u003cstrong\u003ePorts\u003c/strong\u003e tab at the bottom of VS Code → Find port \u003cstrong\u003e8233\u003c/strong\u003e → Click the \u003cstrong\u003eGlobe icon\u003c/strong\u003e to open the Temporal Web UI\u003c/li\u003e\n   \u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5.\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eYou're ready to start the workshop!\u003c/strong\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003eWorkshop Flow:\u003c/strong\u003e During the session, you'll explore and run the complete implementations in \u003ccode\u003esolutions/\u003c/code\u003e. After the workshop, practice building everything yourself using \u003ccode\u003eexercises/\u003c/code\u003e as homework! Make your changes to the code in the \u003ccode\u003eexercises/\u003c/code\u003e subdirectories. If you need a hint or want to verify your changes, look at the complete version in the corresponding \u003ccode\u003esolutions/\u003c/code\u003e subdirectory.\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e **Note:** All workshop instructions use the `temporal_installation.ipynb` notebook for Temporal setup. This ensures a consistent, reliable experience across all environments!\n\n## Workshop Structure\n\n\u003cdiv align=\"center\"\u003e\n\n### 90 Minutes to Mastery\n\n*30 min instruction + 4×15 min hands-on exercises*\n\n**Progress Bar**: `[░░░░░░░░░░] 0%` → `[██████████] 100%`\n\n\u003c/div\u003e\n\n**Exercises 1-3** are **Jupyter notebooks** for interactive learning.  \n**Exercise 4** uses **separate Python files** to demonstrate production-ready Temporal applications!\n\n**During the workshop**: You'll explore and run the complete implementations in the `solutions/` directory. These are fully working examples that demonstrate production patterns. Learn by running the code, seeing the output, and understanding how everything works together.\n\n**After the workshop**: Practice building everything from scratch using the `exercises/` directory as optional homework! The exercises provide starter code with TODO markers to guide you.\n\n### Repository Navigation\n\n```\ntemporal-openai-agents-sdk/\n├── solutions/                    # Work here during the workshop\n│   ├── 01_agent_hello_world/       # Workshop Exercise 1 - OpenAI agent basics (.ipynb)\n│   ├── 02_temporal_hello_world/    # Workshop Exercise 2 - Temporal fundamentals (.ipynb)\n│   ├── 03_durable_agent/           # Workshop Exercise 3 - Combine both! (.ipynb)\n│   └── 04_agent_routing/           # Workshop Exercise 4 - Routing workflow (.py files)\n│\n├── exercises/                    # Extra homework exercises (optional)\n│   ├── 01_agent_hello_world/       # Homework: Build your own agent (.ipynb)\n│   ├── 02_temporal_hello_world/    # Homework: Practice workflows (.ipynb)\n│   ├── 03_durable_agent/           # Homework: Create durable agent (.ipynb)\n│   └── 04_agent_routing/           # Homework: Implement routing (.py files)\n│\n├── scripts/                     # Helper scripts (bootstrap, env checks)\n├── Makefile                     # Common commands (setup, lint, test)\n├── WORKSHOP_SPEC.md             # Workshop design specification\n└── README.md                    # You are here!\n```\n\n## Workshop Exercises\n\n\u003cdiv align=\"center\"\u003e\n\n### Your Learning Journey\n\n*From zero to hero in four exercises!*\n\n\u003c/div\u003e\n\n**During the workshop**, you'll explore and run the complete implementations in the `solutions/` directory. These are fully working examples that you'll execute, observe, and learn from—see how production-ready AI agents work in practice. \n\n**After the workshop**, you can practice building them yourself using the `exercises/` directory as homework! Make your changes to the code in the `exercises/` subdirectories. If you need a hint or want to verify your changes, look at the complete version in the corresponding `solutions/` subdirectory.\n\n---\n\n### Exercise 1: Agent Hello World\n\n\u003cdiv align=\"center\"\u003e\n\n**Your First AI Agent**\n\n*Build it, run it, watch it think!*\n\n\u003c/div\u003e\n\n**Goal:** Create a simple AI agent with tool calling using real weather data\n\n**What you'll learn:**\n- Build your first OpenAI agent with a weather tool\n- Understand the agent → tool → response flow\n- See how LLMs decide when to use tools\n- Call real APIs (National Weather Service)\n\n**Time:** 15 minutes\n\n**[Workshop Notebook](solutions/01_agent_hello_world/solution.ipynb)** | **[Homework: Build Your Own](exercises/01_agent_hello_world/exercise.ipynb)**\n\n\u003e **Challenge**: Can your agent handle weather queries for multiple cities at once?\n\n---\n\n### Exercise 2: Temporal Hello World\n\n\u003cdiv align=\"center\"\u003e\n\n**Meet Your Reliability Superhero**\n\n*Workflows that never give up!*\n\n\u003c/div\u003e\n\n**Goal:** Understand Temporal workflows and activities\n\n**What you'll learn:**\n- Create your first Temporal workflow\n- Learn about activities as units of work\n- Observe execution in the Temporal UI\n- Experience automatic retries\n\n**Time:** 15 minutes\n\n**[Workshop Notebook](solutions/02_temporal_hello_world/solution.ipynb)** | **[Homework: Build Your Own](exercises/02_temporal_hello_world/exercise.ipynb)**\n\n\u003e **Pro Tip**: The Temporal UI is your best friend for debugging—explore it thoroughly!\n\n---\n\n### Exercise 3: Durable Agent\n\n\u003cdiv align=\"center\"\u003e\n\n**THE KEY ACTIVITY**\n\n*Where AI meets unbreakable reliability!*\n\n\u003c/div\u003e\n\n**Goal:** Combine agents + Temporal for production durability\n\n**What you'll learn:**\n- Wrap LLM calls in Temporal activities\n- Get automatic retries on failures\n- Persist agent state across crashes\n- Add observability with trace IDs\n- Build production-ready AI agents\n\n**🎯 This is the KEY exercise!** Everything comes together here!\n\n**Time:** 15 minutes\n\n**[Workshop Notebook](solutions/03_durable_agent/solution.ipynb)** | **[Homework: Build Your Own](exercises/03_durable_agent/exercise.ipynb)**\n\n\u003e **Mind Blown Moment**: Your agent code doesn't change—Temporal just wraps it with superpowers!\n\n---\n\n### Exercise 4: Routing Workflow\n\n\u003cdiv align=\"center\"\u003e\n\n**Build a Polyglot Agent Team**\n\n*French, Spanish, English—your agents speak them all!*\n\n\u003c/div\u003e\n\n**Goal:** Build a routing workflow with language-specific agents using production-ready file structure\n\n**What you'll learn:**\n- Implement agent routing/triage patterns with OpenAI Agents SDK\n- Create specialized language agents (French, Spanish, English)\n- Use handoff patterns for agent-to-agent transitions\n- Structure real Temporal applications (workflow, worker, starter files)\n- Run production-style workflows with separate worker processes\n\n**Time:** 15 minutes\n\n**[Workshop Files](solutions/04_agent_routing/)** | **[Homework: Build Your Own](exercises/04_agent_routing/)**\n\n\u003e **Next Level**: This is how real production systems are structured!\n\n## Common Commands\n\n\u003cdiv align=\"center\"\u003e\n\n### Your Command Toolbox\n\n*Everything you need, one command away!*\n\n\u003c/div\u003e\n\n```bash\n# Setup and validation\nmake setup          # Install all dependencies\nmake env            # Check environment variables (OPENAI_API_KEY)\n\n# Code quality\nmake lint           # Run code linters (ruff, mypy)\nmake test           # Run test suite (mocked - no API key needed!)\n\n# Temporal server\n# Use temporal_installation.ipynb notebook to install and start Temporal:\n#   1. Open temporal_installation.ipynb in VS Code\n#   2. Run each cell to install Temporal CLI and start dev server\n#   3. Verify In Codespaces: Go to the **Ports** tab → Find port **8233** → Click the **Globe icon**\n\n# Working with the workshop\n# During the workshop, work through solutions/ notebooks:\n#   solutions/01_agent_hello_world/solution.ipynb\n#   solutions/02_temporal_hello_world/solution.ipynb\n#   solutions/03_durable_agent/solution.ipynb\n#\n# Exercise 4 uses separate Python files (production pattern):\n#   cd solutions/04_agent_routing\n#   python worker.py    # Terminal 1\n#   python starter.py   # Terminal 2\n#\n# After the workshop, practice building your own in exercises/:\n#   exercises/01_agent_hello_world/exercise.ipynb\n#   exercises/02_temporal_hello_world/exercise.ipynb\n#   exercises/03_durable_agent/exercise.ipynb\n#   exercises/04_agent_routing/  # Python files (workflow.py, worker.py, starter.py)\n```\n\n\u003e **Pro Tip**: Run `make setup` first thing, every time!\n\n## Key Concepts\n\n\u003cdiv align=\"center\"\u003e\n\n### The \"Aha!\" Moments\n\n*Understanding the magic behind durable agents*\n\n\u003c/div\u003e\n\n### Why Temporal for AI Agents?\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"200px\"\u003e\n\n**The Problem**\n\n\u003c/td\u003e\n\u003ctd\u003e\n\nAI agents in production face several challenges:\n\n1. **API Failures**: LLM APIs can be rate-limited or temporarily unavailable\n2. **Crashes**: Your agent process might crash mid-execution\n3. **Long-Running Ops**: Multi-step agent flows need to resume from checkpoints\n4. **Observability**: You need to debug what your agent actually did\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**The Solution**\n\n\u003c/td\u003e\n\u003ctd\u003e\n\nTemporal solves these by providing:\n\n- **Automatic retries** with configurable policies\n- **State persistence** across failures and restarts\n- **Execution history** for debugging and auditing\n- **Durable execution** that survives crashes\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e **Think of Temporal as**: A time machine + a guardian angel for your code!\n\n### Architecture Pattern\n\n```\n       User Query\n           ↓\n   ┌───────────────────────────┐\n   │ Temporal Workflow         │  Orchestration Layer\n   │ (orchestration layer)     │     (Your AI's brain)\n   └───────────────────────────┘\n           ↓\n   ┌───────────────────────────┐\n   │ Activity: Call LLM        │  AI Decision Making\n   │    with tools             │\n   └───────────────────────────┘\n           ↓\n      [If tool needed]\n           ↓\n   ┌───────────────────────────┐\n   │ Activity: Execute tool    │  Take Action\n   └───────────────────────────┘\n           ↓\n   ┌───────────────────────────┐\n   │ Activity: Get final       │  Final Response\n   │    LLM response           │\n   └───────────────────────────┘\n           ↓\n       Return to user\n```\n\n**The Magic:** Each activity can retry independently, and the entire flow is durable!\n\n\u003e **Key Insight**: Your AI agent becomes unstoppable—it will complete its task even if the server crashes!\n\n## Troubleshooting\n\n\u003cdiv align=\"center\"\u003e\n\n### Common Issues \u0026 Quick Fixes\n\n*Don't panic—we've got you covered!*\n\n\u003c/div\u003e\n\n---\n\n### Environment Issues\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: \u003ccode\u003eOPENAI_API_KEY\u003c/code\u003e not found\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# Check your .env file exists\nls -la .env\n\n# Verify the key is set\npython scripts/check_env.py\n# Or run: make env\n```\n\n**Fix:** If `.env` doesn't exist, create it from `.env.sample` (`cp .env.sample .env`), then add your API key\n\n\u003e **Tip**: Don't commit your `.env` file! It's in `.gitignore` for a reason.\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: Temporal server not running\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# Check if it's running\npgrep -f temporal\n```\n\n**Fix:** Use the `temporal_installation.ipynb` notebook to install and start Temporal:\n1. Open `temporal_installation.ipynb` in VS Code\n2. Run each cell to install Temporal CLI and start the dev server\n3. **Verify In Codespaces:** Go to the **Ports** tab → Find port **8233** → Click the **Globe icon**\n\n⚠️ The Temporal dev server must be running for exercises 2, 3, and 4! ⚡\n\n\u003c/details\u003e\n\n---\n\n### Exercise Issues\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: Import errors when running exercises\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# Reinstall dependencies\nmake setup\n# Or: pip install -e \".[dev]\"\n```\n\n\u003e **Tip**: Run `make setup` whenever you pull new changes!\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: Notebook kernel not found\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# Install ipykernel\npip install ipykernel\npython -m ipykernel install --user --name temporal-workshop\n```\n\nThen select the `temporal-workshop` kernel in your notebook!\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: Can't access Temporal UI at localhost:8233\u003c/strong\u003e\u003c/summary\u003e\n\n**In Codespaces:** The port should be automatically forwarded. To access it:\n1. Go to the **Ports** tab at the bottom of VS Code\n2. Find port **8233** \n3. Click the **Globe icon** to open the Temporal Web UI in your browser\n4. Make sure the port visibility is set to **Public** if you need to share it\n\n**✅ Solution:** Make sure Temporal server is running using `temporal_installation.ipynb` and follow the Codespaces instructions above.\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eProblem: Tests fail with \"module not found\"\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# Make sure you're in the project root and have installed in editable mode\ncd /path/to/temporal-openai-agents-sdk\npip install -e \".[dev]\"\n```\n\n\u003c/details\u003e\n\n---\n\n\u003e **Still stuck?** Open an issue on GitHub! We're here to help!\n\n## Additional Resources\n\n\u003cdiv align=\"center\"\u003e\n\n### Continue Your Learning Journey\n\n*Bookmark these for later!*\n\n\u003c/div\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ctd\u003e\u003ca href=\"https://docs.temporal.io/\"\u003eTemporal Documentation\u003c/a\u003e - Your complete guide to Temporal\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ctd\u003e\u003ca href=\"https://platform.openai.com/docs/api-reference\"\u003eOpenAI API Reference\u003c/a\u003e - Everything OpenAI\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ctd\u003e\u003ca href=\"https://platform.openai.com/docs/guides/function-calling\"\u003eOpenAI Agents SDK\u003c/a\u003e - Deep dive into function calling\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ctd\u003e\u003ca href=\"https://docs.temporal.io/dev-guide/python\"\u003eTemporal Python SDK\u003c/a\u003e - Python-specific docs\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ctd\u003e\u003ca href=\"https://docs.google.com/presentation/d/1ZKj-PUm8-swnwP7jQPyQNMs4NIBAuCuglU3iByWn4CM/edit?slide=id.g38cc80f1e1e_1_0#slide=id.g38cc80f1e1e_1_0\"\u003eWorkshop Slides\u003c/a\u003e - Slide deck from the workshop\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e **Recommended Next Steps**: \n\u003e 1. Explore the [Temporal Samples repository](https://github.com/temporalio/samples-python)\n\u003e 2. Join the [Temporal Slack community](https://temporal.io/slack)\n\u003e 3. Build something awesome and share it!\n\n## Instructor Notes\n\n\u003cdiv align=\"center\"\u003e\n\n### For Workshop Leaders\n\n*Tips from the trenches!*\n\n\u003c/div\u003e\n\n### Timing Breakdown\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"150px\"\u003e\u003cstrong\u003e00:00-05:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eIntroduction \u0026 Setup verification\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e05:00-15:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eOpenAI Agents SDK Introduction (slides)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e15:00-30:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eWalk through Exercise 1 solution notebook together + Q\u0026A\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e30:00-35:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eDiscussion \u0026 key takeaways from Exercise 1\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e35:00-40:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eIntro to Temporal (slides)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e40:00-55:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eWalk through Exercise 2 solution notebook together + Q\u0026A\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e55:00-60:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eDiscussion \u0026 key takeaways from Exercise 2\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e60:00-65:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eOpenAI Agents SDK + Temporal (slides)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e65:00-80:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003eWalk through Exercise 3 solution notebook (THE KEY EXERCISE!)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003e80:00-90:00\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e🎉 Demo Exercise 4 (production patterns) + Wrap-up\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Common Pitfalls\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e1. Students skip checking \u003ccode\u003e.env\u003c/code\u003e\u003c/strong\u003e\u003c/summary\u003e\n\n- Do environment check before starting (`make env`)\n- Emphasize that exercises 1, 3, 4 need API key\n- Have backup keys ready for those who forget\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e2. Temporal not running\u003c/strong\u003e\u003c/summary\u003e\n\n- Remind students to use `temporal_installation.ipynb` notebook to install and start Temporal\n- Walk through opening the notebook and running each cell\n- Show them how to verify In Codespaces: Go to the **Ports** tab → Find port **8233** → Click the **Globe icon**\n- Verify EARLY before Exercise 2!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e3. Confusion between workshop and homework\u003c/strong\u003e\u003c/summary\u003e\n\n- Clearly explain: work through `solutions/` during the workshop, practice building your own in `exercises/` afterward\n- Solution notebooks are complete implementations to learn from during the workshop\n- Exercises are for independent practice after the workshop (optional homework)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e4. Temporal Activity timeouts\u003c/strong\u003e\u003c/summary\u003e\n\n- Explain `start_to_close_timeout` defaults\n- Show how to adjust for longer-running operations\n- Common when students use GPT-4 vs GPT-4-mini\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e5. Notebook vs Python files\u003c/strong\u003e\u003c/summary\u003e\n\n- Exercises 1-3 are Jupyter notebooks (`.ipynb`) - work through `solutions/` during workshop\n- Exercise 4 uses separate Python files (workflow.py, worker.py, starter.py)\n- Emphasize Exercise 4 demonstrates production application structure\n- After workshop, students can practice building their own using `exercises/` directory\n\n\u003c/details\u003e\n\n### Key Teaching Points\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExercise 1: Agent Foundations\u003c/strong\u003e 🤖\u003c/summary\u003e\n\n- Walk through the complete solution notebook together\n- Emphasize tool calling as the foundation of agentic behavior\n- Show how the agent decides to use tools\n- Highlight the real API integration (National Weather Service)\n- **Demo tip**: Try queries that do and don't need tools\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExercise 2: Temporal Magic\u003c/strong\u003e 🌊\u003c/summary\u003e\n\n- Walk through the solution notebook as a group\n- Show the Temporal UI extensively - it's powerful for debugging\n- Walk through execution history\n- Demonstrate the retry mechanism\n- **Demo tip**: Kill the worker mid-execution and restart it!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExercise 3: THE KEY MOMENT\u003c/strong\u003e\u003c/summary\u003e\n\n- Guide students through the solution notebook\n- Show how activities make LLM calls durable\n- The agent code doesn't change - Temporal wraps it!\n- Emphasize: production-ready with zero agent modifications\n- **Demo tip**: Show the Temporal UI and OpenAI trace correlation\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eExercise 4: Production Patterns\u003c/strong\u003e 🔀\u003c/summary\u003e\n\n- Walk through the production file structure together\n- Language-based routing pattern (French/Spanish/English agents)\n- Handoff pattern enables agent-to-agent transitions\n- Demonstrates real Temporal application structure (separate worker/starter)\n- Show how to run with two terminals (worker + starter)\n- **Demo tip**: Show language detection in real-time\n\n\u003c/details\u003e\n\n---\n\n\u003e **Golden Rule**: Keep energy high! These concepts are powerful and fun—your enthusiasm is contagious.\n\n## License\n\nMIT License - feel free to use this workshop material for educational purposes!\n\n## Contributing\n\nFound a bug or have a suggestion? Please open an issue or submit a pull request! We welcome contributions to make this workshop even better!\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### **Happy Coding!**\n\n**Build amazing durable AI agents!**\n\n---\n\nMade with love by the Temporal Community\n\n[Star us on GitHub](https://github.com/temporal-community/edu-ai-workshop-openai-agents-sdk) | [Follow Temporal](https://twitter.com/temporalio) | [Join Slack](https://temporal.io/slack)\n\n---\n\n### Ready to get started? Scroll back to [Quick Start](#-quick-start)!\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Fedu-ai-workshop-openai-agents-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemporalio%2Fedu-ai-workshop-openai-agents-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Fedu-ai-workshop-openai-agents-sdk/lists"}