2.5 KiB
2.5 KiB
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.zipuit lesbestanden - Supabase project met
bandsenuser_favoritestabel - OpenAI API key in
.env.local - Vercel account
Les13-Stap-voor-stap.mdals 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.
- Project klaarzetten — Polderfest-original uitpakken of eigen versie gebruiken,
npm install && npm run dev - Nieuwe route —
app/api/agent/route.tsaanmaken (kopie van chat-route) addToFavorites— write-tool toevoegen (insert inuser_favorites)getWeather— externe API (Open-Meteo, geen key)finishPlan— Zod-schema structured-output toolhasToolCall— extra stop-conditie naaststepCountIs(8)prepareStep— model switching (krachtig → goedkoop)- UI —
app/agent/page.tsxmet tool-call-rendering - Testen — drie demo-prompts in de browser
- Deploy — Vercel + env vars
Op te leveren
Tijdens de les in de chat plaatsen:
- Productie-URL van je
/agentpagina - 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.zipals spiekbriefje - Zoek in de code op
// STEP Nvoor de exacte plek per feature - Vraag in de chat — ik loop rond
Veel succes!