Files
novi-lessons/Les13-Agents/Les13-Lesopdracht.md
2026-06-09 18:02:04 +02:00

79 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Les 13 — Lesopdracht
## Bouw je eigen Polderfest-agent
**Vak:** AI-Assisted Development
**Opleiding:** NOVI Hogeschool Utrecht
**Werkvorm:** in-class, na de pauze (±1,5 uur)
**Status:** klaar = productie-URL in de chat delen
---
## Doel
Aan het einde van deze opdracht heb je een werkende Polderfest-agent
met zes nieuwe features bovenop Les 12: getWeather, addToFavorites,
finishPlan, hasToolCall, prepareStep, en een UI die tool-calls toont.
Live op je eigen Vercel-deployment.
---
## Wat je nodig hebt (zit allemaal al klaar uit Les 11/12)
- Je Polderfest-app uit Les 12, of `polderfest-original.zip` uit lesbestanden
- Supabase project met `bands` en `user_favorites` tabel
- OpenAI API key in `.env.local`
- Vercel account
- `Les13-Stap-voor-stap.md` als gids
---
## Stappenplan
Werk in jouw eigen tempo. Hierbij de hoofdlijn — voor de exacte code
per stap zie `Les13-Stap-voor-stap.md` en `polderfest-with-agent.zip`.
1. **Project klaarzetten** — Polderfest-original uitpakken of eigen versie gebruiken, `npm install && npm run dev`
2. **Nieuwe route**`app/api/agent/route.ts` aanmaken (kopie van chat-route)
3. **`addToFavorites`** — write-tool toevoegen (insert in `user_favorites`)
4. **`getWeather`** — externe API (Open-Meteo, geen key)
5. **`finishPlan`** — Zod-schema structured-output tool
6. **`hasToolCall`** — extra stop-conditie naast `stepCountIs(8)`
7. **`prepareStep`** — model switching (krachtig → goedkoop)
8. **UI**`app/agent/page.tsx` met tool-call-rendering
9. **Testen** — drie demo-prompts in de browser
10. **Deploy** — Vercel + env vars
---
## Op te leveren
Tijdens de les in de chat plaatsen:
- Productie-URL van je `/agent` pagina
- Screenshot van je Supabase Table Editor met minimaal één nieuwe
rij in `user_favorites` (gemaakt door de agent)
---
## Test-prompts (gebruik deze om te valideren)
| Prompt | Verwachte tools |
|--------|-----------------|
| "Plan een avond met indie en techno voor zaterdag." | searchBands × 2 + getDaySchedule + finishPlan |
| "Wat speelt er op zondag en hoe is het weer?" | getDaySchedule + getWeather + finishPlan |
| "Welke band moet ik NIET missen op vrijdag? Zet hem in mijn favorieten." | searchBands + addToFavorites + finishPlan |
Werkt prompt 3 niet (geen rij in `user_favorites`)? Check of de service-role-key
in `.env.local` staat en of de tool de `band_id` correct ophaalt.
---
## Vastgelopen?
- Open `polderfest-with-agent.zip` als spiekbriefje
- Zoek in de code op `// STEP N` voor de exacte plek per feature
- Vraag in de chat — ik loop rond
Veel succes!