78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# 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
|