{
  "apiVersion": "1",
  "sourceUrl": "https://adityasinghal.com/agentic-ai-workshop/",
  "modified": "2026-10-27",
  "workshops": [
    {
      "year": 2026,
      "status": "in-progress",
      "title": "Agentic AI Workshop 2026 | NYU CDS | Adi Singhal",
      "url": "https://adityasinghal.com/agentic-ai-workshop/",
      "description": "Four in-person Thursday sessions at NYU CDS, October 8–29, 2026. Learn agents, harnesses, interactive apps, and coordination through slides, demonstrations, and starter code.",
      "modified": "2026-10-27",
      "repositoryUrl": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026",
      "schedule": {
        "dates": "October 8, 15, 22 & 29, 2026",
        "time": "Thursdays, 5:30–7:00 PM ET",
        "timeZone": "America/New_York",
        "venue": "CDS 7th Floor Open Space",
        "address": "60 5th Ave, between 12th and 13th Streets"
      },
      "sessions": [
        {
          "date": "2026-10-08",
          "title": "Agents and harnesses",
          "description": "What an agent is, when to use one, and the machinery that runs its tools, context, and decisions.",
          "topics": [
            "Agent loops",
            "Tools & MCP",
            "Harnesses"
          ],
          "attendance": "Required"
        },
        {
          "date": "2026-10-15",
          "title": "Agents beyond chat",
          "description": "Give an agent an interactive surface. Explore generated interfaces, typed decisions, and experiments with feedback.",
          "topics": [
            "A2UI & MCP Apps",
            "Jev",
            "Auto-Research"
          ],
          "attendance": "Required"
        },
        {
          "date": "2026-10-22",
          "title": "Multi-agent systems",
          "description": "Decide when to divide work, what each agent needs to know, and how to coordinate handoffs and review.",
          "topics": [
            "Context management",
            "Coordination protocols",
            "Evaluation"
          ],
          "attendance": "Required"
        },
        {
          "date": "2026-10-29",
          "title": "Demo Day",
          "description": "Show what you built. Discuss your project with classmates and industry guests, and learn from their questions.",
          "topics": [
            "Student demos",
            "Industry feedback",
            "Coffee chats"
          ],
          "attendance": "Highly encouraged"
        }
      ],
      "materials": [
        {
          "name": "2026 public repository",
          "description": "The home for this year’s course materials.",
          "access": "public",
          "links": [
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026",
              "label": "Open the repository"
            }
          ]
        },
        {
          "name": "Session 1: Agents and harnesses",
          "description": "Download the slides and explore the starter code for your own agent.",
          "access": "public",
          "links": [
            {
              "url": "https://raw.githubusercontent.com/adityaarunsinghal/agentic-ai-workshop-2026/refs/heads/main/session-01-agent-harnesses/session-01-agent-harnesses-2026-10-07.html",
              "label": "Download Session 1 slides",
              "download": "session-01-agent-harnesses-2026-10-07.html"
            },
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026/tree/main/session-01-agent-harnesses/demo-app",
              "label": "Open starter code"
            }
          ]
        },
        {
          "name": "Session 2: Agents beyond chat",
          "description": "Explore the slides and demo app, then build an interactive agent.",
          "access": "public",
          "links": [
            {
              "url": "https://raw.githubusercontent.com/adityaarunsinghal/agentic-ai-workshop-2026/refs/heads/main/session-02-beyond-chat-interfaces/slides/session-02-beyond-chat-interfaces-2026-10-15.html",
              "label": "Download Session 2 slides",
              "download": "session-02-beyond-chat-interfaces-2026-10-15.html"
            },
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026/tree/main/session-02-beyond-chat-interfaces/demo-app",
              "label": "Open starter code"
            }
          ]
        },
        {
          "name": "Session 3: Multi-agent systems",
          "description": "Explore the slides and compare single-agent, graph and swarm fact-checking.",
          "access": "public",
          "links": [
            {
              "url": "https://raw.githubusercontent.com/adityaarunsinghal/agentic-ai-workshop-2026/refs/heads/main/session-03-multi-agent-topologies/slides/session-03-multi-agent-topologies-2026-10-22.html",
              "label": "Download Session 3 slides",
              "download": "session-03-multi-agent-topologies-2026-10-22.html"
            },
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026/tree/main/session-03-multi-agent-topologies/demo-app",
              "label": "Open starter code"
            }
          ]
        },
        {
          "name": "Build and publish your agent",
          "description": "Follow the setup, ZIP upload, peer feedback, and course-credit instructions.",
          "access": "public",
          "links": [
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2026#clone-and-build-your-own-agent",
              "label": "Read the project guide"
            }
          ]
        },
        {
          "name": "Class app store",
          "description": "Publish your project and explore what others in the workshop build.",
          "access": "registered-students",
          "links": [
            {
              "url": "https://nyu-workshop.adityasinghal.com/",
              "label": "Open the class app store"
            }
          ],
          "note": "(For registered students only)"
        }
      ],
      "recordings": [
        {
          "id": "session-1-recording",
          "session": 1,
          "date": "2026-10-08",
          "title": "Models, Tools & Agent Harnesses",
          "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk",
          "durationSeconds": 7352.321,
          "chapters": [
            {
              "title": "Welcome and workshop format",
              "startSeconds": 0,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=0s"
            },
            {
              "title": "Instructor introduction",
              "startSeconds": 182,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=182s"
            },
            {
              "title": "Tools, inference and the goals for Session 1",
              "startSeconds": 435,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=435s"
            },
            {
              "title": "Student project ideas and Demo Day",
              "startSeconds": 543,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=543s"
            },
            {
              "title": "From chat and tool use to personal agents",
              "startSeconds": 1036,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=1036s"
            },
            {
              "title": "The restaurant video",
              "startSeconds": 1327,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=1327s"
            },
            {
              "title": "Lalima, Harry and Tim: model, harness and tools",
              "startSeconds": 1408,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=1408s"
            },
            {
              "title": "Spotting the mistake in the analogy",
              "startSeconds": 1852,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=1852s"
            },
            {
              "title": "Live demo: asking an agent for the time",
              "startSeconds": 2105,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=2105s"
            },
            {
              "title": "Inspecting the request payload",
              "startSeconds": 2487,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=2487s"
            },
            {
              "title": "Streaming responses and tool execution",
              "startSeconds": 2675,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=2675s"
            },
            {
              "title": "Q&A: streaming and inference providers",
              "startSeconds": 2839,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=2839s"
            },
            {
              "title": "Visible reasoning and model decisions",
              "startSeconds": 3036,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3036s"
            },
            {
              "title": "Who manages conversation history?",
              "startSeconds": 3250,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3250s"
            },
            {
              "title": "Prompt caching and repeated context",
              "startSeconds": 3391,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3391s"
            },
            {
              "title": "System prompts and instruction priority",
              "startSeconds": 3720,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3720s"
            },
            {
              "title": "Eight dimensions of an agent",
              "startSeconds": 3940,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3940s"
            },
            {
              "title": "Control: fixed steps or adaptive choices",
              "startSeconds": 3971,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=3971s"
            },
            {
              "title": "Trigger: a person, schedule or event",
              "startSeconds": 4029,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4029s"
            },
            {
              "title": "Authority: acting or asking for approval",
              "startSeconds": 4311,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4311s"
            },
            {
              "title": "Duration: one task or an ongoing responsibility",
              "startSeconds": 4425,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4425s"
            },
            {
              "title": "Environment: tools and browsers",
              "startSeconds": 4557,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4557s"
            },
            {
              "title": "Topology: one agent or an orchestrator",
              "startSeconds": 4585,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4585s"
            },
            {
              "title": "Memory across interactions",
              "startSeconds": 4665,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4665s"
            },
            {
              "title": "Interface beyond chat",
              "startSeconds": 4720,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4720s"
            },
            {
              "title": "The small Python harness and starter code",
              "startSeconds": 4778,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4778s"
            },
            {
              "title": "Class app store walkthrough",
              "startSeconds": 4843,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4843s"
            },
            {
              "title": "Homework: build an agent with a custom tool",
              "startSeconds": 4899,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=4899s"
            },
            {
              "title": "Launching apps and visitor-funded inference",
              "startSeconds": 5122,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5122s"
            },
            {
              "title": "Exploring the harness dimensions in the demo",
              "startSeconds": 5226,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5226s"
            },
            {
              "title": "Demo Day and coffee chats",
              "startSeconds": 5362,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5362s"
            },
            {
              "title": "Packaging, publishing and feedback",
              "startSeconds": 5408,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5408s"
            },
            {
              "title": "Open Q&A",
              "startSeconds": 5704,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5704s"
            },
            {
              "title": "Prompt caching versus memory and handoffs",
              "startSeconds": 5761,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5761s"
            },
            {
              "title": "Choosing designs and evaluating performance",
              "startSeconds": 5836,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=5836s"
            },
            {
              "title": "Last year's workshop and alternative harnesses",
              "startSeconds": 6136,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6136s"
            },
            {
              "title": "External tools and MCP servers",
              "startSeconds": 6261,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6261s"
            },
            {
              "title": "Building an application versus using a coding agent",
              "startSeconds": 6372,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6372s"
            },
            {
              "title": "Can the harness call tools directly?",
              "startSeconds": 6551,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6551s"
            },
            {
              "title": "Where LangGraph fits",
              "startSeconds": 6780,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6780s"
            },
            {
              "title": "When a conventional pipeline may be enough",
              "startSeconds": 6841,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6841s"
            },
            {
              "title": "Model behavior, safety and harness controls",
              "startSeconds": 6956,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=6956s"
            },
            {
              "title": "Keeping up with agentic AI",
              "startSeconds": 7244,
              "url": "https://www.youtube.com/watch?v=UtjOl-LPcCk&t=7244s"
            }
          ]
        },
        {
          "id": "session-2-recording",
          "session": 2,
          "date": "2026-10-15",
          "title": "Beyond Chat, MCP Apps & Decision APIs",
          "url": "https://www.youtube.com/watch?v=CnrdDizVvV8",
          "durationSeconds": 5403.269958333333,
          "chapters": [
            {
              "title": "Welcome and recap",
              "startSeconds": 0,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=0s"
            },
            {
              "title": "Agent design choices",
              "startSeconds": 246,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=246s"
            },
            {
              "title": "The model request bubble",
              "startSeconds": 385,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=385s"
            },
            {
              "title": "Chat agent demonstration",
              "startSeconds": 585,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=585s"
            },
            {
              "title": "What the harness does",
              "startSeconds": 921,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=921s"
            },
            {
              "title": "Why tools require another request",
              "startSeconds": 1225,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=1225s"
            },
            {
              "title": "The newspaper demonstration",
              "startSeconds": 1402,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=1402s"
            },
            {
              "title": "MCP tools and resources",
              "startSeconds": 1721,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=1721s"
            },
            {
              "title": "Interactive newspaper layout",
              "startSeconds": 1805,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=1805s"
            },
            {
              "title": "MCP Apps and extensions",
              "startSeconds": 1961,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=1961s"
            },
            {
              "title": "The cost of formatting decisions",
              "startSeconds": 2093,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=2093s"
            },
            {
              "title": "Decision APIs",
              "startSeconds": 2342,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=2342s"
            },
            {
              "title": "Bag of words and embeddings",
              "startSeconds": 2522,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=2522s"
            },
            {
              "title": "Transformer classifiers",
              "startSeconds": 2744,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=2744s"
            },
            {
              "title": "Text classification and confidence",
              "startSeconds": 2848,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=2848s"
            },
            {
              "title": "Calibration",
              "startSeconds": 3039,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3039s"
            },
            {
              "title": "Decision-model limits",
              "startSeconds": 3212,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3212s"
            },
            {
              "title": "Jev in the newspaper",
              "startSeconds": 3433,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3433s"
            },
            {
              "title": "Noul and factual verification",
              "startSeconds": 3472,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3472s"
            },
            {
              "title": "Research and revision loops",
              "startSeconds": 3624,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3624s"
            },
            {
              "title": "Autoresearch",
              "startSeconds": 3765,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3765s"
            },
            {
              "title": "AlphaEvolve",
              "startSeconds": 3973,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=3973s"
            },
            {
              "title": "Recursive self-improvement",
              "startSeconds": 4035,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4035s"
            },
            {
              "title": "Open discussion",
              "startSeconds": 4202,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4202s"
            },
            {
              "title": "Classification probabilities",
              "startSeconds": 4372,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4372s"
            },
            {
              "title": "Domain-specific calibration",
              "startSeconds": 4491,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4491s"
            },
            {
              "title": "Consistent classification and caching",
              "startSeconds": 4616,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4616s"
            },
            {
              "title": "Local development and publishing",
              "startSeconds": 4660,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4660s"
            },
            {
              "title": "Jev, autoresearch and RSI",
              "startSeconds": 4741,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4741s"
            },
            {
              "title": "Changing open model behavior",
              "startSeconds": 4797,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4797s"
            },
            {
              "title": "MCP connections and extensions",
              "startSeconds": 4971,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=4971s"
            },
            {
              "title": "Classification heads and text generation",
              "startSeconds": 5118,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=5118s"
            },
            {
              "title": "The cost of autoresearch",
              "startSeconds": 5312,
              "url": "https://www.youtube.com/watch?v=CnrdDizVvV8&t=5312s"
            }
          ]
        }
      ]
    },
    {
      "year": 2025,
      "status": "archived",
      "title": "Agentic AI Workshop 2025 Archive | Adi Singhal",
      "url": "https://adityasinghal.com/agentic-ai-workshop-2025/",
      "description": "The 2025 NYU CDS workshop archive: full session recordings with searchable chapters, course outline, MCP newspaper project, highlights, and public code.",
      "modified": "2026-10-27",
      "repositoryUrl": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2025",
      "materials": [
        {
          "name": "2025 public repository",
          "description": "Public code and materials from the archived workshop.",
          "access": "public",
          "links": [
            {
              "url": "https://github.com/adityaarunsinghal/agentic-ai-workshop-2025",
              "label": "Open the repository"
            }
          ]
        },
        {
          "name": "2025 recording playlist",
          "description": "The archived workshop's public video playlist.",
          "access": "public",
          "links": [
            {
              "url": "https://www.youtube.com/playlist?list=PLgF7i4LH-YxYvhXK-yywN7eFRjRjQrq89",
              "label": "Open the playlist"
            }
          ]
        },
        {
          "name": "The restaurant analogy",
          "description": "A familiar way into the roles behind MCP.",
          "access": "public",
          "links": [
            {
              "url": "https://www.youtube.com/watch?v=LoTpDu_rSHE",
              "label": "Watch the clip"
            }
          ]
        },
        {
          "name": "Agents beyond chat",
          "description": "See how an agent can fit into a different interface.",
          "access": "public",
          "links": [
            {
              "url": "https://www.youtube.com/watch?v=VCDpMWg78iw",
              "label": "Watch the clip"
            }
          ]
        },
        {
          "name": "When to split the work",
          "description": "Explore the decision to use multiple agents.",
          "access": "public",
          "links": [
            {
              "url": "https://www.youtube.com/watch?v=U5BMtOLvcTI",
              "label": "Watch the clip"
            }
          ]
        }
      ],
      "recordings": [
        {
          "id": "session-1-recording",
          "session": 1,
          "date": "2025-10-01",
          "title": "Introduction to MCP & Tool Use",
          "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ",
          "durationSeconds": 6631,
          "chapters": [
            {
              "title": "Welcome and introductions",
              "startSeconds": 0,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=0s"
            },
            {
              "title": "Workshop overview and instructor background",
              "startSeconds": 735,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=735s"
            },
            {
              "title": "From \"I have a Shih Tzu\" (2021) to Agentic AI (2024)",
              "startSeconds": 800,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=800s"
            },
            {
              "title": "Participant survey results and expectations",
              "startSeconds": 980,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=980s"
            },
            {
              "title": "What is Agentic AI? The perception-action loop explained",
              "startSeconds": 1260,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1260s"
            },
            {
              "title": "ChatGPT breakthrough moment (Dec 2022)",
              "startSeconds": 1430,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1430s"
            },
            {
              "title": "GPT-4 with vision capabilities (Mar 2023)",
              "startSeconds": 1470,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1470s"
            },
            {
              "title": "Tool use emerges: Claude introduces structured tools (May 2024)",
              "startSeconds": 1500,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1500s"
            },
            {
              "title": "The integration nightmare before MCP",
              "startSeconds": 1530,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1530s"
            },
            {
              "title": "First tool demonstration: Getting current time",
              "startSeconds": 1680,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1680s"
            },
            {
              "title": "Why do we need schemas? Bridging LLMs and code",
              "startSeconds": 1770,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1770s"
            },
            {
              "title": "The breakthrough moment: MCP as universal standard",
              "startSeconds": 1920,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=1920s"
            },
            {
              "title": "Live demo: Building a weather tool with MCP",
              "startSeconds": 2100,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=2100s"
            },
            {
              "title": "Understanding MCP architecture through restaurants",
              "startSeconds": 2280,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=2280s"
            },
            {
              "title": "Setting up MCP tools in VS Code",
              "startSeconds": 2580,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=2580s"
            },
            {
              "title": "Brave Search integration demo",
              "startSeconds": 2820,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=2820s"
            },
            {
              "title": "Real-time tool calling with Claude",
              "startSeconds": 2940,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=2940s"
            },
            {
              "title": "Host (Application) = Restaurant Manager",
              "startSeconds": 3030,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3030s"
            },
            {
              "title": "LLM = Head Chef (makes decisions)",
              "startSeconds": 3060,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3060s"
            },
            {
              "title": "MCP Server = Kitchen (provides tools)",
              "startSeconds": 3090,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3090s"
            },
            {
              "title": "MCP Client = Waiter (facilitates communication)",
              "startSeconds": 3120,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3120s"
            },
            {
              "title": "Walking through the complete analogy",
              "startSeconds": 3210,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3210s"
            },
            {
              "title": "Project overview: Personalized newspaper agent",
              "startSeconds": 3360,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3360s"
            },
            {
              "title": "Use Case: \"Fit or Flaw\"",
              "startSeconds": 3600,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=3600s"
            },
            {
              "title": "Project vision and requirements",
              "startSeconds": 4020,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4020s"
            },
            {
              "title": "Personalized news aggregation use case",
              "startSeconds": 4050,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4050s"
            },
            {
              "title": "Live coding: Creating MCP tools with FastMCP",
              "startSeconds": 4140,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4140s"
            },
            {
              "title": "The importance of discoverability in tool design",
              "startSeconds": 4440,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4440s"
            },
            {
              "title": "Testing the agent with real news sources",
              "startSeconds": 4500,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4500s"
            },
            {
              "title": "Tool composition: From 40+ calls to 5 calls",
              "startSeconds": 4620,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4620s"
            },
            {
              "title": "Homework assignment overview",
              "startSeconds": 4800,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4800s"
            },
            {
              "title": "Finding your own agentic use case",
              "startSeconds": 4890,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4890s"
            },
            {
              "title": "Building two MCP tools",
              "startSeconds": 4920,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4920s"
            },
            {
              "title": "Session 2 preview: Resources, prompts, and memory",
              "startSeconds": 4980,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=4980s"
            },
            {
              "title": "Session 3 guest: Luca Chang (MCP core contributor)",
              "startSeconds": 5040,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5040s"
            },
            {
              "title": "Questions about tool execution and LLM behavior",
              "startSeconds": 5100,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5100s"
            },
            {
              "title": "Understanding the restaurant analogy deeper",
              "startSeconds": 5280,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5280s"
            },
            {
              "title": "Context window management strategies",
              "startSeconds": 5400,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5400s"
            },
            {
              "title": "Tools vs schemas: What the LLM actually sees",
              "startSeconds": 5520,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5520s"
            },
            {
              "title": "Handling tool failures and validation",
              "startSeconds": 5700,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5700s"
            },
            {
              "title": "Discovery and prompt engineering for tools",
              "startSeconds": 5880,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=5880s"
            },
            {
              "title": "Multiple tool orchestration patterns",
              "startSeconds": 6000,
              "url": "https://www.youtube.com/watch?v=jNj2PI5A6zQ&t=6000s"
            }
          ]
        },
        {
          "id": "session-2-recording",
          "session": 2,
          "date": "2025-10-08",
          "title": "Advanced MCP Features",
          "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls",
          "durationSeconds": 7010,
          "chapters": [
            {
              "title": "Session start and overview",
              "startSeconds": 0,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=0s"
            },
            {
              "title": "Student project discussions",
              "startSeconds": 110,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=110s"
            },
            {
              "title": "Library agent for multimedia archives",
              "startSeconds": 157,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=157s"
            },
            {
              "title": "Restaurant recommender with visual AI",
              "startSeconds": 300,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=300s"
            },
            {
              "title": "Fashion outfit agent with weather integration",
              "startSeconds": 444,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=444s"
            },
            {
              "title": "Enhanced newspaper agent overview",
              "startSeconds": 930,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=930s"
            },
            {
              "title": "Server instructions and context",
              "startSeconds": 1300,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=1300s"
            },
            {
              "title": "Live demo: Creating personalized newspapers",
              "startSeconds": 1680,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=1680s"
            },
            {
              "title": "Understanding model \"laziness\"",
              "startSeconds": 2400,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=2400s"
            },
            {
              "title": "MCP Inspector walkthrough",
              "startSeconds": 2580,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=2580s"
            },
            {
              "title": "Interest management system",
              "startSeconds": 2910,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=2910s"
            },
            {
              "title": "Vector databases for article memory",
              "startSeconds": 3150,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3150s"
            },
            {
              "title": "Server-suggested workflows",
              "startSeconds": 3210,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3210s"
            },
            {
              "title": "Restaurant analogy: Weekend specials",
              "startSeconds": 3300,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3300s"
            },
            {
              "title": "Creating reusable templates",
              "startSeconds": 3360,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3360s"
            },
            {
              "title": "Restaurant analogy: Nutritional facts",
              "startSeconds": 3480,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3480s"
            },
            {
              "title": "VS Code integration demo",
              "startSeconds": 3690,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3690s"
            },
            {
              "title": "Preventing unwanted executions",
              "startSeconds": 3900,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=3900s"
            },
            {
              "title": "Direct server-to-user communication",
              "startSeconds": 4020,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4020s"
            },
            {
              "title": "Live demo: User confirmations",
              "startSeconds": 4140,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4140s"
            },
            {
              "title": "MCP Sampling introduction",
              "startSeconds": 4320,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4320s"
            },
            {
              "title": "ChatGPT Apps SDK compatibility",
              "startSeconds": 4380,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4380s"
            },
            {
              "title": "HTML resources as interfaces",
              "startSeconds": 4440,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4440s"
            },
            {
              "title": "Smart tools architecture",
              "startSeconds": 4500,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4500s"
            },
            {
              "title": "Content ID efficiency pattern",
              "startSeconds": 4560,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4560s"
            },
            {
              "title": "Server-requested LLM reasoning",
              "startSeconds": 4740,
              "url": "https://www.youtube.com/watch?v=TZ_UVMsj9Ls&t=4740s"
            }
          ]
        },
        {
          "id": "session-3-recording",
          "session": 3,
          "date": "2025-10-15",
          "title": "Multi-Agent Systems & Production Patterns",
          "url": "https://www.youtube.com/watch?v=4YrRODYnYHY",
          "durationSeconds": 5223,
          "chapters": [
            {
              "title": "Welcome and attendance",
              "startSeconds": 0,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=0s"
            },
            {
              "title": "Student project showcase begins",
              "startSeconds": 110,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=110s"
            },
            {
              "title": "Sports news agent with betting odds",
              "startSeconds": 240,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=240s"
            },
            {
              "title": "Restaurant recommender with visual AI",
              "startSeconds": 300,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=300s"
            },
            {
              "title": "Luca Chang introduction (MCP core contributor)",
              "startSeconds": 360,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=360s"
            },
            {
              "title": "Newspaper agent limitations review",
              "startSeconds": 480,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=480s"
            },
            {
              "title": "Token costs: Input vs output pricing",
              "startSeconds": 540,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=540s"
            },
            {
              "title": "Context length limits across models",
              "startSeconds": 600,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=600s"
            },
            {
              "title": "Context rot: Performance degradation with scale",
              "startSeconds": 720,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=720s"
            },
            {
              "title": "Needle in haystack problem: Tool selection",
              "startSeconds": 780,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=780s"
            },
            {
              "title": "Tool bloat: IBM research findings",
              "startSeconds": 960,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=960s"
            },
            {
              "title": "Real example: Claude tool confusion",
              "startSeconds": 1020,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1020s"
            },
            {
              "title": "Similar-sounding tools problem",
              "startSeconds": 1140,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1140s"
            },
            {
              "title": "Domain-specific agents concept",
              "startSeconds": 1380,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1380s"
            },
            {
              "title": "Extracting preference agent from news agent",
              "startSeconds": 1500,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1500s"
            },
            {
              "title": "Testing preference agent standalone",
              "startSeconds": 1620,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1620s"
            },
            {
              "title": "Add/remove interests implementation",
              "startSeconds": 1680,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1680s"
            },
            {
              "title": "Decoupling: No news mentions in preference tools",
              "startSeconds": 1920,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=1920s"
            },
            {
              "title": "Vector DB for semantic preference search",
              "startSeconds": 2040,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2040s"
            },
            {
              "title": "Store preference with metadata (time, depth)",
              "startSeconds": 2220,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2220s"
            },
            {
              "title": "Semantic distance and relevance scoring",
              "startSeconds": 2400,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2400s"
            },
            {
              "title": "MCP client testing without LLM calls",
              "startSeconds": 2580,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2580s"
            },
            {
              "title": "Embedding functions and distance metrics",
              "startSeconds": 2700,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2700s"
            },
            {
              "title": "Reviewing agent specialization benefits",
              "startSeconds": 2880,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=2880s"
            },
            {
              "title": "Wrapping preference agent as MCP server",
              "startSeconds": 3000,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3000s"
            },
            {
              "title": "Chat tool: Exposing agent capabilities",
              "startSeconds": 3060,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3060s"
            },
            {
              "title": "Producer-reviewer pattern explained",
              "startSeconds": 3180,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3180s"
            },
            {
              "title": "Content quality gates and validation",
              "startSeconds": 3240,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3240s"
            },
            {
              "title": "Reusability: Domain-agnostic design",
              "startSeconds": 3300,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3300s"
            },
            {
              "title": "Running news + preference agents together",
              "startSeconds": 3360,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3360s"
            },
            {
              "title": "News agent queries preferences at start",
              "startSeconds": 3600,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=3600s"
            },
            {
              "title": "Preference agent performs semantic searches",
              "startSeconds": 4020,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4020s"
            },
            {
              "title": "Review process: Approve vs deny workflow",
              "startSeconds": 4200,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4200s"
            },
            {
              "title": "Haiku 4.5 vs 3.5 capability comparison",
              "startSeconds": 4380,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4380s"
            },
            {
              "title": "Preference agent denies initial report",
              "startSeconds": 4440,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4440s"
            },
            {
              "title": "News agent revision based on feedback",
              "startSeconds": 4500,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4500s"
            },
            {
              "title": "When to split agents: Three questions",
              "startSeconds": 4560,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4560s"
            },
            {
              "title": "Domain boundaries and security isolation",
              "startSeconds": 4620,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4620s"
            },
            {
              "title": "Complexity thresholds for separation",
              "startSeconds": 4680,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4680s"
            },
            {
              "title": "Parallel tool execution in agents",
              "startSeconds": 4740,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4740s"
            },
            {
              "title": "Multi-agent relationships and dominance",
              "startSeconds": 4800,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4800s"
            },
            {
              "title": "Crew AI vs Langchain comparison",
              "startSeconds": 4860,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4860s"
            },
            {
              "title": "Vector DB necessity for multi-agent",
              "startSeconds": 4980,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=4980s"
            },
            {
              "title": "Context compaction strategies and quality",
              "startSeconds": 5100,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=5100s"
            },
            {
              "title": "Claude vs Amazon Q compaction approaches",
              "startSeconds": 5220,
              "url": "https://www.youtube.com/watch?v=4YrRODYnYHY&t=5220s"
            }
          ]
        }
      ]
    }
  ]
}
