De Kunst van het Niet-Weten: Hoe We een AI Coach vanaf Nul Bouwen
Lessen en tips uit onze experimenten met het bouwen van een AI-webapp en twee mobiele apps zonder enige voorafgaande ervaring.
Dit hadden we niet gepland. Niet echt.
Onze cursor zweeft boven de "Submit for Review"-knop voor onze AI Agile Coach-apps waar we de afgelopen 4 weken aan hebben gebouwd. Vier weken geleden wisten we eigenlijk niet hoe je apps maakt. We hebben het toch gewoon gedaan.
"Wat is het ergste dat kan gebeuren?"
"Ze kunnen het afwijzen."
"Druk op de knop."
Spoiler Alert: Beide Apps werden binnen een paar dagen geaccepteerd.
Hoe zijn we hier terechtgekomen?
Het is 2023 en AI is overal. ChatGPT is het glimmende nieuwe speeltje. "Kijk, het kan een gedicht schrijven over Scrum Masters!" postte iemand in onze Slack. "Het heeft net mijn e-mail geschreven; het is pure magie," schreef een ander. We beginnen AI te gebruiken voor kleine dingetjes—ideeën genereren, saaie taken afhandelen—en gewoon lol hebben.
Maar het was meer dan een gimmick, en dat wisten we allemaal. We waren verbluft en hadden misschien het gevoel dat we achterliepen. Dit was nieuw, groot en ging razendsnel, en wij probeerden bij te benen.
Toen drong het tot ons door: dit was niet iets om vanaf de zijlijn te bekijken. We konden hier iets mee bouwen.
Dit is wat we hebben gedaan, wat we hebben geleerd, plus een paar blikken achter de schermen.
1. Erin duiken: Geen perfect idee, gewoon beginnen
We hadden geen groots plan of een duidelijk beeld van wat we wilden maken. Maar we wisten dat we alles draaien om leren en kennis delen op een manier die blijft hangen.
En nu was AI deze enorme, glimmende tool die we op een nieuwe manier konden inzetten. Maar wat gingen we precies bouwen? En hoe zouden we dat aanpakken?
In plaats van te wachten op het perfecte idee, zijn we gewoon gaan experimenteren. Geen uitgebreide roadmaps, geen lange discussies—gewoon wij, een handvol ideeën en de drang om te zien wat we konden maken.
Learning:
Wacht niet op het perfecte idee. Begin klein, experimenteer met de technologie en laat de richting ontstaan vanuit wat je leert. Bij snelbewegende technologie kan te lang wachten betekenen dat je het moment mist.
2. Een visie neerzetten: meer dan zomaar een chatbot
Vanaf het begin wilden we niet zomaar een chatbot bouwen. ChatGPT bestond al en we wisten dat we niet konden (en niet wilden) concurreren met die schaalgrootte. Maar waar ChatGPT uitblonk in schaal, schoot het tekort in kwaliteit bij nicheonderwerpen waar details ertoe doen.
Wat als onze AI Agile Coach onze expertise kon inzetten om betrouwbare, prikkelende begeleiding te bieden die verder gaat dan simpele, generieke antwoorden?
Kwaliteit, vertrouwen en een menselijke touch werden de pijlers van onze visie. We wilden de veelvoorkomende problemen van AI—generiek, onpersoonlijk en onbetrouwbaar zijn—ombuigen tot onze sterke punten.
Learning:
Begin met een visie en werk van daaruit terug. Je hebt niet alle details vooraf nodig; nieuwe ideeën ontstaan vanzelf naarmate je vordert.
3. Een lean team en proces vormen: houd het simpel
Toen we besloten hadden de AI-coach te bouwen, vormde zich een klein team—één designer, twee developers en de rest van het team op de achtergrond voor feedback en ideeën.
Zonder veel planning kozen we voor een lean proces: korte dagelijkse syncs, informele retro-achtige gesprekken om tools bij te stellen en wekelijkse demo's om voortgang te delen. Het ging niet om het strikt volgen van een agile framework; het ging erom dingen simpel en wendbaar te houden.
Learning:
Laat je proces zich natuurlijk ontwikkelen. Dagelijkse check-ins, regelmatige feedback en eenvoudige demo's kunnen je op één lijn houden. Denk er niet te veel over na—soms is de beste aanpak degene die past bij het ritme van je team.
4. De kunst van het prompten: vallen en opstaan
We wisten dat innovatieve prompts (de instructies die je aan het taalmodel geeft) essentieel zouden zijn voor onze app. Prompten klinkt makkelijk totdat je het goed probeert te doen. We experimenteerden met verschillende prompts—woorden aanpassen, zinnen herschrijven, testen totdat het goed voelde.
Onze huidige prompt is meer dan 5.000 tekens lang, vol met details die onze AI laten klinken zoals wij. Het is alsof je een geheim recept schrijft, en er was veel proeven voor nodig om daar te komen—en we blijven er regelmatig aan sleutelen.
Learning:
Experimenteer met prompts. Test verschillende variaties om te zien wat werkt en pas ze regelmatig aan. Goede prompts zijn cruciaal voor de prestaties van de AI.
5. Vroeg en vaak releasen: perfectionisme loslaten
We wachtten niet op perfectie. Zodra onze eerste versie goed genoeg was, brachten we die uit. Was het vlekkeloos? Bevatte het de talloze ideeën en features waar we aan hadden gedacht? Absoluut niet. Maar het had geen zin om door te gaan zonder feedback van echte mensen.
Met AI kun je niet elke uitkomst voorspellen, en elke gebruikersinteractie is anders. De enige manier om te weten wat werkt, is het naar buiten brengen, kijken hoe mensen het gebruiken en aanpassen op basis van wat je leert.
Learning:
Streef niet naar perfectie vóór de lancering. Breng snel een minimum viable product uit en leer van gebruikersfeedback voor snelle verbeteringen. Dit is geen nieuw idee, maar in het snel veranderende AI-landschap is het belangrijker dan ooit.
6. Op de Schouders van Reuzen Staan
Het blijkt dat je niet alles zelf hoeft te bouwen. We maakten gebruik van frameworks en boilerplates zoals Gravity, die alle saaie maar noodzakelijke zaken zoals gebruikersbeheer, authenticatie en e-mail afhandelen, zodat wij ons konden focussen op wat echt belangrijk was. We leunden zwaar op tools zoals LangChain en natuurlijk de OpenAI API, die achter de schermen het zware werk voor ons deden.
Les:
Maak gebruik van bestaande tools om de ontwikkeling te versnellen. Bouw niet alles vanaf nul als iemand anders het probleem al heeft opgelost. De juiste tools kunnen je enorm veel tijd besparen.
7. Leren van Experts (Zoals de echte Henrik)
We hebben veel te danken aan Henrik Kniberg, die ons door enkele van de meest cruciale onderdelen van het ontwikkelproces heeft geloodst. Hij trapte af met een workshop die de toon en richting voor ons werk bepaalde. Als mentor van het team en naamgever van ons product duwde Henrik ons in nieuwe richtingen en hielp hij ons de AI Agile Coach te vormen tot wat het vandaag is. Zijn invloed is van onschatbare waarde geweest, en we zijn hem enorm dankbaar voor zijn steun onderweg.
Les:
Zoek contact met experts en leer van hen. Een frisse blik van iemand met ervaring kan nieuwe wegen openen waar je zelf niet aan had gedacht.
8. De Content-Uitdaging: Waarmee Voeden We de AI?
We hebben jaren besteed aan het creëren en samenstellen van content waar we in geloven, en nu moesten we uitzoeken hoe we dat tot de basis konden maken voor onze AI-coach. Het ging niet alleen om het dumpen van onze materialen in het systeem. We wilden dat onze AI betrouwbaar, boeiend en écht behulpzaam zou zijn. Dus hebben we uren besteed aan het selecteren en verfijnen van de juiste stukjes kennis, en ervoor gezorgd dat de AI deze effectief kon begrijpen en gebruiken.
Geleerd:
Investeer tijd in het samenstellen van je content. Zorg ervoor dat het accuraat is en de toon en stem van je AI weerspiegelt. Betere content leidt tot een betrouwbaardere AI.
9. Itereren op de LLM-Implementatie: Aanpassen, Aanpassen, Aanpassen
Het verbeteren van de AI-coach kostte meerdere iteraties, die ons telkens leerden wat wel en niet werkte:
1. Custom GPT Binnen ChatGPT Gebruiken:
We begonnen met custom GPT's binnen ChatGPT. Het was makkelijk — geen code nodig. Maar we liepen al snel tegen grenzen aan qua controle en outputkwaliteit. We wisten ook dat we ons eigen product wilden lanceren buiten het OpenAI-ecosysteem, met eigen branding en een directere koppeling met onze andere producten.
2. Custom UI met de Assistant API:
In eerste instantie bouwden we een custom UI met de Assistant API. Dit gaf ons meer controle over welke documenten de AI gebruikte. Maar al snel liepen we tegen beperkingen aan qua schaalbaarheid en was het lastig om te sturen welke delen van de aangepaste kennis werden gebruikt om antwoorden te genereren.
3. Custom UI met LangChain en Weviate Vector DB:
Vervolgens implementeerden we een custom Assistant met LangChain en kennis uit een Weviate vector database. Deze opzet stelde ons in staat om alleen relevante kennis op te halen, wat de kwaliteit verbeterde. De resultaten waren in de meeste gevallen goed, maar soms raakte de Assistant verstrikt in eindeloze loops of gaf vreemde, onnatuurlijke antwoorden.
4. LangChain Agent:
Om deze problemen aan te pakken, implementeerden we een LangChain agent. Deze vrij nieuwe aanpak leverde tot nu toe de beste resultaten op. De agent kan op basis van de vraag van de gebruiker beslissen welke tools en informatie hij gebruikt en gaat efficiënter om met zijn geheugen van eerdere interacties. Als een gebruiker bijvoorbeeld "Hoi" zegt, besluit de agent dat hij zijn gespecialiseerde kennis niet hoeft te doorzoeken om simpelweg terug te groeten.
De afweging is dat je wat controle opgeeft omdat de agent meer autonomie heeft. Maar de voordelen van verbeterde kwaliteit en efficiëntie wegen hier ruimschoots tegen op. De Langchain agent-bibliotheek biedt veel opties en configuraties om de prestaties van het model te finetunen.
5. Een nieuwe, geweldige oplossing.
Wat er na agents komt, weten we nog niet. We zien het wel...
Geleerd:
Als een opzet niet werkt, blijf er dan niet aan vasthouden. Blijf nieuwe configuraties uitproberen en leer van elke poging. Er komen dagelijks nieuwe oplossingen bij in het AI-landschap, dus blijf open en klaar om je aan te passen aan de nieuwste tools en benaderingen om je product te verbeteren.
10. De Mobiele App Bouwen: Een Sprong in het Diepe
We wisten altijd al dat we een mobiele app nodig zouden hebben, maar er een bouwen leek een flinke uitdaging. Toen Sohrab vroeg wat er nodig was om een app te maken, waren we terughoudend. Mobiele apps zijn complex en we hadden het nog nooit eerder gedaan. Hoewel onze webapp nog in een vroeg stadium was met nog genoeg te doen, was het logisch om vroeg te beginnen met de mobiele app. Door de app werkend te krijgen met een beperkte set functies, vermeden we het risico om later achter de feiten aan te lopen wanneer het product complexer zou zijn. Bovendien gaf het ons al vroeg de kans om te leren en aan te passen.
Met Expo en React Native bouwden we binnen vier weken iOS- en Android-versies. Op de knop "Submit for Review" drukken was best spannend. Het herinnerde ons eraan om de sprong te wagen en te kijken waar we landen.
Geleerd:
Als gebruikers een behoefte uiten, waag dan de sprong. De leercurve kan steil zijn, maar praktische ervaring wint het van theoretische planning. Frameworks zoals Expo en React Native werken goed voor het bouwen van multiplatform-apps. In het verleden konden niet-native apps log of onhandig aanvoelen, maar deze frameworks zijn enorm geëvolueerd. Je offert slechts een beetje van het native gevoel op, en daarvoor krijg je snelle ontwikkeling en eenvoudiger onderhoud over meerdere platformen terug.
11. AI Gebruiken om AI te Bouwen: Iedereen in Staat Stellen
Een van de gaafste dingen was het inzetten van AI om onze AI te helpen bouwen. We richtten verschillende GPT's in voor specifieke taken: één voor coderen, een andere voor schrijven, enzovoort. Zelfs ik, een designer met beperkte programmeervaardigheden, was aan het coderen met behulp van Cursor, een code-editor met een ingebouwde assistent. AI werd een enabler die iedereen in staat stelde om op nieuwe manieren bij te dragen.
Geleerd:
Gebruik AI om je ontwikkelproces te verbeteren en bouw gespecialiseerde tools. Zoals we van Henrik Kniberg leerden: Vraag jezelf bij elke taak op je lijst af: Hoe kan AI me hierbij helpen?
12. De Menselijke Touch Behouden
In een AI-gedreven project is het makkelijk om het menselijke element uit het oog te verliezen. Daarom hebben we bewust ons best gedaan om dat te voorkomen:
- Het logo werd eerst geschetst op een post-it.
- Code werd handmatig gecontroleerd, geselecteerd en geschreven.
- Marketingteksten werden eerst op papier geschreven — met een potlood.
- E-mails naar gebruikers werden handmatig geschreven en verstuurd met een bootstrapped aanpak, nog zonder schaalbaarheid in gedachten. (Hint: Don't optimize for scale prematurely)
Geleerd:
AI is een krachtig hulpmiddel, maar het zijn de menselijke elementen die een product oprecht en herkenbaar maken. Houd de persoonlijke touch in je project levend.
13. We zijn nog maar net begonnen
We hebben in korte tijd veel gebouwd, maar we zijn nog volop aan het ontdekken. Elke dag brengt nieuwe uitdagingen, lessen en ideeën om te testen. We leren nog steeds, itereren en proberen iets te maken dat echt werkt.
En dat is prima, want zo hebben we altijd gewerkt. We leven naar de principes die we onderwijzen: snel leren, je snel aanpassen en blijven bewegen.
Les:
Blijf nieuwsgierig en flexibel. Blijf aannames testen, omarm wat je leert en wees bereid van koers te veranderen.
En vergeet niet om er onderweg plezier in te hebben.
---