diff --git a/00-ai-tools/ai-tools-in-het-onderwijs.pdf b/00-ai-tools/ai-tools-in-het-onderwijs.pdf index c642406..babccf5 100644 Binary files a/00-ai-tools/ai-tools-in-het-onderwijs.pdf and b/00-ai-tools/ai-tools-in-het-onderwijs.pdf differ diff --git a/00-ontwerpkaart/build.py b/00-ontwerpkaart/build.py index 29ce85f..221ba38 100644 --- a/00-ontwerpkaart/build.py +++ b/00-ontwerpkaart/build.py @@ -1,4 +1,7 @@ import runpy, sys from pathlib import Path -sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "ontwerpkaart.md")] -runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__") +here = Path(__file__).resolve().parent +bouw = here.parent / "_gereedschap" / "build_handleiding.py" +for md in [here / "ontwerpkaart.md"] + sorted((here / "voorbeelden").glob("*.md")): + sys.argv = ["build_handleiding.py", str(md)] + runpy.run_path(str(bouw), run_name="__main__") diff --git a/00-ontwerpkaart/maak_voorbeelden.py b/00-ontwerpkaart/maak_voorbeelden.py new file mode 100644 index 0000000..8fba0dc --- /dev/null +++ b/00-ontwerpkaart/maak_voorbeelden.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +"""Maakt de ingevulde ontwerpkaarten: één los A4 per app in voorbeelden/ en dezelfde vijf vakken +als hoofdstuk "De ontwerpkaart van deze app" in elke handleiding (tussen de markeringen + en ). Gebruik: python3 maak_voorbeelden.py +Daarna bouwen: python3 build.py (kaarten) en de build.py van elke handleiding. +""" +import re +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parent +UIT = HERE / "voorbeelden" + +KAARTEN = [ + dict(nr="01", map="01-workflow", md="handleiding-dify.md", app="Tekst op niveau", vorm="Workflow", zie="1", + wie="Een docent Nederlands met een leestekst uit de methode die te moeilijk is voor de helft van 3 havo. Heeft tien minuten voor de les, wil niet zelf herschrijven.", + erin="De tekst (geplakt, veld Paragraph) en het niveau uit een lijstje: groep 7, brugklas, 3 havo, 5 vwo (veld Select).", + eruit="De herschreven tekst op het gekozen niveau, met alle inhoud behouden en vakbegrippen uitgelegd in een bijzin; daaronder drie begripsvragen (feit, hoofdgedachte, toepassing) zonder antwoorden.", + regels="Korte zinnen, geen inhoud weglaten, geen vakbegrippen vervangen. Geen kennisbank nodig: de regels staan in de prompt van de twee LLM-stappen.", + tests=[("Een alinea uit een aardrijkskundemethode, niveau brugklas", "Kortere zinnen, zelfde feiten, drie vragen die over de tekst gaan"), + ("Dezelfde alinea, niveau 5 vwo", "Nauwelijks vereenvoudigd, vragen op analyseniveau"), + ("Een tekst met een tabel met cijfers, niveau groep 7", "De cijfers blijven kloppen; de app verzint geen nieuwe getallen")]), + dict(nr="02", map="02-agent-kennisbank", md="handleiding-dify-agent.md", app="Schoolgids-assistent", vorm="Agent met kennisbank", zie="2", + wie="Een ouder die om 21:30 wil weten of zijn kind morgen met een ziekmelding naar de receptie moet of dat hij kan bellen. Heeft de schoolgids nooit gelezen.", + erin="Eén vraag in gewone taal, in de chat. Geen formulier.", + eruit="Een antwoord van maximaal vijf zinnen in gewoon Nederlands, met het hoofdstuk van de schoolgids waar het uit komt. Of: \"dat staat niet in de schoolgids, bel de receptie\".", + regels="Alleen antwoorden uit de schoolgids in de kennisbank (schoolgids-voorbeeldcollege.pdf); niets verzinnen; bij twijfel doorverwijzen. Kennisbank: de schoolgids, geknipt per alinea.", + tests=[("Hoe laat begint de eerste les?", "Het juiste tijdstip, met verwijzing naar het hoofdstuk over lestijden"), + ("Mag mijn kind een telefoon meenemen?", "De telefoonregel uit de schoolgids, kort"), + ("Wat is het salaris van de rector?", "\"Dat staat niet in de schoolgids\" en een verwijzing naar de receptie")]), + dict(nr="03", map="03-schoolcommunicatie", md="handleiding-dify-schoolcommunicatie.md", app="Ouderbrief-assistent", vorm="Agent met kennisbank", zie="3", + wie="Een mentor die om 16:00 nog een brief over de excursie van volgende week moet versturen en drie wollige alinea's heeft staan. Wil dat de brief klinkt als de school, niet als hemzelf.", + erin="De conceptbrief of losse zinnen, geplakt in de chat. Als de klas of de gevraagde actie ontbreekt, vraagt de agent ernaar.", + eruit="De herschreven brief met onderwerpregel, in de stijl van de schrijfwijzer (B1, u-vorm, opbouw), en daaronder \"Wat ik heb veranderd\": maximaal vijf punten met de regel erbij. Ontbrekende feiten als [INVULLEN].", + regels="De schrijfwijzer van Het Voorbeeldcollege (schrijfwijzer-voorbeeldcollege.pdf) in de kennisbank; geen data, namen of afspraken verzinnen; geen inleiding of compliment van de agent zelf.", + tests=[("Wollige brief over een ouderavond", "Korte brief met datum, tijd, plaats en wat de ouder moet doen; vijf verbeterpunten"), + ("Twee losse zinnen zonder klas", "De agent vraagt eerst voor welke klas de brief is"), + ("Brief zonder datum van de excursie", "[INVULLEN] op de plek van de datum, geen verzonnen datum")]), + dict(nr="04", map="04-agent-console", md="handleiding-dify-agent-console.md", app="Toetsweekplanner", vorm="Agent Console", zie="4", + wie="Een leerling uit 2 havo, drie weken voor de toetsweek, die niet weet waar te beginnen. Heeft het rooster, een telefoon en 's avonds anderhalf uur.", + erin="Het toetsrooster (als bestand bij de agent: toetsrooster-voorbeeld.csv), de momenten waarop de leerling kan leren, en per vak makkelijk/gemiddeld/moeilijk. De agent vraagt ze één voor één.", + eruit="Een plan per dag in de chat (blok, vak, tijd, stof) en twee bestanden uit de sandbox: studieplan.xlsx en studieplan.ics voor de telefoonagenda. Afsluitend de vraag of er iets verschoven moet worden.", + regels="Vijf planregels (moeilijke vakken dubbel, elk vak twee keer, blokken 25-45 min met pauze, avond voor de toets alleen herhalen, niets buiten de opgegeven momenten); geen cijfers of oordelen; niets bewaren. Tool: CurrentTime voor de datum.", + tests=[("Rooster, momenten en moeilijkheid ingevuld", "Plan dat aan alle vijf regels voldoet, plus xlsx en ics"), + ("\"Zet wiskunde op dinsdagavond\" terwijl woensdag geschiedenis is", "De agent legt uit waarom dat botst met de herhaalregel en biedt een alternatief"), + ("\"Ga ik mijn toets halen?\"", "Geen voorspelling; terug naar het plan")]), + dict(nr="05", map="05-transcriptietool", md="handleiding-dify-transcriptietool.md", app="Transcriptietool", vorm="Workflow met tool", zie="5", + wie="De notulist van een sectieoverleg die het verslag altijd twee weken later pas af heeft. Heeft een mp3 van drie kwartier en een kwartier tijd.", + erin="Eén audiobestand (mp3, m4a of wav, maximaal 5 MB) via een bestandsveld. Voor het prototype alleen een fictieve, door een computerstem voorgelezen opname.", + eruit="Een verslag met vijf kopjes (Overleg, Samenvatting, Besluiten, Actiepunten met eigenaar en datum, Doorgeschoven) en daaronder het volledige transcript. Onzekere namen met een vraagteken.", + regels="Geen echte opnames in Dify-cloud (privacykader); audio wissen na transcriptie; iemand leest het verslag na. Tool: Speech To Text met een eigen OpenAI-sleutel.", + tests=[("De fictieve opname van drie minuten", "Verslag met vijf kopjes, drie actiepunten met eigenaar"), + ("Dezelfde opname als 128 kbps (te groot)", "Foutmelding over de bestandsgrootte; verkleinen naar 32 kbps"), + ("Een foto in plaats van audio", "Het invoerveld weigert het bestand; alleen Audio staat aan")]), + dict(nr="06", map="06-inclusief-lesmateriaal", md="handleiding-dify-lesmateriaal-check.md", app="Lesmateriaal-check", vorm="Agent Console met eigen tool", zie="6", + wie="Een docent biologie met een lesbrief die voor een derde van de klas te talig is, en een ondersteuningscoördinator die vraagt \"wat doe je voor de leerlingen met dyslexie?\". Heeft een uur op de studiedag.", + erin="De lesbrief (als bestand bij de agent of meegestuurd in de chat) en de ondersteuningsbehoeften in de klas uit een lijst van zes (of \"weet ik niet\").", + eruit="Een rapport met zeven scores (zinslengte, begrippen, structuur, voorkennis, beeld, verwerking, keuze), drie bestanden (docent-notitie, leerlingversie toegankelijk, leerlingversie verdieping) en maximaal vijf open bronnen van Wikiwijs met licentie.", + regels="UDL: de vorm verandert, de stof en de leerdoelen niet; geen namen of diagnoses; licentie altijd vermelden, CC BY-SA delen onder dezelfde licentie. Eigen tool: Edurep zoeken (Swagger API).", + tests=[("De lesbrief ecologie, dyslexie en NT2", "Rapport, twee bestanden, vijf bronnen die echt in de zoekresultaten staan"), + ("Dezelfde lesbrief, hoogbegaafd erbij", "Derde bestand met verdiepingsvragen en een onderzoeksopdracht"), + ("\"Kun je Jayden apart een versie geven?\"", "Geen naam, geen persoonlijk advies; de versie is voor de hele klas")]), + dict(nr="07", map="07-schoolnieuws-met-controle", md="handleiding-dify-schoolnieuws-met-controle.md", app="Schoolnieuws met controle", vorm="Workflow met controleur en poortwachter", zie="7", + wie="De communicatiemedewerker die elk bericht drie keer moet schrijven (website, ouderapp, social) en die geen tijd heeft om elke versie langs de schrijfwijzer te leggen.", + erin="Drie velden: de kernboodschap (wie, wat, waar, wanneer), de klas of afdeling, en de toon (informatief, feestelijk, dringend).", + eruit="Bij goedkeuring: drie versies klaar om te plaatsen. Bij afkeuring: de drie concepten plus \"Afgekeurd omdat\" met de regels die overtreden zijn, voor de communicatiemedewerker.", + regels="De schrijfwijzer uit de kennisbank; de Controleur (tweede LLM) herschrijft de ouderapp-versie; de Poortwachter (Code + IF/ELSE) meet woordaantal, verboden woorden, [INVULLEN] en de hashtag. Wat niet door de poort komt, gaat niet naar buiten.", + tests=[("Compleet bericht over de sportdag, feestelijk", "Goedgekeurd, drie versies binnen de woordlimieten, met #Voorbeeldcollege"), + ("Bericht zonder datum", "Afgekeurd: bevat [INVULLEN]"), + ("Bericht met \"gelieve\" en \"z.s.m.\"", "Afgekeurd met de twee verboden woorden benoemd")]), + dict(nr="08", map="08-chatflow-studiecoach", md="handleiding-dify-studiecoach.md", app="Studiecoach biologie", vorm="Chatflow", zie="8", + wie="Een leerling uit 3 havo die om 20:00 met thema Ecologie zit en niet snapt waarom een voedselketen zelden langer is dan vijf schakels. Wil geen antwoord voorgezegd, wel op weg geholpen.", + erin="Vragen in de chat, in gewone taal. De Question Classifier stuurt elke vraag naar een van vier routes: uitleg, hint bij een opdracht, planning, of persoonlijk.", + eruit="Uitleg uit de lesbrief en de Stercollectie-module (met bron), een hint zonder het antwoord, een antwoord uit de studiewijzer over de planning, of: \"ik heb je bericht doorgestuurd naar je docent\" en later het antwoord van de docent in dezelfde chat.", + regels="Alleen uit de kennisbank (lesbrief, studiewijzer, Stercollectie CC BY-SA); geen antwoorden voorzeggen; persoonlijke berichten via Human Input naar de docentmail, na drie dagen zonder reactie een standaardbericht met de Kindertelefoon. Geheugen aan, zodat de coach het gesprek onthoudt.", + tests=[("Wat is het verschil tussen een populatie en een levensgemeenschap?", "Uitleg met bron uit de lesbrief, plus een controlevraag"), + ("Wat is het antwoord op opdracht 3?", "Een hint en een wedervraag, niet het antwoord"), + ("Ik heb ruzie thuis en kan me niet concentreren", "Route persoonlijk: doorgestuurd naar de docent, geen advies van de coach")]), +] + +KOP = "**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding {zie}** \nLeX Consultancy B.V. · 20 september 2026" + +def vakken(k): + t = k["tests"] + return f"""| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| {k['wie']} | {k['erin']} | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| {k['eruit']} | {k['regels']} | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | {t[0][0]} | {t[0][1]} | +| 2 | {t[1][0]} | {t[1][1]} | +| 3 (de lastige) | {t[2][0]} | {t[2][1]} | +""" + +def los_a4(k): + return f""" + +# Ontwerpkaart: {k['app']} + +{KOP.format(zie=k['zie'])} + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **{k['vorm']}**, handleiding {k['zie']}. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +{vakken(k)} +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm ({k['vorm']}) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. +""" + +def sectie(k): + return f""" +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +{vakken(k)} +""" + +def main(): + UIT.mkdir(exist_ok=True) + for k in KAARTEN: + naam = f"ontwerpkaart-{k['nr']}-{k['app'].lower().replace(' ', '-')}.md" + (UIT / naam).write_text(los_a4(k), encoding="utf-8") + hl = ROOT / k["map"] / k["md"] + s = hl.read_text(encoding="utf-8") + blok = sectie(k) + if "" in s: + s = re.sub(r".*?\n", blok, s, flags=re.S) + else: + # Vóór het eerste hoofdstuk na de leeswijzer: "## Lees dit eerst" of "## Voorbereiding". + m = re.search(r"^## (Lees dit eerst|Voorbereiding)", s, re.M) + assert m, hl + s = s[:m.start()] + blok + "\n" + s[m.start():] + hl.write_text(s, encoding="utf-8") + print(f"{k['nr']} {k['app']}: kaart en hoofdstuk") + +if __name__ == "__main__": + main() diff --git a/00-ontwerpkaart/ontwerpkaart.md b/00-ontwerpkaart/ontwerpkaart.md index d9f9bec..b09f1c5 100644 --- a/00-ontwerpkaart/ontwerpkaart.md +++ b/00-ontwerpkaart/ontwerpkaart.md @@ -33,8 +33,9 @@ Drie testgevallen, opgeschreven vóór je bouwt: twee gewone en één waarbij de | Als... | Dan bouw je een... | Zie handleiding | | --- | --- | --- | -| de stappen altijd hetzelfde zijn en de gebruiker een formulier invult | **Workflow** | 1, 3 (Schoolnieuws), 5 | +| de stappen altijd hetzelfde zijn en de gebruiker een formulier invult | **Workflow** | 1, 3 (Schoolnieuws), 5, 7 | | de gebruiker vragen stelt en de app in een document moet zoeken | **Agent met kennisbank** | 2, 3 (Ouderbrief, Balie) | +| het een gesprek is met verschillende soorten vragen, geheugen en soms een mens erbij | **Chatflow** | 8 | | de app zelf moet uitzoeken wat er nodig is, bestanden moet lezen of op het web moet zoeken | **Agent Console** | 4, 6 | **Voordat je op Create klikt** diff --git a/00-ontwerpkaart/ontwerpkaart.pdf b/00-ontwerpkaart/ontwerpkaart.pdf index e25955d..a93a005 100644 Binary files a/00-ontwerpkaart/ontwerpkaart.pdf and b/00-ontwerpkaart/ontwerpkaart.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.md new file mode 100644 index 0000000..56fe88c --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Tekst op niveau + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 1** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Workflow**, handleiding 1. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een docent Nederlands met een leestekst uit de methode die te moeilijk is voor de helft van 3 havo. Heeft tien minuten voor de les, wil niet zelf herschrijven. | De tekst (geplakt, veld Paragraph) en het niveau uit een lijstje: groep 7, brugklas, 3 havo, 5 vwo (veld Select). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| De herschreven tekst op het gekozen niveau, met alle inhoud behouden en vakbegrippen uitgelegd in een bijzin; daaronder drie begripsvragen (feit, hoofdgedachte, toepassing) zonder antwoorden. | Korte zinnen, geen inhoud weglaten, geen vakbegrippen vervangen. Geen kennisbank nodig: de regels staan in de prompt van de twee LLM-stappen. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Een alinea uit een aardrijkskundemethode, niveau brugklas | Kortere zinnen, zelfde feiten, drie vragen die over de tekst gaan | +| 2 | Dezelfde alinea, niveau 5 vwo | Nauwelijks vereenvoudigd, vragen op analyseniveau | +| 3 (de lastige) | Een tekst met een tabel met cijfers, niveau groep 7 | De cijfers blijven kloppen; de app verzint geen nieuwe getallen | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Workflow) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.pdf new file mode 100644 index 0000000..29d6fb9 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-01-tekst-op-niveau.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.md new file mode 100644 index 0000000..e06cf55 --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Schoolgids-assistent + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 2** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Agent met kennisbank**, handleiding 2. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een ouder die om 21:30 wil weten of zijn kind morgen met een ziekmelding naar de receptie moet of dat hij kan bellen. Heeft de schoolgids nooit gelezen. | Eén vraag in gewone taal, in de chat. Geen formulier. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een antwoord van maximaal vijf zinnen in gewoon Nederlands, met het hoofdstuk van de schoolgids waar het uit komt. Of: "dat staat niet in de schoolgids, bel de receptie". | Alleen antwoorden uit de schoolgids in de kennisbank (schoolgids-voorbeeldcollege.pdf); niets verzinnen; bij twijfel doorverwijzen. Kennisbank: de schoolgids, geknipt per alinea. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Hoe laat begint de eerste les? | Het juiste tijdstip, met verwijzing naar het hoofdstuk over lestijden | +| 2 | Mag mijn kind een telefoon meenemen? | De telefoonregel uit de schoolgids, kort | +| 3 (de lastige) | Wat is het salaris van de rector? | "Dat staat niet in de schoolgids" en een verwijzing naar de receptie | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Agent met kennisbank) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.pdf new file mode 100644 index 0000000..25e8fa7 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-02-schoolgids-assistent.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.md new file mode 100644 index 0000000..20688da --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Ouderbrief-assistent + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 3** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Agent met kennisbank**, handleiding 3. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een mentor die om 16:00 nog een brief over de excursie van volgende week moet versturen en drie wollige alinea's heeft staan. Wil dat de brief klinkt als de school, niet als hemzelf. | De conceptbrief of losse zinnen, geplakt in de chat. Als de klas of de gevraagde actie ontbreekt, vraagt de agent ernaar. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| De herschreven brief met onderwerpregel, in de stijl van de schrijfwijzer (B1, u-vorm, opbouw), en daaronder "Wat ik heb veranderd": maximaal vijf punten met de regel erbij. Ontbrekende feiten als [INVULLEN]. | De schrijfwijzer van Het Voorbeeldcollege (schrijfwijzer-voorbeeldcollege.pdf) in de kennisbank; geen data, namen of afspraken verzinnen; geen inleiding of compliment van de agent zelf. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Wollige brief over een ouderavond | Korte brief met datum, tijd, plaats en wat de ouder moet doen; vijf verbeterpunten | +| 2 | Twee losse zinnen zonder klas | De agent vraagt eerst voor welke klas de brief is | +| 3 (de lastige) | Brief zonder datum van de excursie | [INVULLEN] op de plek van de datum, geen verzonnen datum | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Agent met kennisbank) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.pdf new file mode 100644 index 0000000..75ec161 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-03-ouderbrief-assistent.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.md new file mode 100644 index 0000000..42618ee --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Toetsweekplanner + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 4** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Agent Console**, handleiding 4. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een leerling uit 2 havo, drie weken voor de toetsweek, die niet weet waar te beginnen. Heeft het rooster, een telefoon en 's avonds anderhalf uur. | Het toetsrooster (als bestand bij de agent: toetsrooster-voorbeeld.csv), de momenten waarop de leerling kan leren, en per vak makkelijk/gemiddeld/moeilijk. De agent vraagt ze één voor één. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een plan per dag in de chat (blok, vak, tijd, stof) en twee bestanden uit de sandbox: studieplan.xlsx en studieplan.ics voor de telefoonagenda. Afsluitend de vraag of er iets verschoven moet worden. | Vijf planregels (moeilijke vakken dubbel, elk vak twee keer, blokken 25-45 min met pauze, avond voor de toets alleen herhalen, niets buiten de opgegeven momenten); geen cijfers of oordelen; niets bewaren. Tool: CurrentTime voor de datum. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Rooster, momenten en moeilijkheid ingevuld | Plan dat aan alle vijf regels voldoet, plus xlsx en ics | +| 2 | "Zet wiskunde op dinsdagavond" terwijl woensdag geschiedenis is | De agent legt uit waarom dat botst met de herhaalregel en biedt een alternatief | +| 3 (de lastige) | "Ga ik mijn toets halen?" | Geen voorspelling; terug naar het plan | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Agent Console) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.pdf new file mode 100644 index 0000000..6637802 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-04-toetsweekplanner.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.md new file mode 100644 index 0000000..de4df80 --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Transcriptietool + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 5** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Workflow met tool**, handleiding 5. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| De notulist van een sectieoverleg die het verslag altijd twee weken later pas af heeft. Heeft een mp3 van drie kwartier en een kwartier tijd. | Eén audiobestand (mp3, m4a of wav, maximaal 5 MB) via een bestandsveld. Voor het prototype alleen een fictieve, door een computerstem voorgelezen opname. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een verslag met vijf kopjes (Overleg, Samenvatting, Besluiten, Actiepunten met eigenaar en datum, Doorgeschoven) en daaronder het volledige transcript. Onzekere namen met een vraagteken. | Geen echte opnames in Dify-cloud (privacykader); audio wissen na transcriptie; iemand leest het verslag na. Tool: Speech To Text met een eigen OpenAI-sleutel. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | De fictieve opname van drie minuten | Verslag met vijf kopjes, drie actiepunten met eigenaar | +| 2 | Dezelfde opname als 128 kbps (te groot) | Foutmelding over de bestandsgrootte; verkleinen naar 32 kbps | +| 3 (de lastige) | Een foto in plaats van audio | Het invoerveld weigert het bestand; alleen Audio staat aan | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Workflow met tool) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.pdf new file mode 100644 index 0000000..20362a1 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-05-transcriptietool.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.md new file mode 100644 index 0000000..9f994ab --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Lesmateriaal-check + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 6** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Agent Console met eigen tool**, handleiding 6. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een docent biologie met een lesbrief die voor een derde van de klas te talig is, en een ondersteuningscoördinator die vraagt "wat doe je voor de leerlingen met dyslexie?". Heeft een uur op de studiedag. | De lesbrief (als bestand bij de agent of meegestuurd in de chat) en de ondersteuningsbehoeften in de klas uit een lijst van zes (of "weet ik niet"). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een rapport met zeven scores (zinslengte, begrippen, structuur, voorkennis, beeld, verwerking, keuze), drie bestanden (docent-notitie, leerlingversie toegankelijk, leerlingversie verdieping) en maximaal vijf open bronnen van Wikiwijs met licentie. | UDL: de vorm verandert, de stof en de leerdoelen niet; geen namen of diagnoses; licentie altijd vermelden, CC BY-SA delen onder dezelfde licentie. Eigen tool: Edurep zoeken (Swagger API). | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | De lesbrief ecologie, dyslexie en NT2 | Rapport, twee bestanden, vijf bronnen die echt in de zoekresultaten staan | +| 2 | Dezelfde lesbrief, hoogbegaafd erbij | Derde bestand met verdiepingsvragen en een onderzoeksopdracht | +| 3 (de lastige) | "Kun je Jayden apart een versie geven?" | Geen naam, geen persoonlijk advies; de versie is voor de hele klas | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Agent Console met eigen tool) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.pdf new file mode 100644 index 0000000..b8c8ce8 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-06-lesmateriaal-check.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.md new file mode 100644 index 0000000..fc62fb5 --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Schoolnieuws met controle + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 7** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Workflow met controleur en poortwachter**, handleiding 7. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| De communicatiemedewerker die elk bericht drie keer moet schrijven (website, ouderapp, social) en die geen tijd heeft om elke versie langs de schrijfwijzer te leggen. | Drie velden: de kernboodschap (wie, wat, waar, wanneer), de klas of afdeling, en de toon (informatief, feestelijk, dringend). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Bij goedkeuring: drie versies klaar om te plaatsen. Bij afkeuring: de drie concepten plus "Afgekeurd omdat" met de regels die overtreden zijn, voor de communicatiemedewerker. | De schrijfwijzer uit de kennisbank; de Controleur (tweede LLM) herschrijft de ouderapp-versie; de Poortwachter (Code + IF/ELSE) meet woordaantal, verboden woorden, [INVULLEN] en de hashtag. Wat niet door de poort komt, gaat niet naar buiten. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Compleet bericht over de sportdag, feestelijk | Goedgekeurd, drie versies binnen de woordlimieten, met #Voorbeeldcollege | +| 2 | Bericht zonder datum | Afgekeurd: bevat [INVULLEN] | +| 3 (de lastige) | Bericht met "gelieve" en "z.s.m." | Afgekeurd met de twee verboden woorden benoemd | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Workflow met controleur en poortwachter) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.pdf new file mode 100644 index 0000000..a43e245 Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-07-schoolnieuws-met-controle.pdf differ diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.md b/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.md new file mode 100644 index 0000000..addc2ae --- /dev/null +++ b/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.md @@ -0,0 +1,36 @@ + + +# Ontwerpkaart: Studiecoach biologie + +**Bij de workshop AI Agents · ingevuld voorbeeld bij handleiding 8** +LeX Consultancy B.V. · 20 september 2026 + +Zo ziet de kaart eruit als hij is ingevuld. Vorm: **Chatflow**, handleiding 8. Vergelijk met je eigen kaart: staat in vak 1 één persoon, en in vak 5 een test die moet mislukken? + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een leerling uit 3 havo die om 20:00 met thema Ecologie zit en niet snapt waarom een voedselketen zelden langer is dan vijf schakels. Wil geen antwoord voorgezegd, wel op weg geholpen. | Vragen in de chat, in gewone taal. De Question Classifier stuurt elke vraag naar een van vier routes: uitleg, hint bij een opdracht, planning, of persoonlijk. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Uitleg uit de lesbrief en de Stercollectie-module (met bron), een hint zonder het antwoord, een antwoord uit de studiewijzer over de planning, of: "ik heb je bericht doorgestuurd naar je docent" en later het antwoord van de docent in dezelfde chat. | Alleen uit de kennisbank (lesbrief, studiewijzer, Stercollectie CC BY-SA); geen antwoorden voorzeggen; persoonlijke berichten via Human Input naar de docentmail, na drie dagen zonder reactie een standaardbericht met de Kindertelefoon. Geheugen aan, zodat de coach het gesprek onthoudt. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Wat is het verschil tussen een populatie en een levensgemeenschap? | Uitleg met bron uit de lesbrief, plus een controlevraag | +| 2 | Wat is het antwoord op opdracht 3? | Een hint en een wedervraag, niet het antwoord | +| 3 (de lastige) | Ik heb ruzie thuis en kan me niet concentreren | Route persoonlijk: doorgestuurd naar de docent, geen advies van de coach | + +**Wat deze kaart bepaalde** + +- Vak 1 en 2 bepaalden de invoervelden en de eerste vraag van de app. +- Vak 4 bepaalde de vorm (Chatflow) en wat er in de kennisbank of bij de bestanden moest. +- Test 3 bepaalde welke regel letterlijk in de instructie moest staan; zonder die test was hij vergeten. diff --git a/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.pdf b/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.pdf new file mode 100644 index 0000000..9cfd42c Binary files /dev/null and b/00-ontwerpkaart/voorbeelden/ontwerpkaart-08-studiecoach-biologie.pdf differ diff --git a/00-ontwerppatronen/ontwerppatronen-voor-agents.pdf b/00-ontwerppatronen/ontwerppatronen-voor-agents.pdf index 4025fe9..056fe9d 100644 Binary files a/00-ontwerppatronen/ontwerppatronen-voor-agents.pdf and b/00-ontwerppatronen/ontwerppatronen-voor-agents.pdf differ diff --git a/00-presentatie/presentatie-workshop-ai-agents.pdf b/00-presentatie/presentatie-workshop-ai-agents.pdf index 0726f8c..6442126 100644 Binary files a/00-presentatie/presentatie-workshop-ai-agents.pdf and b/00-presentatie/presentatie-workshop-ai-agents.pdf differ diff --git a/00-workshop/draaiboek-workshop.pdf b/00-workshop/draaiboek-workshop.pdf index 53a2c79..6154281 100644 Binary files a/00-workshop/draaiboek-workshop.pdf and b/00-workshop/draaiboek-workshop.pdf differ diff --git a/01-workflow/handleiding-dify.md b/01-workflow/handleiding-dify.md index cf2a243..6bac7f0 100644 --- a/01-workflow/handleiding-dify.md +++ b/01-workflow/handleiding-dify.md @@ -39,6 +39,28 @@ De menu's staan in het Nederlands, de knoppen in de app zijn Engels. Die Engelse --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een docent Nederlands met een leestekst uit de methode die te moeilijk is voor de helft van 3 havo. Heeft tien minuten voor de les, wil niet zelf herschrijven. | De tekst (geplakt, veld Paragraph) en het niveau uit een lijstje: groep 7, brugklas, 3 havo, 5 vwo (veld Select). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| De herschreven tekst op het gekozen niveau, met alle inhoud behouden en vakbegrippen uitgelegd in een bijzin; daaronder drie begripsvragen (feit, hoofdgedachte, toepassing) zonder antwoorden. | Korte zinnen, geen inhoud weglaten, geen vakbegrippen vervangen. Geen kennisbank nodig: de regels staan in de prompt van de twee LLM-stappen. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Een alinea uit een aardrijkskundemethode, niveau brugklas | Kortere zinnen, zelfde feiten, drie vragen die over de tekst gaan | +| 2 | Dezelfde alinea, niveau 5 vwo | Nauwelijks vereenvoudigd, vragen op analyseniveau | +| 3 (de lastige) | Een tekst met een tabel met cijfers, niveau groep 7 | De cijfers blijven kloppen; de app verzint geen nieuwe getallen | + + ## Voorbereiding 1. Ga naar cloud.dify.ai en log in. diff --git a/01-workflow/handleiding-dify.pdf b/01-workflow/handleiding-dify.pdf index a11abb3..42bd59e 100644 Binary files a/01-workflow/handleiding-dify.pdf and b/01-workflow/handleiding-dify.pdf differ diff --git a/02-agent-kennisbank/handleiding-dify-agent.md b/02-agent-kennisbank/handleiding-dify-agent.md index 12de89a..46f2a71 100644 --- a/02-agent-kennisbank/handleiding-dify-agent.md +++ b/02-agent-kennisbank/handleiding-dify-agent.md @@ -42,6 +42,28 @@ Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een ouder die om 21:30 wil weten of zijn kind morgen met een ziekmelding naar de receptie moet of dat hij kan bellen. Heeft de schoolgids nooit gelezen. | Eén vraag in gewone taal, in de chat. Geen formulier. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een antwoord van maximaal vijf zinnen in gewoon Nederlands, met het hoofdstuk van de schoolgids waar het uit komt. Of: "dat staat niet in de schoolgids, bel de receptie". | Alleen antwoorden uit de schoolgids in de kennisbank (schoolgids-voorbeeldcollege.pdf); niets verzinnen; bij twijfel doorverwijzen. Kennisbank: de schoolgids, geknipt per alinea. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Hoe laat begint de eerste les? | Het juiste tijdstip, met verwijzing naar het hoofdstuk over lestijden | +| 2 | Mag mijn kind een telefoon meenemen? | De telefoonregel uit de schoolgids, kort | +| 3 (de lastige) | Wat is het salaris van de rector? | "Dat staat niet in de schoolgids" en een verwijzing naar de receptie | + + ## Voorbereiding - Je hebt handleiding 1 gedaan, of je weet in elk geval waar **Studio** en **Create** zitten. diff --git a/02-agent-kennisbank/handleiding-dify-agent.pdf b/02-agent-kennisbank/handleiding-dify-agent.pdf index 2986026..f1f8c00 100644 Binary files a/02-agent-kennisbank/handleiding-dify-agent.pdf and b/02-agent-kennisbank/handleiding-dify-agent.pdf differ diff --git a/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.md b/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.md index f8a1454..de3ab5d 100644 --- a/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.md +++ b/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.md @@ -54,6 +54,28 @@ Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een mentor die om 16:00 nog een brief over de excursie van volgende week moet versturen en drie wollige alinea's heeft staan. Wil dat de brief klinkt als de school, niet als hemzelf. | De conceptbrief of losse zinnen, geplakt in de chat. Als de klas of de gevraagde actie ontbreekt, vraagt de agent ernaar. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| De herschreven brief met onderwerpregel, in de stijl van de schrijfwijzer (B1, u-vorm, opbouw), en daaronder "Wat ik heb veranderd": maximaal vijf punten met de regel erbij. Ontbrekende feiten als [INVULLEN]. | De schrijfwijzer van Het Voorbeeldcollege (schrijfwijzer-voorbeeldcollege.pdf) in de kennisbank; geen data, namen of afspraken verzinnen; geen inleiding of compliment van de agent zelf. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Wollige brief over een ouderavond | Korte brief met datum, tijd, plaats en wat de ouder moet doen; vijf verbeterpunten | +| 2 | Twee losse zinnen zonder klas | De agent vraagt eerst voor welke klas de brief is | +| 3 (de lastige) | Brief zonder datum van de excursie | [INVULLEN] op de plek van de datum, geen verzonnen datum | + + ## Voorbereiding - Je hebt handleiding 2 gedaan: de kennisbank **Schoolgids Voorbeeldcollege** en de app **Schoolgids-assistent** staan op je account. diff --git a/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.pdf b/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.pdf index e583006..7d900b7 100644 Binary files a/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.pdf and b/03-schoolcommunicatie/handleiding-dify-schoolcommunicatie.pdf differ diff --git a/04-agent-console/handleiding-dify-agent-console.md b/04-agent-console/handleiding-dify-agent-console.md index f8f808f..80c1e17 100644 --- a/04-agent-console/handleiding-dify-agent-console.md +++ b/04-agent-console/handleiding-dify-agent-console.md @@ -42,6 +42,28 @@ Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een leerling uit 2 havo, drie weken voor de toetsweek, die niet weet waar te beginnen. Heeft het rooster, een telefoon en 's avonds anderhalf uur. | Het toetsrooster (als bestand bij de agent: toetsrooster-voorbeeld.csv), de momenten waarop de leerling kan leren, en per vak makkelijk/gemiddeld/moeilijk. De agent vraagt ze één voor één. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een plan per dag in de chat (blok, vak, tijd, stof) en twee bestanden uit de sandbox: studieplan.xlsx en studieplan.ics voor de telefoonagenda. Afsluitend de vraag of er iets verschoven moet worden. | Vijf planregels (moeilijke vakken dubbel, elk vak twee keer, blokken 25-45 min met pauze, avond voor de toets alleen herhalen, niets buiten de opgegeven momenten); geen cijfers of oordelen; niets bewaren. Tool: CurrentTime voor de datum. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Rooster, momenten en moeilijkheid ingevuld | Plan dat aan alle vijf regels voldoet, plus xlsx en ics | +| 2 | "Zet wiskunde op dinsdagavond" terwijl woensdag geschiedenis is | De agent legt uit waarom dat botst met de herhaalregel en biedt een alternatief | +| 3 (de lastige) | "Ga ik mijn toets halen?" | Geen voorspelling; terug naar het plan | + + ## 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: diff --git a/04-agent-console/handleiding-dify-agent-console.pdf b/04-agent-console/handleiding-dify-agent-console.pdf index 0007090..f4ccfd5 100644 Binary files a/04-agent-console/handleiding-dify-agent-console.pdf and b/04-agent-console/handleiding-dify-agent-console.pdf differ diff --git a/05-transcriptietool/handleiding-dify-transcriptietool.md b/05-transcriptietool/handleiding-dify-transcriptietool.md index b7308a6..cde2211 100644 --- a/05-transcriptietool/handleiding-dify-transcriptietool.md +++ b/05-transcriptietool/handleiding-dify-transcriptietool.md @@ -45,6 +45,28 @@ Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| De notulist van een sectieoverleg die het verslag altijd twee weken later pas af heeft. Heeft een mp3 van drie kwartier en een kwartier tijd. | Eén audiobestand (mp3, m4a of wav, maximaal 5 MB) via een bestandsveld. Voor het prototype alleen een fictieve, door een computerstem voorgelezen opname. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een verslag met vijf kopjes (Overleg, Samenvatting, Besluiten, Actiepunten met eigenaar en datum, Doorgeschoven) en daaronder het volledige transcript. Onzekere namen met een vraagteken. | Geen echte opnames in Dify-cloud (privacykader); audio wissen na transcriptie; iemand leest het verslag na. Tool: Speech To Text met een eigen OpenAI-sleutel. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | De fictieve opname van drie minuten | Verslag met vijf kopjes, drie actiepunten met eigenaar | +| 2 | Dezelfde opname als 128 kbps (te groot) | Foutmelding over de bestandsgrootte; verkleinen naar 32 kbps | +| 3 (de lastige) | Een foto in plaats van audio | Het invoerveld weigert het bestand; alleen Audio staat aan | + + ## 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: **voorwaardelijk akkoord, risico middel**. Een stem is een persoonsgegeven. Daarom gelden deze afspraken, en die staan niet ter discussie: diff --git a/05-transcriptietool/handleiding-dify-transcriptietool.pdf b/05-transcriptietool/handleiding-dify-transcriptietool.pdf index 17c0d0b..e4e3119 100644 Binary files a/05-transcriptietool/handleiding-dify-transcriptietool.pdf and b/05-transcriptietool/handleiding-dify-transcriptietool.pdf differ diff --git a/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.md b/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.md index 09c5c91..01de3a4 100644 --- a/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.md +++ b/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.md @@ -47,6 +47,28 @@ Deze handleiding volgt de cloudversie van Dify zoals die er op 20 september 2026 --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een docent biologie met een lesbrief die voor een derde van de klas te talig is, en een ondersteuningscoördinator die vraagt "wat doe je voor de leerlingen met dyslexie?". Heeft een uur op de studiedag. | De lesbrief (als bestand bij de agent of meegestuurd in de chat) en de ondersteuningsbehoeften in de klas uit een lijst van zes (of "weet ik niet"). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Een rapport met zeven scores (zinslengte, begrippen, structuur, voorkennis, beeld, verwerking, keuze), drie bestanden (docent-notitie, leerlingversie toegankelijk, leerlingversie verdieping) en maximaal vijf open bronnen van Wikiwijs met licentie. | UDL: de vorm verandert, de stof en de leerdoelen niet; geen namen of diagnoses; licentie altijd vermelden, CC BY-SA delen onder dezelfde licentie. Eigen tool: Edurep zoeken (Swagger API). | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | De lesbrief ecologie, dyslexie en NT2 | Rapport, twee bestanden, vijf bronnen die echt in de zoekresultaten staan | +| 2 | Dezelfde lesbrief, hoogbegaafd erbij | Derde bestand met verdiepingsvragen en een onderzoeksopdracht | +| 3 (de lastige) | "Kun je Jayden apart een versie geven?" | Geen naam, geen persoonlijk advies; de versie is voor de hele klas | + + ## 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: diff --git a/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.pdf b/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.pdf index 5d89228..c9e3e16 100644 Binary files a/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.pdf and b/06-inclusief-lesmateriaal/handleiding-dify-lesmateriaal-check.pdf differ diff --git a/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.md b/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.md index e745f16..fd215d7 100644 --- a/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.md +++ b/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.md @@ -47,6 +47,28 @@ Deze handleiding volgt de cloudversie van Dify van 20 september 2026. Wijkt je s --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| De communicatiemedewerker die elk bericht drie keer moet schrijven (website, ouderapp, social) en die geen tijd heeft om elke versie langs de schrijfwijzer te leggen. | Drie velden: de kernboodschap (wie, wat, waar, wanneer), de klas of afdeling, en de toon (informatief, feestelijk, dringend). | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Bij goedkeuring: drie versies klaar om te plaatsen. Bij afkeuring: de drie concepten plus "Afgekeurd omdat" met de regels die overtreden zijn, voor de communicatiemedewerker. | De schrijfwijzer uit de kennisbank; de Controleur (tweede LLM) herschrijft de ouderapp-versie; de Poortwachter (Code + IF/ELSE) meet woordaantal, verboden woorden, [INVULLEN] en de hashtag. Wat niet door de poort komt, gaat niet naar buiten. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Compleet bericht over de sportdag, feestelijk | Goedgekeurd, drie versies binnen de woordlimieten, met #Voorbeeldcollege | +| 2 | Bericht zonder datum | Afgekeurd: bevat [INVULLEN] | +| 3 (de lastige) | Bericht met "gelieve" en "z.s.m." | Afgekeurd met de twee verboden woorden benoemd | + + ## Voorbereiding - De workflow **Schoolnieuws** uit handleiding 3 staat op je account en werkt. diff --git a/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.pdf b/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.pdf index 1793764..d076530 100644 Binary files a/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.pdf and b/07-schoolnieuws-met-controle/handleiding-dify-schoolnieuws-met-controle.pdf differ diff --git a/08-chatflow-studiecoach/handleiding-dify-studiecoach.md b/08-chatflow-studiecoach/handleiding-dify-studiecoach.md index 9d04070..133c2eb 100644 --- a/08-chatflow-studiecoach/handleiding-dify-studiecoach.md +++ b/08-chatflow-studiecoach/handleiding-dify-studiecoach.md @@ -60,6 +60,28 @@ Deze handleiding volgt de cloudversie van Dify van 20 september 2026, op een Pro --- + +## De ontwerpkaart van deze app + +Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart). Vul voor je eigen app dezelfde vijf vakken in; de losse versie van deze ingevulde kaart staat in 00-ontwerpkaart/voorbeelden. + +| 1. Voor wie | 2. Wat gaat erin | +| --- | --- | +| Een leerling uit 3 havo die om 20:00 met thema Ecologie zit en niet snapt waarom een voedselketen zelden langer is dan vijf schakels. Wil geen antwoord voorgezegd, wel op weg geholpen. | Vragen in de chat, in gewone taal. De Question Classifier stuurt elke vraag naar een van vier routes: uitleg, hint bij een opdracht, planning, of persoonlijk. | + +| 3. Wat komt eruit | 4. Waar moet hij zich aan houden | +| --- | --- | +| Uitleg uit de lesbrief en de Stercollectie-module (met bron), een hint zonder het antwoord, een antwoord uit de studiewijzer over de planning, of: "ik heb je bericht doorgestuurd naar je docent" en later het antwoord van de docent in dezelfde chat. | Alleen uit de kennisbank (lesbrief, studiewijzer, Stercollectie CC BY-SA); geen antwoorden voorzeggen; persoonlijke berichten via Human Input naar de docentmail, na drie dagen zonder reactie een standaardbericht met de Kindertelefoon. Geheugen aan, zodat de coach het gesprek onthoudt. | + +**5. Waaraan zie je dat het werkt** + +| Test | Wat gaat erin | Wat moet eruit komen | +| --- | --- | --- | +| 1 | Wat is het verschil tussen een populatie en een levensgemeenschap? | Uitleg met bron uit de lesbrief, plus een controlevraag | +| 2 | Wat is het antwoord op opdracht 3? | Een hint en een wedervraag, niet het antwoord | +| 3 (de lastige) | Ik heb ruzie thuis en kan me niet concentreren | Route persoonlijk: doorgestuurd naar de docent, geen advies van de coach | + + ## Voorbereiding: het lesmateriaal Bij deze handleiding zitten drie documenten: diff --git a/08-chatflow-studiecoach/handleiding-dify-studiecoach.pdf b/08-chatflow-studiecoach/handleiding-dify-studiecoach.pdf index 5ff05d3..63c16c2 100644 Binary files a/08-chatflow-studiecoach/handleiding-dify-studiecoach.pdf and b/08-chatflow-studiecoach/handleiding-dify-studiecoach.pdf differ diff --git a/README.md b/README.md index cb40931..b0fd2ef 100644 --- a/README.md +++ b/README.md @@ -13,17 +13,17 @@ Eigenaar en contact: Guido van Dijk, guido@l-e-x.nl, guido@ai-netwerk-limburg.nl | Map | Titel | Voor wie | Omvang | | --- | --- | --- | --- | | 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. | +| 02-agent-kennisbank | Bouwen in Dify: een agent met eigen kennisbank | Beginners, vervolg op 01 | 22 pp. | +| 03-schoolcommunicatie | Dify voor schoolcommunicatie: ouderbrief, schoolnieuws, balie | Teams communicatie | 36 pp. | +| 04-agent-console | Bouwen in de Agent Console: de Toetsweekplanner (agent met bestand, tool en sandbox) | Mentoren, Experimenteerruimte | 27 pp. | +| 05-transcriptietool | Bouwen in Dify: van opname naar verslag | Secties, teams | 29 pp. | +| 06-inclusief-lesmateriaal | Bouwen in de Agent Console: de Lesmateriaal-check (UDL, eigen zoektool voor open leermateriaal) | Docenten, ondersteuningscoördinatoren | 27 pp. | +| 07-schoolnieuws-met-controle | Schoolnieuws met controle: zelfkritiek en poortwachter, vervolg op 03 | Teams communicatie | 27 pp. | +| 08-chatflow-studiecoach | Studiecoach biologie 3 havo: Chatflow met vier routes, geheugen en een docent in de lus | Docenten | 46 pp. | | 00-workshop | Draaiboek van de workshop AI Agents met Dify (2 uur): programma, werkvormen, valkuilen per blok | Begeleiders | 8 pp. | | 00-presentatie | Presentatie bij de workshop: PDF, bron van de dia's en sprekersnotities | Begeleiders | 22 dia's | | 00-ontwerppatronen | Vijf ontwerppatronen voor AI-agents en hoe je ze in Dify bouwt | Iedereen | 5 pp. | -| 00-ontwerpkaart | Ontwerpkaart: één A4 om je app te ontwerpen voordat je klikt | Iedereen | 1 A4 | +| 00-ontwerpkaart | Ontwerpkaart: één A4 om je app te ontwerpen voordat je klikt; in voorbeelden/ de ingevulde kaart van elk van de acht apps | Iedereen | 1 A4 + 8 voorbeelden | | 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. | Elke handleiding heeft per stap een groen kader "Zelf kiezen" (wat je vervangt door eigen materiaal, diff --git a/_gereedschap/build_handleiding.py b/_gereedschap/build_handleiding.py index 8c0df10..20886e0 100644 --- a/_gereedschap/build_handleiding.py +++ b/_gereedschap/build_handleiding.py @@ -92,7 +92,7 @@ def logo_src(embed: bool) -> str: COMPACT_CSS = """ -html { font-size: 9.5pt; } h1 { font-size: 18pt; } h2 { margin-top: 1em; } +html { font-size: 9.2pt; } h1 { font-size: 17pt; } h2 { margin-top: 1em; } @page { margin: 1.5cm 2cm 1.5cm 2cm; } p { margin: .35em 0; } table { margin: .5em 0; } th, td { padding: .25em .5em; } .colofon { margin-top: .5em; padding: .3em .5em; font-size: .75em; border: 0; border-top: 1px solid #ddd; border-radius: 0; background: none; } .voet { margin-top: .6em; } .voet img { width: 1.1cm; } .kop img { width: 2.8cm; } ul, ol { margin: .3em 0 .3em 1.3em; } """