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

2.5 KiB
Raw Permalink Blame History

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 routeapp/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. UIapp/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!