Handleidingen 04 Toetsweekplanner en 06 Lesmateriaal-check; README met uitleg per app
- 04: Agent Console van aanmaken tot logs, 31 schermen, testgesprek met studieplan.xlsx en .ics - 06: eigen Swagger API-tool voor Edurep (Wikiwijs), UDL-rapport, leerlingversies, 25 schermen - Bouwscript: twee kaders na elkaar blijven nu gescheiden (was in 03, 05, 07, 08 samengevoegd) - README: tabel waarvoor welke app bedoeld is, live links 04 en 06 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 140 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Bouwt handleiding-dify-agent-console.html, .pdf en .docx. Gebruik: python3 build.py
|
||||
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
|
||||
import runpy, sys
|
||||
from pathlib import Path
|
||||
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-dify-agent-console.md")]
|
||||
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
|
||||
@@ -0,0 +1,389 @@
|
||||
<!--
|
||||
VOOR DE BEWERKER
|
||||
|
||||
Handleiding 4: Agent Console (bèta), Toetsweekplanner, naar use case UC-2026-008 van de
|
||||
Experimenteerruimte ICT SOML. Beelden in beelden/, vastgelegd op 20 september 2026 (Dify cloud).
|
||||
|
||||
Omzetten naar HTML, PDF en Word: python3 build.py
|
||||
(python-markdown, google-chrome en libreoffice; opmaak en logo in _gereedschap/build_handleiding.py)
|
||||
|
||||
Opmaakafspraken (zie ook README.md):
|
||||
- Genummerde lijst = handelingen (klikken, kiezen)
|
||||
- Tabel "Wat je intypt" = waarden voor formuliervelden
|
||||
- Codeblok (```) = tekst die letterlijk overgetypt wordt (label "Intypen")
|
||||
- Blockquote (>) = valkuil of tip (oranje kader)
|
||||
- Blockquote die begint met **Zelf kiezen** = keuzemoment voor de deelnemer (groen kader)
|
||||
|
||||
Testbestand: toetsrooster-voorbeeld.csv (fictief rooster van 12 t/m 16 oktober 2026, in deze map).
|
||||
Gepubliceerde voorbeeld-app: https://udify.app/agent/rKoqw8rbmp0IF86Q
|
||||
-->
|
||||
|
||||
# Bouwen in de Agent Console: de Toetsweekplanner
|
||||
|
||||
**Handleiding 4, bij use case UC-2026-008 Toetsweekplanner**
|
||||
Experimenteerruimte ICT SOML · LeX Consultancy B.V. · 20 september 2026
|
||||
|
||||
Je bouwt een agent die met een leerling een persoonlijk studieplan voor de toetsweek maakt. De agent leest het toetsrooster, vraagt wanneer de leerling kan leren en hoe moeilijk de vakken zijn, en levert daarna een plan in de chat plus twee bestanden: een Excel-overzicht en een agendabestand voor de telefoon.
|
||||
|
||||
Dit is een ander soort bouwen dan in handleiding 1, 3 en 5. Daar zette je zelf de stappen achter elkaar in een workflow. In de **Agent Console** geef je alleen een instructie, bestanden en tools; de agent bepaalt zelf hoe hij de vraag aanpakt, schrijft zo nodig een programmaatje en maakt bestanden in een eigen Linux-sandbox. Dat is het patroon "ReAct" uit de bijlage Ontwerppatronen: kijken, kiezen, doen, opnieuw kijken.
|
||||
|
||||
Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 uitziet. De Agent Console is **bèta**: schermen, knoppen en gedrag veranderen sneller dan in de rest van Dify. Wijkt je scherm af, volg dan wat je ziet en niet wat hier staat.
|
||||
|
||||
**Zo lees je deze handleiding**
|
||||
|
||||
| Vorm | Betekenis |
|
||||
| --- | --- |
|
||||
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
|
||||
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
|
||||
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
|
||||
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
|
||||
| Oranje kader | Een valkuil die je anders zelf ontdekt |
|
||||
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
|
||||
|
||||
---
|
||||
|
||||
## Lees dit eerst: wat mag wel en niet
|
||||
|
||||
Deze handleiding hoort bij een use case die door de Experimenteerruimte ICT en de Functionaris Gegevensbescherming is beoordeeld. Een studieplan is op zichzelf onschuldig, maar een leerling vertelt de agent wanneer hij thuis is, wat hij moeilijk vindt en soms meer. Daarom gelden deze afspraken:
|
||||
|
||||
| Wat | Afspraak |
|
||||
| --- | --- |
|
||||
| Echte leerlingen in Dify-cloud | **Niet.** Dify-cloud valt niet onder de verwerkersovereenkomst van SOML. Deze handleiding werkt met een fictief toetsrooster en met jou als "leerling". |
|
||||
| Echt gebruik | Alleen via de Gemini API in het centrale Google Cloud-project van SOML (Vertex AI, verwerking in de EU), na een DPIA en na het informeren van ouders. Regel dat via e-ict@soml.nl. |
|
||||
| Wat de agent mag zeggen | Geen cijfers, oordelen of voorspellingen over hoe de toets zal gaan. Dat staat in de instructie en blijft daar staan. Een agent die leerlingen beoordeelt schuift onder de AI Act naar hoog risico. |
|
||||
| Bewaren | De agent bewaart niets tussen gesprekken, maar Dify bewaart het gesprek in **Logs**. Zie "Beheer" achterin. |
|
||||
| Voor wie | Als de planner ooit voor leerlingen wordt ingezet: voor alle leerlingen, niet alleen voor leerlingen met een ondersteuningsbehoefte. |
|
||||
|
||||
Kort gezegd: wat je hier bouwt is een werkend prototype om te leren hoe een agent werkt. De stap naar echte leerlingen is een aparte beslissing met een aparte omgeving.
|
||||
|
||||
---
|
||||
|
||||
## Voorbereiding
|
||||
|
||||
- Een Dify-account. De Agent Console staat in het linkermenu onder **Agents** met het label **BETA**. Op een gratis sandbox-account telt een agent mee als app (maximaal vijf).
|
||||
- Een model dat de Agent Console aankan. Niet elk model kan het: **gpt-5** staat er als "Incompatibel", de nieuwere OpenAI-modellen (gpt-5.4 en hoger) en Gemini kunnen het wel. Wij gebruiken **gpt-5.4** via een eigen OpenAI-sleutel.
|
||||
- Het testbestand `toetsrooster-voorbeeld.csv` uit de map van deze handleiding: zes toetsen van maandag 12 tot en met vrijdag 16 oktober 2026, met per toets de stof.
|
||||
- Kosten: een agent doet meer werk dan een workflow. Eén compleet gesprek (drie vragen plus het plan met twee bestanden) kostte in onze test ongeveer 45.000 tokens, via een eigen sleutel zo'n 10 cent. Op Dify-credits kan één gesprek tientallen credits kosten; een sandbox met 200 credits is na een paar gesprekken leeg.
|
||||
|
||||
---
|
||||
|
||||
## Stap 1. Maak de agent
|
||||
|
||||
1. Klik in het linkermenu op **Agents**.
|
||||
|
||||

|
||||
|
||||
2. Klik rechtsboven op **Create** en kies **Create from Blank**.
|
||||
|
||||

|
||||
|
||||
3. Het venster **Agent aanmaken** verschijnt.
|
||||
|
||||

|
||||
|
||||
4. Vul de velden in.
|
||||
|
||||
| Veld op het scherm | Wat je intypt |
|
||||
| --- | --- |
|
||||
| Naam | `Toetsweekplanner` |
|
||||
| Rol | `Studieplanner voor leerlingen onderbouw` |
|
||||
| Beschrijving | `Maakt met de leerling een persoonlijk studieplan voor de toetsweek: verdeelt de toetsstof over de beschikbare momenten en levert het plan als Excel en als agendabestand.` |
|
||||
|
||||

|
||||
|
||||
5. Klik op **Create**.
|
||||
|
||||
Je komt op het scherm **Configureren**. Links staat het formulier van de agent (model, prompt, skills, bestanden, tools), rechts een chatvenster met twee tabbladen: **BOUWEN** en **VOORBEELD**.
|
||||
|
||||

|
||||
|
||||
> Rechts staat "Bouw je agent via chat": je kunt de agent in gewone taal vertellen wat hij moet doen en dan vult Dify het formulier links in. Dat werkt, maar het kost credits voor elk bericht en je weet minder goed wat er in je instructie staat. In deze handleiding vul je het formulier zelf in; dat is preciezer en gratis. De bouwchat is handig als je later iets wilt laten aanpassen ("maak de toon vriendelijker").
|
||||
|
||||
---
|
||||
|
||||
## Stap 2. Kies het model
|
||||
|
||||
Bovenaan staat **gpt-5** met een oranje label **Incompatibel**: dat model kan de Agent Console niet aan.
|
||||
|
||||
1. Klik op het modelveld. Een lijst met modellen klapt open.
|
||||
|
||||

|
||||
|
||||
2. Typ in het zoekveld `gpt-5.4`.
|
||||
|
||||

|
||||
|
||||
3. Klik op **gpt-5.4** (zonder toevoeging). Het label Incompatibel verdwijnt.
|
||||
|
||||

|
||||
|
||||
> Via **Incompatibele modellen weergeven** onder in de lijst zie je welke modellen niet werken. Een model dat daar staat kun je wel kiezen, maar de agent gaat dan niet lopen. Typ je `mini` in het zoekveld, dan krijg je alleen Gemini-modellen: gpt-5-mini uit de andere handleidingen is er hier niet.
|
||||
|
||||
Het model bepaalt de kosten en de kwaliteit van het plan, en voor de SOML-omgeving ook of het mag.
|
||||
|
||||
> **Zelf kiezen: welk model.** Gemini 3.5 Flash werkt ook en is goedkoper per gesprek, maar draait op Dify-credits als je geen eigen Google-sleutel hebt. Voor de SOML-omgeving is Gemini via het centrale project de enige toegestane route; test dan meteen met Gemini, zodat je weet hoe het plan eruitziet met het model dat je straks echt gebruikt.
|
||||
|
||||
---
|
||||
|
||||
## Stap 3. Schrijf de instructie
|
||||
|
||||
1. Klik in het veld **PROMPT** en plak de instructie hieronder.
|
||||
|
||||
```
|
||||
Je bent de Toetsweekplanner voor leerlingen in de onderbouw van het voortgezet onderwijs. Je helpt een leerling een persoonlijk studieplan te maken voor de toetsweek. Je spreekt de leerling aan met je, in korte zinnen en gewoon Nederlands.
|
||||
|
||||
Wat je nodig hebt van de leerling:
|
||||
1. Het toetsrooster. Staat het al in je bestanden (toetsrooster-voorbeeld.csv), gebruik dat en vat het kort samen; anders vraag je ernaar.
|
||||
2. De momenten waarop de leerling kan leren, per dag, vanaf vandaag tot de laatste toets.
|
||||
3. Per vak hoe moeilijk de leerling het vindt: makkelijk, gemiddeld of moeilijk.
|
||||
|
||||
Stel deze vragen een voor een, niet allemaal tegelijk. Ga pas plannen als je alle drie hebt.
|
||||
|
||||
Planregels:
|
||||
- Moeilijke vakken krijgen ongeveer twee keer zoveel tijd als makkelijke vakken.
|
||||
- Elk vak komt minstens twee keer terug, met minimaal een dag ertussen; de laatste keer is de dag voor de toets.
|
||||
- Een leerblok duurt 25 tot 45 minuten, met daarna 10 minuten pauze. Nooit meer dan drie blokken achter elkaar.
|
||||
- De avond voor een toets alleen herhalen, geen nieuwe stof.
|
||||
- Plan niets op momenten die de leerling niet heeft opgegeven.
|
||||
|
||||
Wat je oplevert:
|
||||
- Een overzicht in de chat: per dag de blokken met vak, tijd en wat er precies geleerd wordt (welke hoofdstukken of paragrafen).
|
||||
- Twee bestanden die je in de sandbox maakt: studieplan.xlsx (per rij: dag, datum, begintijd, eindtijd, vak, stof) en studieplan.ics (elk leerblok als agenda-afspraak), zodat de leerling het plan in de telefoonagenda kan zetten.
|
||||
- Sluit af met een vraag of de leerling iets wil verschuiven.
|
||||
|
||||
Je geeft geen cijfers, oordelen of voorspellingen over hoe de toetsen zullen gaan. Je bewaart niets over de leerling na het gesprek.
|
||||
```
|
||||
|
||||

|
||||
|
||||
De instructie heeft vier delen, en die volgorde is niet toevallig: **wie je bent**, **wat je nodig hebt** (en in welke volgorde je het vraagt), **de regels** waar het plan aan moet voldoen, en **wat je oplevert**. De laatste alinea zijn de grenzen. Een agent zonder regels maakt ook een plan, maar dan een willekeurig plan.
|
||||
|
||||
> De zin "Stel deze vragen een voor een" is belangrijker dan hij lijkt. Zonder die zin vuurt de agent alle vragen tegelijk af en haakt een leerling af. Met die zin wordt het een gesprek.
|
||||
|
||||
Het formulier slaat zichzelf op; onderaan zie je "Opgeslagen ... geleden".
|
||||
|
||||
> **Zelf kiezen: de planregels.** De vijf planregels komen uit de use case en zijn een didactische keuze, geen natuurwet. Jullie mentoren hebben misschien andere regels: geen huiswerk na 20:00, elke dag maximaal twee vakken, altijd beginnen met het moeilijkste vak. Vervang de regels door die van jullie school; de agent houdt zich eraan zolang ze concreet zijn (tijden, aantallen, volgorde).
|
||||
|
||||
---
|
||||
|
||||
## Stap 4. Voeg het toetsrooster toe
|
||||
|
||||
1. Scrol in het linkerpaneel naar beneden. Je ziet drie vakken: **SKILLS**, **BESTANDEN** en **TOOLS**, elk met een knop **Add**.
|
||||
|
||||

|
||||
|
||||
2. Klik bij **BESTANDEN** op **Add**. Het venster **Bestand uploaden** verschijnt.
|
||||
|
||||

|
||||
|
||||
3. Klik op **bladeren** en kies `toetsrooster-voorbeeld.csv`, of sleep het bestand in het vak.
|
||||
|
||||

|
||||
|
||||
4. Klik op **Uploaden**. Het bestand staat nu onder BESTANDEN en rechtsboven verschijnt "Bestand geüpload".
|
||||
|
||||

|
||||
|
||||
Bestanden in dit vak staan voor de agent klaar in zijn sandbox. Hij leest ze zelf als hij ze nodig heeft; je hoeft er in de instructie alleen naar te verwijzen, zoals in punt 1 van "Wat je nodig hebt".
|
||||
|
||||
> **Zelf kiezen: het rooster.** Het voorbeeldrooster is een CSV met zes kolommen: dag, datum, vak, tijd, duur_minuten, toetsstof. Maak hetzelfde bestand voor de echte toetsweek van een klas (zonder leerlinggegevens, want het is een rooster, geen leerlinglijst) en vervang het. Een Excel-bestand of een PDF van het rooster kan ook; de agent leest die zelf.
|
||||
|
||||
---
|
||||
|
||||
## Stap 5. Voeg een tool toe
|
||||
|
||||
De agent moet weten welke dag het vandaag is om "vanaf vandaag tot de laatste toets" te kunnen plannen. Een taalmodel weet dat niet uit zichzelf; daar is een tool voor.
|
||||
|
||||
1. Klik bij **TOOLS** op **Add**. Een lijst met tools klapt open, met bovenaan populaire tools uit de Marketplace en daaronder **All tools**.
|
||||
|
||||

|
||||
|
||||
2. Klik op **CurrentTime** in de lijst All tools. Rechts verschijnt **Add all**.
|
||||
|
||||

|
||||
|
||||
3. Klik op **Add all** en sluit de lijst met Escape. CurrentTime staat nu onder TOOLS.
|
||||
|
||||

|
||||
|
||||
> Meer tools is niet beter. Elke tool die je toevoegt, kan de agent ook gebruiken, en elke tool kost een stukje aandacht van het model. Voeg alleen toe wat de taak nodig heeft. Voor de planner is dat één tool.
|
||||
|
||||
Kijk ook even bij **SKILLS**: klik daar op **Add** en je ziet één optie, **Upload package**, een zipbestand met een SKILL.md erin. Skills zijn herbruikbare werkinstructies die je in meerdere agents kunt stoppen. Voor deze planner heb je ze niet nodig; sluit het menu met Escape.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Stap 6. Test als leerling
|
||||
|
||||
1. Klik rechtsboven in het chatvenster op **VOORBEELD**. Het venster wordt leeg en toont "Voer de agent uit als een afgeronde chat, precies zoals mensen die na publicatie ervaren".
|
||||
|
||||

|
||||
|
||||
2. Typ het eerste bericht en druk op Enter.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 1 | `Hoi, ik wil een studieplan voor de toetsweek.` |
|
||||
|
||||
De agent leest het rooster uit het bestand, vat het samen en stelt zijn eerste vraag. Boven het antwoord staat "Aan het nadenken · 8 s": zo lang was de agent bezig voordat hij antwoordde.
|
||||
|
||||

|
||||
|
||||
3. Beantwoord de vraag over de leermomenten.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 2 | `Ik kan leren van woensdag 7 tot en met donderdag 15 oktober, elke dag van 16:00 tot 18:00. Zaterdag 10 oktober niet. Zondag 11 oktober van 10:00 tot 12:00 en van 15:00 tot 17:00.` |
|
||||
|
||||
De agent herhaalt de momenten per dag en stelt de derde vraag: hoe moeilijk elk vak is.
|
||||
|
||||

|
||||
|
||||
4. Beantwoord de vraag over de vakken.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 3 | `Nederlands makkelijk, wiskunde moeilijk, Engels makkelijk, geschiedenis gemiddeld, biologie gemiddeld, Frans moeilijk.` |
|
||||
|
||||
Nu gaat de agent aan het werk. Dat duurt een halve minuut. Je ziet het plan per dag verschijnen, dan "Bestanden:" met eerst alleen studieplan.xlsx, en onderaan de knop **Stop responding** zolang hij bezig is.
|
||||
|
||||

|
||||
|
||||
5. Wacht tot de knop Stop responding weg is. Onder het plan staan nu twee blauwe links, **studieplan.xlsx** en **studieplan.ics**, en de afsluitende vraag "Wil je nog iets verschuiven?".
|
||||
|
||||

|
||||
|
||||
6. Klik op **Aan het nadenken · 31 s** boven het antwoord. Er klappen twee regels **Opdrachten uitgevoerd** uit: dat zijn de momenten waarop de agent iets in zijn sandbox deed.
|
||||
|
||||

|
||||
|
||||
7. Klik op de eerste **Opdrachten uitgevoerd**. Je ziet de opdracht die de agent zelf schreef: een Python-programma (`make_plan.py`) met daarin het rooster, de leermomenten en de regels, dat het Excel-bestand en het agendabestand maakt.
|
||||
|
||||

|
||||
|
||||
Dit is het verschil met een workflow. Jij hebt nergens gezegd "schrijf een programma". De agent heeft zelf bedacht dat een Excel-bestand maken het handigst gaat met een programmaatje, heeft dat geschreven, uitgevoerd, en de bestanden aan je teruggegeven. Gaat het mis, dan probeert hij het opnieuw. Dat is ook waarom hij meer kost en langer duurt.
|
||||
|
||||
8. Stel nog een vraag om te zien of de agent zich aan zijn regels houdt.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 4 | `Op dinsdag, woensdag en donderdag heb ik van 16:00 tot 16:40 niks. Kun je daar wiskunde en Frans nog een keer neerzetten?` |
|
||||
|
||||
De agent doet het niet zomaar: hij wijst erop dat dinsdag de avond voor geschiedenis is, woensdag de avond voor biologie, en dat daar volgens de regels alleen herhaling van dat vak hoort. Hij stelt een alternatief voor en vraagt wat je wilt.
|
||||
|
||||

|
||||
|
||||
> **Zelf kiezen: hoe streng.** Dat de agent hier tegenspreekt, komt door de regel "De avond voor een toets alleen herhalen". Wil je dat de leerling altijd het laatste woord heeft, voeg dan toe: "Als de leerling iets anders wil dan de regels, leg je één keer uit waarom de regel er is en doe je daarna wat de leerling vraagt."
|
||||
|
||||
---
|
||||
|
||||
## Stap 7. Publiceer
|
||||
|
||||
1. Klik onderaan het linkerpaneel op **Update publiceren**. De knop wordt grijs met een vinkje **Gepubliceerd**, en rechtsboven verschijnt "Action succeeded".
|
||||
|
||||

|
||||
|
||||
2. Klik in het linkermenu op **Toegangspunt**. Je ziet de **Webapp** met de **Toegangs-URL** en de **Backend service-API**.
|
||||
|
||||

|
||||
|
||||
3. Klik op **Openen** achter de URL. De webapp opent in een nieuw tabblad: een leeg chatvenster met de naam van de agent.
|
||||
|
||||

|
||||
|
||||
4. Typ een bericht om te controleren dat de gepubliceerde versie werkt.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 1 | `Hoi, kun je me helpen met plannen?` |
|
||||
|
||||

|
||||
|
||||
> Wijzig je later de instructie, dan verandert de webapp pas als je opnieuw op **Update publiceren** klikt. Tot die tijd staat er "Niet-gepubliceerde wijzigingen" onderaan.
|
||||
|
||||
---
|
||||
|
||||
## Stap 8. Kijk in de logs
|
||||
|
||||
1. Klik in het linkermenu op **Logs**. Elk gesprek via de webapp staat hier, met de eerste zin als titel, het aantal berichten en de tijd.
|
||||
|
||||

|
||||
|
||||
2. Klik op **Monitoring** voor de tellers: aantal berichten, actieve gebruikers, gemiddelde lengte van een gesprek en de snelheid van het model.
|
||||
|
||||

|
||||
|
||||
> Gesprekken uit het tabblad VOORBEELD staan niet in Logs; alleen gesprekken via de webapp of de API. Wil je een testgesprek terugzien, doe de test dan in de webapp.
|
||||
|
||||
---
|
||||
|
||||
## Controleren of het gelukt is
|
||||
|
||||
- Onder Agents staat de Toetsweekplanner zonder het label CONCEPT
|
||||
- Het model is gpt-5.4 (of een ander compatibel model), zonder label Incompatibel
|
||||
- Onder BESTANDEN staat toetsrooster-voorbeeld.csv, onder TOOLS staat CurrentTime
|
||||
- In VOORBEELD stelt de agent zijn vragen één voor één en komt hij pas na de derde vraag met een plan
|
||||
- Onder het plan staan twee links: studieplan.xlsx en studieplan.ics
|
||||
- De Toegangs-URL opent een werkende chat
|
||||
|
||||
---
|
||||
|
||||
## Als het misgaat
|
||||
|
||||
| Wat je ziet | Wat er aan de hand is |
|
||||
| --- | --- |
|
||||
| Label **Incompatibel** bij het model | Dit model kan de Agent Console niet aan. Kies gpt-5.4 of hoger, of een Gemini-model (stap 2) |
|
||||
| De agent stelt alle vragen tegelijk | De zin "Stel deze vragen een voor een" ontbreekt in de instructie |
|
||||
| De agent vraagt om het rooster, terwijl het bestand er staat | De bestandsnaam in de instructie klopt niet met het geüploade bestand, of het bestand staat er nog niet (stap 4) |
|
||||
| Het plan zet blokken op momenten die je niet opgaf, of laat leermomenten ongebruikt | Het model interpreteert de regels; controleer het plan altijd tegen de regels (zie ook Maak hem van jou). In onze test bleven op dinsdag, woensdag en donderdag 40 minuten ongebruikt omdat de regel "avond voor de toets alleen herhalen" botst met "moeilijke vakken twee keer zoveel tijd" |
|
||||
| Alleen studieplan.xlsx verschijnt, geen .ics | De agent is nog bezig; wacht tot Stop responding weg is. Blijft het bestand weg, vraag dan "Maak ook het ics-bestand" |
|
||||
| Een lege antwoordballon die blijft hangen | Bèta-gedrag: de agent is gestopt zonder tekst. Klik op het pijltje "opnieuw" onder het bericht, of begin een nieuw gesprek |
|
||||
| Het gesprek in VOORBEELD staat niet in Logs | Normaal; alleen webapp- en API-gesprekken worden gelogd (stap 8) |
|
||||
| De credits lopen hard terug | Elk gesprek kost tienduizenden tokens. Zet OpenAI op Gebruiksprioriteit: API-sleutel, of test minder vaak |
|
||||
| "Upgrade to create more apps" | Sandbox-limiet van vijf apps; agents tellen mee. Verwijder een oude app in Studio |
|
||||
|
||||
---
|
||||
|
||||
## Maak hem van jou
|
||||
|
||||
Het rooster is verzonnen en de planregels zijn een voorbeeld. Dit hoofdstuk helpt je de agent om te bouwen naar jullie school, binnen het privacykader aan het begin van deze handleiding. Van makkelijk naar moeilijk.
|
||||
|
||||
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
|
||||
| --- | --- | --- | --- |
|
||||
| Toon en aanspreekvorm (je, u, korter, met emoji) | Stap 3, eerste alinea van de prompt | makkelijk | Een agent die klinkt zoals jullie mentoren praten |
|
||||
| Jullie planregels | Stap 3, kopje Planregels | makkelijk | Een plan dat past bij de studieles die jullie al geven |
|
||||
| Het echte toetsrooster van een klas | Stap 4, bestand vervangen | makkelijk | Een planner die klaarstaat voor de komende toetsweek |
|
||||
| Alleen een Excel, geen agendabestand (of andersom) | Stap 3, kopje Wat je oplevert | makkelijk | Minder werk voor de agent, dus sneller en goedkoper |
|
||||
| Een derde vraag: "welke dag wil je vrij houden?" | Stap 3, kopje Wat je nodig hebt | gemiddeld | Een plan met ruimte voor sport of werk |
|
||||
| Een leerling die tegenspreekt krijgt gelijk | Stap 3, extra regel (zie het groene kader bij stap 6) | gemiddeld | Minder discussie, meer eigenaarschap bij de leerling |
|
||||
| Een studiewijzer per vak als extra bestand | Stap 4, meer bestanden | gemiddeld | Blokken met precieze stof ("paragraaf 3.2 en de begrippenlijst") |
|
||||
| Een tool die het rooster uit Magister of Somtoday haalt | Stap 5, MCP- of API-tool | moeilijk | Geen CSV meer maken; alleen mogelijk in de SOML-omgeving met de juiste koppelingen |
|
||||
| Draaien in de SOML-omgeving met Gemini via Vertex AI | Export DSL, importeren, model opnieuw koppelen | moeilijk | De route die voor echte leerlingen verplicht is |
|
||||
|
||||
**Drie opdrachten**
|
||||
|
||||
1. **Jullie regels.** Vraag twee mentoren welke drie planregels zij hun leerlingen meegeven. Zet die in de prompt in plaats van de onze en draai hetzelfde testgesprek (stap 6). Vergelijk de twee plannen: welke zou een leerling echt volgen?
|
||||
2. **Zoek de fout.** Neem het plan uit je test en controleer het regel voor regel: staat elk vak minstens twee keer, is de laatste keer de dag voor de toets, zijn er geen blokken buiten de opgegeven momenten? Schrijf op wat er niet klopt en pas de prompt aan tot het wel klopt. Dit is de kern van werken met agents: jij blijft de controleur.
|
||||
3. **Eén tool erbij.** Voeg de tool **Code Interpreter** toe (stap 5) en vraag de agent een staafdiagram te maken van de leertijd per vak. Kijk daarna bij Opdrachten uitgevoerd wat hij deed. Verwijder de tool weer als je hem niet nodig hebt.
|
||||
|
||||
**Checklist voordat je eigen materiaal gebruikt**
|
||||
|
||||
- [ ] Er gaat geen gesprek met een echte leerling door Dify-cloud; alleen jijzelf of een collega als "leerling"
|
||||
- [ ] Voor echte leerlingen: de agent draait in de SOML-omgeving via het centrale project, de DPIA is gedaan en ouders zijn geïnformeerd
|
||||
- [ ] Het rooster dat je uploadt bevat geen leerlingnamen of klaslijsten
|
||||
- [ ] De grenzen staan in de prompt: geen cijfers, oordelen of voorspellingen
|
||||
- [ ] Iemand controleert een handvol plannen tegen de regels voordat leerlingen de link krijgen
|
||||
- [ ] Er is één eigenaar van de agent die de prompt bijhoudt en opnieuw publiceert
|
||||
|
||||
---
|
||||
|
||||
## Beheer
|
||||
|
||||
**Wat Dify bewaart.** Elk gesprek via de webapp staat in **Logs**, inclusief wat de leerling typte. Voor het prototype met jou als leerling is dat geen probleem. Voor echte leerlingen is dit de reden dat Dify-cloud niet mag: je kunt niet per leerling wissen en de bewaartermijn is niet vast te leggen. In de SOML-omgeving hoort een bewaartermijn bij de agent.
|
||||
|
||||
**Kosten.** De Agent Console is de duurste manier van bouwen in Dify. Een workflow uit handleiding 1 doet één modelaanroep per run; deze agent doet er per gesprek tien tot twintig, plus het schrijven en draaien van programma's. Reken via een eigen sleutel op 5 tot 15 cent per compleet gesprek met gpt-5.4. Zet voor een klas van dertig leerlingen dus vooraf een limiet op de sleutel.
|
||||
|
||||
**Bèta.** De Agent Console kan van de ene op de andere week veranderen: andere knoppen, andere modellen die wel of niet compatibel zijn, ander gedrag bij bestanden. Bewaar de prompt ook buiten Dify (in deze handleiding staat hij), zodat je de agent in vijf minuten opnieuw kunt maken.
|
||||
|
||||
**Van prototype naar de Experimenteerruimte.** Via de drie puntjes op de kaart van de agent (**Export DSL**) sla je de agent op als bestand en importeer je hem in een ander Dify-account via **Create** → **Import DSL file**. Het model moet daar opnieuw gekoppeld worden; bestanden en tools gaan mee. Voor de Gemini-route: Integraties → Model Provider → Gemini → sleutel uit het centrale SOML-project.
|
||||
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 133 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 40 KiB |
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Bouwt handleiding-dify-lesmateriaal-check.html, .pdf en .docx. Gebruik: python3 build.py
|
||||
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
|
||||
import runpy, sys
|
||||
from pathlib import Path
|
||||
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-dify-lesmateriaal-check.md")]
|
||||
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"openapi": "3.0.1",
|
||||
"info": {
|
||||
"title": "Edurep zoeken",
|
||||
"description": "Zoekt open leermateriaal in Edurep, de zoekmachine van Kennisnet achter Wikiwijs. Geeft per resultaat titel, webadres, beschrijving en licentie (LOM-XML).",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"servers": [
|
||||
{ "url": "https://wszoeken.edurep.kennisnet.nl" }
|
||||
],
|
||||
"paths": {
|
||||
"/edurep/sruns": {
|
||||
"get": {
|
||||
"operationId": "zoekOpenLeermateriaal",
|
||||
"summary": "Zoek open leermateriaal op Wikiwijs en andere bronnen",
|
||||
"description": "Zoekt in Edurep. Gebruik in query een of meer zoekwoorden, eventueel gevolgd door AND meta.repository.id exact wikiwijsmaken om alleen Wikiwijs-materiaal te krijgen. Het antwoord is XML met per record czp:title, czp:location (webadres), czp:description en czp:rights (licentie).",
|
||||
"parameters": [
|
||||
{ "name": "query", "in": "query", "required": true, "description": "Zoekvraag in CQL, bijvoorbeeld: voedselweb AND meta.repository.id exact wikiwijsmaken", "schema": { "type": "string" } },
|
||||
{ "name": "operation", "in": "query", "required": true, "description": "Altijd searchRetrieve", "schema": { "type": "string", "default": "searchRetrieve" } },
|
||||
{ "name": "version", "in": "query", "required": true, "description": "Altijd 1.2", "schema": { "type": "string", "default": "1.2" } },
|
||||
{ "name": "recordSchema", "in": "query", "required": true, "description": "Altijd lom", "schema": { "type": "string", "default": "lom" } },
|
||||
{ "name": "maximumRecords", "in": "query", "required": false, "description": "Aantal resultaten, standaard 5, maximaal 10", "schema": { "type": "integer", "default": 5 } }
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "Zoekresultaten als XML" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,395 @@
|
||||
<!--
|
||||
VOOR DE BEWERKER
|
||||
|
||||
Handleiding 6: Agent Console (bèta), Lesmateriaal-check: lesmateriaal beoordelen en aanpassen
|
||||
voor leerlingen met een ondersteuningsbehoefte, met een eigen zoektool voor open leermateriaal.
|
||||
Beelden in beelden/, vastgelegd op 20 september 2026 (Dify cloud); twee vensterformaten, het
|
||||
bouwscript schaalt op breedte.
|
||||
|
||||
Omzetten naar HTML, PDF en Word: python3 build.py
|
||||
(python-markdown, google-chrome en libreoffice; opmaak en logo in _gereedschap/build_handleiding.py)
|
||||
|
||||
Opmaakafspraken (zie ook README.md):
|
||||
- Genummerde lijst = handelingen (klikken, kiezen)
|
||||
- Tabel "Wat je intypt" = waarden voor formuliervelden
|
||||
- Codeblok (```) = tekst die letterlijk overgetypt wordt (label "Intypen")
|
||||
- Blockquote (>) = valkuil of tip (oranje kader)
|
||||
- Blockquote die begint met **Zelf kiezen** = keuzemoment voor de deelnemer (groen kader)
|
||||
|
||||
Bestanden in deze map:
|
||||
lesbrief-ecologie.pdf fictieve lesbrief biologie 3 havo (zelfde als in handleiding 8)
|
||||
stercollectie-voedselweb-hv3.pdf voorbeeld van wat de zoektool vindt (VO-content, CC BY-SA 4.0)
|
||||
edurep-zoeken.openapi.json het schema van de zoektool, om te plakken bij stap 3
|
||||
Gepubliceerde voorbeeld-app: https://udify.app/agent/lkWKedkSW2d3nqBV
|
||||
-->
|
||||
|
||||
# Bouwen in de Agent Console: de Lesmateriaal-check
|
||||
|
||||
**Handleiding 6: lesmateriaal toegankelijk maken voor alle leerlingen**
|
||||
Experimenteerruimte ICT SOML · LeX Consultancy B.V. · 20 september 2026
|
||||
|
||||
Je bouwt een agent die een docent helpt zijn lesmateriaal toegankelijk te maken voor leerlingen met een ondersteuningsbehoefte. De agent leest de lesbrief, vraagt welke behoeften in de klas voorkomen, beoordeelt het materiaal op zeven punten, maakt aangepaste versies voor de docent en voor leerlingen, en zoekt op Wikiwijs naar open leermateriaal dat erbij past, met licentie.
|
||||
|
||||
Twee dingen zijn nieuw ten opzichte van handleiding 4. Ten eerste de didactiek: de agent werkt volgens **Universal Design for Learning** (UDL), het kader dat zegt dat je niet per leerling een uitzondering maakt, maar het materiaal zo ontwerpt dat het voor iedereen werkt. Ten tweede de techniek: je maakt een **eigen tool**. Dify heeft geen tool die Wikiwijs doorzoekt, dus je beschrijft de zoekmachine van Kennisnet (Edurep) in een klein schema, en daarmee kan de agent hem aanroepen. Dat is de stap van "tools kiezen uit een lijst" naar "elke website met een API als tool".
|
||||
|
||||
Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 uitziet. De Agent Console is **bèta**; wijkt je scherm af, volg dan wat je ziet en niet wat hier staat. Handleiding 4 legt de Agent Console zelf uit (model, prompt, bestanden, tools, publiceren); hier staan die stappen korter.
|
||||
|
||||
**Zo lees je deze handleiding**
|
||||
|
||||
| Vorm | Betekenis |
|
||||
| --- | --- |
|
||||
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
|
||||
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
|
||||
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
|
||||
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
|
||||
| Oranje kader | Een valkuil die je anders zelf ontdekt |
|
||||
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
|
||||
|
||||
---
|
||||
|
||||
## Lees dit eerst: wat mag wel en niet
|
||||
|
||||
Deze agent werkt met lesmateriaal, niet met leerlingen. Dat maakt hem een stuk lichter dan de Studiecoach uit handleiding 8 of de Toetsweekplanner uit handleiding 4. Toch zijn er grenzen:
|
||||
|
||||
| Wat | Afspraak |
|
||||
| --- | --- |
|
||||
| Wat erin gaat | Lesmateriaal: lesbrieven, studiewijzers, opdrachten. Geen leerlinglijsten, geen handelingsplannen, geen OPP's. De agent vraagt naar **behoeften in de klas**, nooit naar namen. |
|
||||
| Diagnoses | De agent stelt ze niet en de docent voert ze niet in. "Dyslexie" is hier een ondersteuningsbehoefte waar het materiaal rekening mee houdt, niet een kenmerk van een leerling. |
|
||||
| Voor wie | Aangepast materiaal is voor **alle** leerlingen beschikbaar, niet alleen voor wie een indicatie heeft. Dat is de kern van UDL en de afspraak van de Experimenteerruimte. |
|
||||
| Auteursrecht | Je eigen lesbrief mag de agent bewerken. Materiaal van een uitgever niet, tenzij de licentie dat toestaat. Open leermateriaal met een CC-licentie wel, met bronvermelding; bij CC BY-SA deel je je bewerking onder dezelfde licentie. |
|
||||
| Dify-cloud | Lesmateriaal is geen persoonsgegeven, dus dit prototype mag in Dify-cloud. Zodra er iets over leerlingen in zou gaan, geldt de route via de SOML-omgeving. |
|
||||
|
||||
---
|
||||
|
||||
## Voorbereiding
|
||||
|
||||
- Een Dify-account met toegang tot **Agents** (bèta) en een compatibel model; wij gebruiken **gpt-5.4** via een eigen OpenAI-sleutel (zie handleiding 4, stap 2).
|
||||
- De lesbrief `lesbrief-ecologie.pdf` uit de map van deze handleiding: vijf pagina's biologie voor 3 havo, fictief, dezelfde als in handleiding 8.
|
||||
- Het bestand `edurep-zoeken.openapi.json` uit de map: het schema van de zoektool. Je kunt het overtypen uit stap 3, maar plakken is sneller.
|
||||
- Kosten: dit is de zwaarste agent uit de serie. Eén complete beurt (lesbrief lezen, beoordelen, drie bestanden schrijven, vijf keer zoeken) kostte in onze test ruim 300.000 tokens, via een eigen sleutel ongeveer een euro. Op Dify-credits is dat een flink deel van een sandbox in één keer.
|
||||
|
||||
---
|
||||
|
||||
## Stap 1. Maak de agent
|
||||
|
||||
1. Klik in het linkermenu op **Agents**, dan op **Create** en **Create from Blank**.
|
||||
2. Vul de velden in.
|
||||
|
||||
| Veld op het scherm | Wat je intypt |
|
||||
| --- | --- |
|
||||
| Naam | `Lesmateriaal-check` |
|
||||
| Rol | `Toegankelijkheidscoach voor lesmateriaal` |
|
||||
| Beschrijving | `Beoordeelt lesmateriaal op toegankelijkheid voor leerlingen met een ondersteuningsbehoefte (UDL), maakt aangepaste versies voor docent en leerling en zoekt open leermateriaal op Wikiwijs.` |
|
||||
|
||||

|
||||
|
||||
3. Klik op **Create**.
|
||||
4. Klik op het modelveld, zoek `gpt-5.4` en kies **gpt-5.4**.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Stap 2. Bekijk welke tools er zijn
|
||||
|
||||
1. Scrol naar **TOOLS** en klik op **Add**. Bovenaan staan tabbladen: **All**, **Toolplugin**, **Swagger API**, **Workflow**, **MCP**.
|
||||
|
||||

|
||||
|
||||
Elk tabblad is een manier om een agent iets te laten doen buiten zijn eigen sandbox:
|
||||
|
||||
| Tabblad | Wat het is | Voorbeeld |
|
||||
| --- | --- | --- |
|
||||
| Toolplugin | Kant-en-klare tools uit de Marketplace | CurrentTime (handleiding 4), Tavily (zoeken op het web), Audio |
|
||||
| Swagger API | Een website of dienst met een API die jij beschrijft in een schema | De zoekmachine van Kennisnet, die je in stap 3 maakt |
|
||||
| Workflow | Een van je eigen Dify-workflows als tool | De Schoolnieuws-workflow uit handleiding 3 aanroepen vanuit een agent |
|
||||
| MCP | Een MCP-server (Model Context Protocol), de standaard waarmee AI-assistenten met systemen praten | Een koppeling met een leerlingvolgsysteem, in de SOML-omgeving |
|
||||
|
||||
Voor Wikiwijs bestaat geen kant-en-klare tool. Daarom maak je er zelf een via **Swagger API**. Sluit de kiezer met Escape.
|
||||
|
||||
---
|
||||
|
||||
## Stap 3. Maak een eigen tool: Edurep zoeken
|
||||
|
||||
Achter Wikiwijs zit **Edurep**, de zoekmachine van Kennisnet die open leermateriaal uit tientallen bronnen doorzoekbaar maakt. Edurep heeft een openbare zoekingang zonder sleutel. Je beschrijft die ingang in een schema (OpenAPI, ook wel Swagger genoemd): welk adres, welke parameters, wat er terugkomt. Dify maakt daar een tool van.
|
||||
|
||||
1. Klik in het linkermenu op **Integraties**, dan op **Swagger API as Tool**.
|
||||
|
||||

|
||||
|
||||
2. Klik op **Create a Swagger API as Tool**.
|
||||
3. Vul bij **Name** `Edurep zoeken` in en plak bij **Schema** de tekst hieronder (of de inhoud van `edurep-zoeken.openapi.json`).
|
||||
|
||||
```
|
||||
{
|
||||
"openapi": "3.0.1",
|
||||
"info": {
|
||||
"title": "Edurep zoeken",
|
||||
"description": "Zoekt open leermateriaal in Edurep, de zoekmachine van Kennisnet achter Wikiwijs. Geeft per resultaat titel, webadres, beschrijving en licentie (LOM-XML).",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"servers": [
|
||||
{ "url": "https://wszoeken.edurep.kennisnet.nl" }
|
||||
],
|
||||
"paths": {
|
||||
"/edurep/sruns": {
|
||||
"get": {
|
||||
"operationId": "zoekOpenLeermateriaal",
|
||||
"summary": "Zoek open leermateriaal op Wikiwijs en andere bronnen",
|
||||
"description": "Zoekt in Edurep. Gebruik in query een of meer zoekwoorden, eventueel gevolgd door AND meta.repository.id exact wikiwijsmaken om alleen Wikiwijs-materiaal te krijgen. Het antwoord is XML met per record czp:title, czp:location (webadres), czp:description en czp:rights (licentie).",
|
||||
"parameters": [
|
||||
{ "name": "query", "in": "query", "required": true, "description": "Zoekvraag in CQL, bijvoorbeeld: voedselweb AND meta.repository.id exact wikiwijsmaken", "schema": { "type": "string" } },
|
||||
{ "name": "operation", "in": "query", "required": true, "description": "Altijd searchRetrieve", "schema": { "type": "string", "default": "searchRetrieve" } },
|
||||
{ "name": "version", "in": "query", "required": true, "description": "Altijd 1.2", "schema": { "type": "string", "default": "1.2" } },
|
||||
{ "name": "recordSchema", "in": "query", "required": true, "description": "Altijd lom", "schema": { "type": "string", "default": "lom" } },
|
||||
{ "name": "maximumRecords", "in": "query", "required": false, "description": "Aantal resultaten, standaard 5, maximaal 10", "schema": { "type": "integer", "default": 5 } }
|
||||
],
|
||||
"responses": {
|
||||
"200": { "description": "Zoekresultaten als XML" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Zodra het schema klopt, verschijnt onder **Available Tools** één regel: **zoekOpenLeermateriaal**, methode get, pad /edurep/sruns.
|
||||
|
||||

|
||||
|
||||
Wat er in het schema staat, in gewone taal: de **servers**-regel is het adres van de zoekmachine. Het **pad** /edurep/sruns is de zoekingang. De **parameters** zijn de velden die je meegeeft: `query` is de zoekvraag, de andere vier zijn vaste waarden die Edurep nu eenmaal verwacht. De **description**-teksten zijn niet voor jou maar voor de agent: daaruit leert hij wanneer en hoe hij de tool gebruikt. Schrijf ze dus in gewone zinnen, met een voorbeeld.
|
||||
|
||||
4. Laat **Authorization method** op None staan (Edurep vraagt geen sleutel) en klik op **Save**. De tool staat nu in de lijst.
|
||||
|
||||

|
||||
|
||||
5. Klik op de kaart. Rechts zie je de tool met **1 ACTION INCLUDED**.
|
||||
|
||||

|
||||
|
||||
6. Klik op **Configure** om te testen. Het schema opent opnieuw.
|
||||
|
||||

|
||||
|
||||
7. Klik in de tabel Available Tools op **Test** en vul de parameters in.
|
||||
|
||||
| Parameter | Wat je intypt |
|
||||
| --- | --- |
|
||||
| query | `voedselweb AND meta.repository.id exact wikiwijsmaken` |
|
||||
| operation | `searchRetrieve` |
|
||||
| version | `1.2` |
|
||||
| recordSchema | `lom` |
|
||||
| maximumRecords | `3` |
|
||||
|
||||

|
||||
|
||||
8. Klik op **Test**. Onder Test Results verschijnt XML met `numberOfRecords` (30 voor voedselweb op Wikiwijs) en daaronder de records.
|
||||
|
||||

|
||||
|
||||
> De zoektaal van Edurep (CQL) wil losse woorden verbonden met AND: `ecologie AND voedselweb`. Typ je `ecologie voedselweb`, dan krijg je "Query Feature Unsupported" en nul resultaten. Het stuk `AND meta.repository.id exact wikiwijsmaken` beperkt tot Wikiwijs; laat je het weg, dan zoek je ook in bronnen als Groen Kennisnet en universiteitsbibliotheken.
|
||||
|
||||
> **Zelf kiezen: een andere bron.** Elke dienst met een openbare API kan zo een tool worden: de KNMI, het CBS, een bibliotheekcatalogus, de roostersoftware van school (met sleutel). Het schema is altijd hetzelfde patroon: adres, pad, parameters, beschrijving. Vraag de leverancier om de "OpenAPI-specificatie"; die kun je vaak rechtstreeks importeren via **Import from URL**.
|
||||
|
||||
9. Sluit het venster met **Cancel** (er is niets gewijzigd).
|
||||
|
||||
---
|
||||
|
||||
## Stap 4. Schrijf de instructie
|
||||
|
||||
1. Ga terug naar **Agents** → **Lesmateriaal-check** → **Configureren**.
|
||||
2. Klik in het veld **PROMPT** en plak de instructie.
|
||||
|
||||
```
|
||||
Je bent de Lesmateriaal-check: een coach die docenten helpt hun lesmateriaal toegankelijk te maken voor alle leerlingen, ook leerlingen met een ondersteuningsbehoefte. Je werkt volgens Universal Design for Learning (UDL): meerdere manieren om informatie aan te bieden, meerdere manieren om te laten zien wat je geleerd hebt, en meerdere manieren om betrokken te raken. Je spreekt de docent aan met je, zakelijk en zonder jargon.
|
||||
|
||||
Zo werk je:
|
||||
1. Vraag om het lesmateriaal als het er nog niet is. Staat er al een bestand in je bestanden (lesbrief-ecologie.pdf), gebruik dat dan als de docent niets uploadt.
|
||||
2. Vraag welke ondersteuningsbehoeften in de klas voorkomen. Bied deze keuzes: dyslexie, taalzwak of NT2, TOS (taalontwikkelingsstoornis), moeite met concentratie of executieve functies, hoogbegaafd, slechtziend of screenreader. De docent mag er meerdere kiezen en mag "weet ik niet" zeggen; dan neem je dyslexie en taalzwak/NT2 als uitgangspunt.
|
||||
3. Beoordeel het materiaal. Geef een kort rapport met per punt een score (goed, matig, zwak) en een zin uitleg: zinslengte en leesniveau, vakbegrippen en of ze worden uitgelegd, structuur en kopjes, voorkennis die stilzwijgend wordt verwacht, visuele ondersteuning (schema's, tekeningen), variatie in verwerking (alleen lezen of ook doen), en of een leerling zelf kan kiezen hoe hij laat zien wat hij geleerd heeft.
|
||||
4. Maak op basis van de gekozen ondersteuningsbehoeften bestanden in je sandbox en lever ze op:
|
||||
- docent-notitie.md: per gekozen ondersteuningsbehoefte drie concrete aanpassingen in de les (niet in de tekst), plus wat je in de tekst hebt veranderd en waarom.
|
||||
- leerling-versie-toegankelijk.md: dezelfde inhoud als het materiaal, maar met korte zinnen (maximaal 15 woorden), elk vakbegrip bij de eerste keer uitgelegd, een begrippenlijst bovenaan, tussenkopjes per alinea, en na elke paragraaf een controlevraag. Laat geen inhoud weg; vereenvoudig de vorm, niet de stof.
|
||||
- leerling-versie-verdieping.md, alleen als hoogbegaafd is gekozen: dezelfde stof met twee verdiepende vragen per paragraaf en een onderzoeksopdracht.
|
||||
5. Zoek open leermateriaal met de tool Edurep zoeken. Verbind de zoekwoorden met AND, bijvoorbeeld: ecologie AND voedselweb AND meta.repository.id exact wikiwijsmaken (het laatste deel beperkt tot Wikiwijs). Doe twee of drie zoekopdrachten met verschillende kernbegrippen. Kies uit de resultaten maximaal vijf bronnen die passen bij het onderwerp en het niveau, en geef per bron: titel, webadres, licentie, en voor welke ondersteuningsbehoefte dit materiaal helpt (bijvoorbeeld: veel beeld, korte teksten, oefeningen). Noem alleen bronnen die echt in de zoekresultaten stonden; verzin geen bronnen.
|
||||
6. Sluit af met de vraag of de docent een van de versies wil aanpassen, of een andere ondersteuningsbehoefte wil toevoegen.
|
||||
|
||||
Regels:
|
||||
- Je verandert de leerdoelen en de stof niet; je verandert de vorm.
|
||||
- Je noemt geen namen van leerlingen en je vraagt er niet naar. Je werkt met behoeften, niet met diagnoses van personen.
|
||||
- Je geeft geen medisch of psychologisch advies en stelt geen diagnoses.
|
||||
- Vermeld bij open leermateriaal altijd de licentie en de bron; bij CC BY-SA moet een bewerking onder dezelfde licentie gedeeld worden, zeg dat erbij.
|
||||
- Alle bestanden schrijf je in het Nederlands, in markdown.
|
||||
```
|
||||
|
||||

|
||||
|
||||
De instructie volgt de opbouw van handleiding 4 (wie, werkwijze, wat je oplevert, regels), met twee toevoegingen. De zeven beoordelingspunten in stap 3 zijn de vertaling van de drie UDL-principes naar iets wat je aan een tekst kunt aflezen. En stap 5 vertelt de agent precies hoe hij de eigen tool moet aanroepen, inclusief de AND-regel; zonder die zin probeert hij het eerst fout en dan pas goed (zie stap 6).
|
||||
|
||||
> **Zelf kiezen: de ondersteuningsbehoeften.** De zes behoeften in punt 2 zijn een keuze. Jullie ondersteuningscoördinator heeft misschien een andere lijst, of wil "langdurig ziek" of "doof of slechthorend" erbij. Elke behoefte die je toevoegt, moet ook in punt 4 een antwoord krijgen: wat verandert er dan in de tekst of in de les? Anders noemt de agent de behoefte wel maar doet hij er niets mee.
|
||||
|
||||
> **Zelf kiezen: wat de leerlingversie doet.** "Maximaal 15 woorden per zin, begrippenlijst bovenaan, controlevraag per paragraaf" zijn concrete regels waar je op kunt controleren. Wil je liever een versie met pictogrammen, met een samenvatting per paragraaf, of in het Engels voor een nieuwkomer: zet het er net zo concreet in.
|
||||
|
||||
---
|
||||
|
||||
## Stap 5. Voeg de lesbrief en de tool toe
|
||||
|
||||
1. Klik bij **BESTANDEN** op **Add**, kies `lesbrief-ecologie.pdf` en klik op **Uploaden**.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
2. Klik bij **TOOLS** op **Add**, klik op het tabblad **Swagger API**, klik op **Edurep zoeken** en dan op **Add all**. Sluit de kiezer met Escape. Onder TOOLS staat nu Edurep zoeken.
|
||||
|
||||
> De lesbrief in BESTANDEN is het voorbeeld voor de test. In de webapp kan een docent straks zijn eigen lesbrief meesturen via het paperclipje in de chat; de agent gebruikt dan dat bestand en niet het voorbeeld (dat staat zo in punt 1 van de instructie).
|
||||
|
||||
---
|
||||
|
||||
## Stap 6. Test als docent
|
||||
|
||||
1. Klik rechtsboven op **VOORBEELD**.
|
||||
|
||||

|
||||
|
||||
2. Typ het eerste bericht.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 1 | `Hoi, ik geef biologie in 3 havo. Kun je mijn lesbrief over ecologie bekijken?` |
|
||||
|
||||
De agent ziet de lesbrief bij zijn bestanden en stelt de vraag over ondersteuningsbehoeften, met de zes keuzes en "weet ik niet".
|
||||
|
||||

|
||||
|
||||
3. Kies drie behoeften.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 2 | `Dyslexie, taalzwak of NT2, en hoogbegaafd.` |
|
||||
|
||||
Nu gaat de agent aan het werk, en dat duurt ruim een minuut. Boven het antwoord zie je wat hij doet: vier keer **Opdrachten uitgevoerd** (de lesbrief lezen, de drie bestanden schrijven) en vijf keer **zoekOpenLeermateriaal** (de eigen tool). Onderaan staat **Stop responding** zolang hij bezig is.
|
||||
|
||||

|
||||
|
||||
4. Wacht tot het antwoord compleet is. Het begint met het **Kort rapport**: zeven punten met een score en een zin uitleg. Voor onze lesbrief: zinslengte matig, vakbegrippen goed, structuur goed, voorkennis matig, visuele ondersteuning zwak, variatie in verwerking matig, keuze in hoe je laat zien wat je geleerd hebt zwak.
|
||||
|
||||

|
||||
|
||||
5. Daaronder staan de **Gemaakte bestanden** als links: docent-notitie.md, leerling-versie-toegankelijk.md en, omdat hoogbegaafd gekozen is, leerling-versie-verdieping.md.
|
||||
|
||||

|
||||
|
||||
6. Als laatste het **Open leermateriaal uit Wikiwijs**: vijf bronnen met webadres, licentie, voor welke behoefte ze helpen en waarom. Twee ervan zijn CC BY-SA, met de waarschuwing dat een bewerking onder dezelfde licentie gedeeld moet worden. De eerste bron is de Stercollectie-module van VO-content die ook bij handleiding 8 hoort.
|
||||
|
||||

|
||||
|
||||
7. Klik op **Aan het nadenken · 1 min 20 s** om te zien wat de agent deed.
|
||||
|
||||

|
||||
|
||||
8. Klik op de eerste **zoekOpenLeermateriaal**. Je ziet de REQUEST (de zoekvraag die de agent zelf formuleerde) en de RESPONSE van Edurep. In onze test ging de eerste zoekopdracht mis: de agent zette drie woorden los achter elkaar, Edurep antwoordde "Query Feature Unsupported", en de agent probeerde het daarna met AND. Dat is precies het gedrag van een agent: proberen, kijken, opnieuw.
|
||||
|
||||

|
||||
|
||||
9. Vraag om een stukje van de leerlingversie te zien.
|
||||
|
||||
| Bericht | Wat je intypt |
|
||||
| --- | --- |
|
||||
| 3 | `Laat de begrippenlijst en paragraaf 1 uit leerling-versie-toegankelijk.md hier in de chat zien.` |
|
||||
|
||||
De begrippenlijst heeft negentien begrippen, elk in één zin uitgelegd. Paragraaf 1 heeft tussenkopjes, korte zinnen en na elk stuk een controlevraag. Vergelijk met de oorspronkelijke lesbrief: de inhoud is hetzelfde, de vorm niet.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
> De bestanden staan in de sandbox van de agent en zijn via de links te downloaden. Ze zijn markdown (.md): platte tekst met kopjes, te openen in elke editor en te plakken in Word. Wil je meteen een Word-bestand, zet dan in punt 4 van de instructie ".docx" in plaats van ".md"; de agent maakt het dan met een programmaatje, zoals de Toetsweekplanner een Excel maakt.
|
||||
|
||||
---
|
||||
|
||||
## Stap 7. Publiceer
|
||||
|
||||
1. Klik op **Update publiceren**. De knop wordt grijs met **Gepubliceerd**.
|
||||
|
||||

|
||||
|
||||
2. Klik op **Toegangspunt** voor de webapp-link.
|
||||
|
||||

|
||||
|
||||
Wie de link krijgt, kan zijn eigen lesbrief meesturen via het paperclipje en krijgt hetzelfde rapport, dezelfde bestanden en dezelfde zoekresultaten. Gesprekken via de webapp staan in **Logs** (zie handleiding 4, stap 8).
|
||||
|
||||
---
|
||||
|
||||
## Controleren of het gelukt is
|
||||
|
||||
- Onder Integraties → Swagger API as Tool staat Edurep zoeken met één actie, en de test geeft numberOfRecords groter dan 0
|
||||
- Onder TOOLS van de agent staat Edurep zoeken; onder BESTANDEN staat de lesbrief
|
||||
- De agent vraagt eerst naar ondersteuningsbehoeften en beoordeelt pas daarna
|
||||
- Het rapport heeft zeven punten met een score
|
||||
- Er zijn twee bestanden (drie als hoogbegaafd is gekozen) en maximaal vijf bronnen met licentie
|
||||
- De Toegangs-URL opent een werkende chat
|
||||
|
||||
---
|
||||
|
||||
## Als het misgaat
|
||||
|
||||
| Wat je ziet | Wat er aan de hand is |
|
||||
| --- | --- |
|
||||
| Bij het plakken van het schema verschijnt geen tool onder Available Tools | Het JSON klopt niet: een komma of accolade te veel of te weinig. Plak het bestand `edurep-zoeken.openapi.json` opnieuw |
|
||||
| Test geeft `Query Feature Unsupported` | Zoekwoorden zonder AND ertussen (stap 3, oranje kader) |
|
||||
| Test geeft numberOfRecords 0 | Het zoekwoord komt niet voor, of `exact wikiwijsmaken` is verkeerd gespeld |
|
||||
| De agent noemt bronnen die niet in de RESPONSE staan | Het model vult aan uit eigen geheugen. De regel "verzin geen bronnen" staat in de instructie; controleer de links altijd zelf |
|
||||
| De agent maakt geen bestanden, alleen tekst | Het woord "sandbox" ontbreekt in punt 4 van de instructie, of het model is niet compatibel (handleiding 4, stap 2) |
|
||||
| De leerlingversie laat stukken weg | De zin "Laat geen inhoud weg; vereenvoudig de vorm, niet de stof" ontbreekt |
|
||||
| De agent vraagt naar namen van leerlingen | De regel "Je noemt geen namen van leerlingen en je vraagt er niet naar" ontbreekt |
|
||||
| Het antwoord komt na een minuut nog niet | Normaal voor deze agent: lezen, drie bestanden schrijven en vijf keer zoeken kost tijd. Wacht tot Stop responding weg is |
|
||||
| De credits of de OpenAI-kosten lopen hard op | Elke beurt is 100.000 tot 300.000 tokens. Test met één of twee behoeften, niet met alle zes |
|
||||
|
||||
---
|
||||
|
||||
## Maak hem van jou
|
||||
|
||||
De lesbrief is verzonnen en de zes behoeften zijn een voorbeeld. Dit hoofdstuk helpt je de agent om te bouwen naar jullie school en jullie vak. Van makkelijk naar moeilijk.
|
||||
|
||||
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
|
||||
| --- | --- | --- | --- |
|
||||
| Je eigen lesbrief als voorbeeld | Stap 5, bestand vervangen | makkelijk | Een demo met materiaal dat collega's herkennen |
|
||||
| Andere ondersteuningsbehoeften | Stap 4, punt 2 en 4 van de prompt | makkelijk | Een lijst die past bij jullie ondersteuningsstructuur |
|
||||
| Bestanden als .docx in plaats van .md | Stap 4, punt 4 | makkelijk | Meteen te openen in Word |
|
||||
| Alleen Wikiwijs, of juist alle bronnen van Edurep | Stap 4, punt 5 (het stuk `AND meta.repository.id ...` weglaten) | makkelijk | Meer of minder zoekresultaten |
|
||||
| Een score per UDL-principe in plaats van zeven losse punten | Stap 4, punt 3 | gemiddeld | Een rapport dat aansluit bij de UDL-taal van jullie school |
|
||||
| Een vierde bestand: ouderbrief over de aangepaste versie | Stap 4, punt 4 | gemiddeld | Communicatie erbij, in dezelfde beurt |
|
||||
| Kerndoelen en leerdoelen erbij (SLO) | Stap 3, tweede eigen tool op opendata.slo.nl (sleutel aanvragen) | gemiddeld | De agent zegt welke leerdoelen het materiaal dekt en wat ontbreekt |
|
||||
| De agent als stap in een workflow | Toegangspunt → Workflowtoegang; of de agent aanroepen vanuit een Chatflow | moeilijk | Een intake-formulier vooraf en een vaste opmaak achteraf |
|
||||
| Koppeling met de ELO of het leerlingvolgsysteem via MCP | Stap 2, tabblad MCP, in de SOML-omgeving | moeilijk | Materiaal rechtstreeks uit en naar de plek waar het gebruikt wordt |
|
||||
|
||||
**Drie opdrachten**
|
||||
|
||||
1. **Zoek de fout.** Laat de agent jouw eigen lesbrief beoordelen en lees het rapport kritisch: welke score klopt niet? Pas de zin bij dat punt in de instructie aan tot het rapport klopt. Zo leer je dat de zeven punten van jou zijn, niet van het model.
|
||||
2. **Controleer de bronnen.** Open de vijf Wikiwijs-links die de agent gaf en beoordeel ze zelf op niveau en bruikbaarheid. Hoeveel had je zelf gekozen? Schrijf in de instructie erbij wat een bron voor jou bruikbaar maakt.
|
||||
3. **Maak een tweede tool.** Beschrijf een andere openbare API in een schema (de KNMI, het CBS, een woordenboek) en voeg hem toe. Laat de agent hem gebruiken en kijk bij REQUEST en RESPONSE wat er heen en weer gaat. Daarna begrijp je elke tool die je ooit tegenkomt.
|
||||
|
||||
**Checklist voordat je eigen materiaal gebruikt**
|
||||
|
||||
- [ ] Het materiaal dat je uploadt is van jezelf of heeft een licentie die bewerken toestaat
|
||||
- [ ] Er staan geen leerlinggegevens in het materiaal of in het gesprek
|
||||
- [ ] Aangepaste versies zijn voor alle leerlingen beschikbaar, niet alleen voor wie een indicatie heeft
|
||||
- [ ] Bij bronnen met CC BY-SA deel je je bewerking onder dezelfde licentie, met bronvermelding
|
||||
- [ ] Iemand leest de leerlingversie na voordat die de klas in gaat; de agent vereenvoudigt soms net te veel
|
||||
- [ ] Er is één eigenaar van de agent en van de tool
|
||||
|
||||
---
|
||||
|
||||
## Beheer
|
||||
|
||||
**Wat Dify bewaart.** Gesprekken via de webapp staan in Logs, inclusief het geüploade lesmateriaal en de gemaakte bestanden. Voor lesmateriaal is dat geen probleem; het is wel een reden om geen leerlinggegevens in de chat te zetten.
|
||||
|
||||
**Kosten.** Dit is de duurste agent van de serie: 100.000 tot 300.000 tokens per beurt, via een eigen sleutel 30 cent tot een euro. Een sectie die tien lesbrieven laat beoordelen is een paar euro kwijt. Zet een maandlimiet op de sleutel en laat de agent niet als open link rondgaan.
|
||||
|
||||
**De eigen tool.** Edurep is een openbare dienst van Kennisnet zonder sleutel. Verandert de zoekingang, dan faalt de tool; je merkt dat aan een RESPONSE met een foutmelding in plaats van XML. Het schema in `edurep-zoeken.openapi.json` is dan het enige wat je hoeft aan te passen. Meer over de zoektaal: developers.wiki.kennisnet.nl (Edurep).
|
||||
|
||||
**Kerndoelen erbij.** SLO stelt kerndoelen, leerdoelen en examenprogramma's open via opendata.slo.nl, met een gratis sleutel. Daarmee kan de agent bij elke lesbrief zeggen welke doelen hij dekt. Dat is de tweede eigen tool uit Maak hem van jou; het schema volgt hetzelfde patroon als dat van Edurep, met een sleutel in het veld Authorization.
|
||||
|
||||
**Van prototype naar de Experimenteerruimte.** Via **Export DSL** gaat de agent als bestand mee; de eigen tool moet in het andere account opnieuw aangemaakt worden (Integraties → Swagger API as Tool, hetzelfde schema).
|
||||
@@ -5,6 +5,7 @@ vastgelegd. Hier staat per uitgave wat er veranderde.
|
||||
|
||||
## 2026-09-20, eerste uitgave
|
||||
|
||||
- Handleidingen 04 (Agent Console: Toetsweekplanner) en 06 (Agent Console: Lesmateriaal-check met eigen Edurep-zoektool).
|
||||
- Handleidingen 01, 02, 03, 05, 07 en 08, met "Zelf kiezen"-kaders en "Maak hem van jou".
|
||||
- Bijlagen: ontwerpkaart, ontwerppatronen, AI-tools in het onderwijs (met AVG, AI Act en EU-kaders).
|
||||
- Draaiboek en presentatie (22 dia's) van de workshop AI Agents met Dify.
|
||||
|
||||
@@ -15,7 +15,9 @@ Eigenaar en contact: Guido van Dijk, guido@l-e-x.nl, guido@ai-netwerk-limburg.nl
|
||||
| 01-workflow | Bouwen in Dify: van workflow naar agent | Beginners | 22 pp. |
|
||||
| 02-agent-kennisbank | Bouwen in Dify: een agent met eigen kennisbank | Beginners, vervolg op 01 | 21 pp. |
|
||||
| 03-schoolcommunicatie | Dify voor schoolcommunicatie: ouderbrief, schoolnieuws, balie | Teams communicatie | 34 pp. |
|
||||
| 04-agent-console | Bouwen in de Agent Console: de Toetsweekplanner (agent met bestand, tool en sandbox) | Mentoren, Experimenteerruimte | 26 pp. |
|
||||
| 05-transcriptietool | Bouwen in Dify: van opname naar verslag | Secties, teams | 28 pp. |
|
||||
| 06-inclusief-lesmateriaal | Bouwen in de Agent Console: de Lesmateriaal-check (UDL, eigen zoektool voor open leermateriaal) | Docenten, ondersteuningscoördinatoren | 26 pp. |
|
||||
| 07-schoolnieuws-met-controle | Schoolnieuws met controle: zelfkritiek en poortwachter, vervolg op 03 | Teams communicatie | 26 pp. |
|
||||
| 08-chatflow-studiecoach | Studiecoach biologie 3 havo: Chatflow met vier routes, geheugen en een docent in de lus | Docenten | 45 pp. |
|
||||
| 00-workshop | Draaiboek van de workshop AI Agents met Dify (2 uur): programma, werkvormen, valkuilen per blok | Begeleiders | 8 pp. |
|
||||
@@ -24,12 +26,26 @@ Eigenaar en contact: Guido van Dijk, guido@l-e-x.nl, guido@ai-netwerk-limburg.nl
|
||||
| 00-ontwerpkaart | Ontwerpkaart: één A4 om je app te ontwerpen voordat je klikt | Iedereen | 1 A4 |
|
||||
| 00-ai-tools | AI-tools in het onderwijs: wat zit er al in school, wat mag (AVG, AI Act), de EU-competentiekaders | Iedereen | 10 pp. |
|
||||
|
||||
In voorbereiding: 04 (Agent Console: Toetsweekplanner) en 06 (lesmateriaal beoordelen en
|
||||
aanpassen voor leerlingen met ondersteuning; het lesmateriaal staat al in de map).
|
||||
|
||||
Elke handleiding heeft per stap een groen kader "Zelf kiezen" (wat je vervangt door eigen materiaal,
|
||||
stijl of prompt) en een slothoofdstuk "Maak hem van jou" met aanpaspunten, opdrachten en een checklist.
|
||||
|
||||
## Waarvoor is welke app
|
||||
|
||||
Elke handleiding bouwt één app. Dit is waar ze voor bedoeld zijn en wanneer je welke kiest.
|
||||
|
||||
| App | Wat hij doet | Voor wie | Soort | Kies deze als |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Tekst op niveau (01) | Herschrijft een tekst naar een gekozen doelgroep of taalniveau | Docenten, communicatie | Workflow | Je wilt leren wat een workflow is: vaste stappen, één invoer, één uitvoer |
|
||||
| Schoolgids-assistent (02) | Beantwoordt vragen van ouders en leerlingen uit de schoolgids, met bronvermelding | Balie, mentoren, ouders | Agent met kennisbank | Je hebt een document waar steeds dezelfde vragen over komen |
|
||||
| Ouderbrief-assistent (03) | Schrijft een ouderbrief in de stijl van de school, op basis van de schrijfwijzer | Teams, teamleiders | Agent met kennisbank | Brieven moeten in één toon en één opmaak, door verschillende mensen |
|
||||
| Schoolnieuws (03 en 07) | Maakt van één bericht drie versies: website, ouderapp en social; in 07 met een controleur en een poortwachter die afkeurt wat niet aan de regels voldoet | Communicatiemedewerkers | Workflow | Je wilt zien hoe een app zichzelf controleert voordat iets naar buiten gaat |
|
||||
| Toetsweekplanner (04) | Maakt met een leerling een studieplan voor de toetsweek en levert Excel en agendabestand | Mentoren, leerlingen (na DPIA) | Agent Console | Je wilt zien wat een agent kan dat een workflow niet kan: zelf bepalen hoe, en bestanden maken |
|
||||
| Transcriptietool (05) | Zet een opname van een overleg om in een verslag met besluiten en actiepunten | Secties, teams | Workflow met tool | Je wilt een bestand als invoer en een tool (spraak naar tekst) in een workflow |
|
||||
| Lesmateriaal-check (06) | Beoordeelt lesmateriaal op toegankelijkheid (UDL), maakt versies voor docent en leerling en zoekt open leermateriaal op Wikiwijs | Docenten, ondersteuningscoördinatoren | Agent Console met eigen tool | Je wilt een eigen tool maken van een website met een API |
|
||||
| Studiecoach biologie (08) | Helpt een leerling met uitleg, hints en planning bij ecologie; stuurt persoonlijke vragen door naar de docent | Docenten, leerlingen (na DPIA) | Chatflow | Je wilt een gesprek met routes, geheugen en een mens in de lus |
|
||||
|
||||
De volgorde is ook een leerlijn: 01 en 02 in het eerste uur van de workshop, 03 en 07 als je een team wilt helpen, 05 en 08 als je een vak wilt bedienen, 04 en 06 als je wilt weten wat de Agent Console toevoegt.
|
||||
|
||||
## Voorbeeld-apps
|
||||
|
||||
De apps uit de handleidingen staan live om uit te proberen:
|
||||
@@ -38,7 +54,9 @@ De apps uit de handleidingen staan live om uit te proberen:
|
||||
- Schoolgids-assistent (02, met Balie-stand uit 03): https://udify.app/chat/cvLAmpk60m9HUXUy
|
||||
- Ouderbrief-assistent (03): https://udify.app/chat/OJCfxjBeBHCEbBPx
|
||||
- Schoolnieuws (03 en 07): https://udify.app/workflow/jJclFyX9BlteuHYi
|
||||
- Toetsweekplanner (04): https://udify.app/agent/rKoqw8rbmp0IF86Q
|
||||
- Transcriptietool (05): https://udify.app/workflow/7N5dNg8fD9qXHA80
|
||||
- Lesmateriaal-check (06): https://udify.app/agent/lkWKedkSW2d3nqBV
|
||||
- Studiecoach biologie (08): https://udify.app/chat/fP0TJW3s8IXOj9BO
|
||||
|
||||
## Zelf bouwen of bewerken
|
||||
|
||||
@@ -79,7 +79,10 @@ ol li { margin: .25em 0; }
|
||||
def read_source(src: Path) -> str:
|
||||
text = src.read_text(encoding="utf-8")
|
||||
# Het instructieblok voor de bewerker bovenin hoort niet in de uitgave.
|
||||
return re.sub(r"^\s*<!--.*?-->\s*", "", text, count=1, flags=re.S)
|
||||
text = re.sub(r"^\s*<!--.*?-->\s*", "", text, count=1, flags=re.S)
|
||||
# Twee kaders na elkaar (alleen een witregel ertussen) plakt python-markdown aan elkaar;
|
||||
# een leeg commentaar ertussen houdt ze apart, zodat een groen kader niet in een oranje valt.
|
||||
return re.sub(r"(\n> [^\n]*\n)\n(?=> )", r"\1\n<!-- -->\n\n", text)
|
||||
|
||||
|
||||
def logo_src(embed: bool) -> str:
|
||||
|
||||