# Les 12: Tool Calling — Laat AI zelf functies kiezen > ✅ **Deze les is volledig uitgewerkt** ## Lesmateriaal - [Slide Overzicht](../Les12-Tool-Calling/Les12-Slide-Overzicht.md) - [Docenttekst](../Les12-Tool-Calling/Les12-Docenttekst.md) - [Lesstof](../Les12-Tool-Calling/Les12-Lesstof.md) - [Lesopdracht](../Les12-Tool-Calling/Les12-Lesopdracht.md) - [Huiswerk](../Les12-Tool-Calling/Les12-Huiswerk.md) --- ## Deel **Deel 3 — AI Development** (Les 11-16) ## Beschrijving Vervolg op Les 11. We lossen het schaalprobleem op: niet alles in de context proppen, maar de AI laten kiezen welke tool (functie) hij nodig heeft. We bouwen 6 tools voor de Polderfest-app: search, stats, schedule, favorites en meer. --- ## Te Behandelen ### Theorie - Wat is Tool Calling? (vergelijking met traditionele API-call) - Het schaalprobleem: 30.000 tokens per call werkt niet voor 50.000 records - `tool({ description, inputSchema, execute })` met Zod - `stopWhen: stepCountIs(5)` — multi-step reasoning - Wanneer tool calling NIET de oplossing is ### Live demo's 1. Eerste tool: `searchBands` met Zod-schema 2. Multi-step setup + extra tools (stats, schedule) 3. Streaming + tool-results renderen in de UI 4. Debug-view: zien welke tools de AI kiest --- ## Tools - Vercel AI SDK v6 (`tool`, `stepCountIs`) - Zod voor input-validatie - Supabase queries vanuit tools - Polderfest-demo (in repo: `Les12-Tool-Calling/polderfest-demo`) --- ## Lesopdracht (in-class, 60 min) Studenten kijken klassikaal mee. In-class oefening: - Voeg een eigen tool toe aan de Polderfest-app (bv. `getBandsByGenre`) - Test of de AI je tool spontaan gebruikt - Check de debug-view: hoeveel stappen nam de chain? **Inleveren:** Screenshot van debug-view met meerdere tool-calls. --- ## Huiswerk (take-home) Bouw vanuit je eigen Les 11-project: - Minimaal 3 tools met Zod-schemas - Multi-step setup (max 5 stappen) - README documenteert elk tool: doel + voorbeeld-prompt - Reflectie 300 woorden: wanneer kies je tool calling vs. all-in-context? **Inleveren:** GitHub URL via Teams. --- ## Leerdoelen Na deze les kan de student: - Een Tool definiëren met `tool()` en Zod-schema - Multi-step tool calling configureren met `stopWhen` - Een Supabase-query als tool blootstellen aan de LLM - Bepalen wanneer tool calling de juiste oplossing is - Tool-calls debuggen via de AI SDK debug-output