Toolaanroep: hoe AI-modellen de buitenwereld inschakelen
Een toolaanroep (in het Engels: tool calling of function calling) is de manier waarop een kunstmatige-intelligentiesysteem, meestal een taalmodel zoals ChatGPT of Claude, tijdens een gesprek zelf besluit om een extern programma te gebruiken. Denk aan een rekenmachine, een zoekmachine, een agenda-app of een stuk broncode dat wordt uitgevoerd. In plaats van zelf te 'gokken' naar een antwoord, herkent het model dat een taak beter door een gespecialiseerd hulpmiddel kan worden opgelost en roept dat hulpmiddel aan.
Een vergelijking helpt: stel je een receptioniste voor die alle talen spreekt en enorm veel weet, maar geen toegang heeft tot de interne systemen van een bedrijf. Vraag je haar naar het actuele banksaldo, dan kan ze niet zomaar een getal verzinnen; ze belt de boekhouding, krijgt het juiste cijfer terug en geeft dat aan jou door. Toolaanroep is precies dat telefoontje: het taalmodel formuleert een verzoek in een vast formaat, een extern systeem voert het uit, en het resultaat komt terug het gesprek in.
Wat is het precies?
Taalmodellen zoals GPT-4 of Claude zijn in de kern tekstvoorspellers: ze berekenen welk volgend woord het meest waarschijnlijk is, gebaseerd op patronen uit hun trainingsdata. Ze hebben geen ingebouwde rekenmachine, geen live internetverbinding en geen geheugen van gebeurtenissen na hun trainingsdatum. Toolaanroep lost dit op door het model, naast tekst genereren, ook een gestructureerd verzoek te laten opstellen.
Dat werkt in een aantal stappen. Eerst krijgt het model bij de start van een gesprek een lijst met beschikbare 'tools' te zien, elk met een naam, een beschrijving en de verwachte invoerparameters. Denk aan een tool get_weather(stad) die het weer opzoekt, of run_code(code) die programmacode uitvoert. Dit is vergelijkbaar met een menukaart: het model weet welke gerechten er te bestellen zijn, maar kookt zelf niets.
Herkent het model tijdens het genereren van een antwoord dat zo'n tool nuttig is, dan stopt het niet met gewone tekst, maar produceert het een stukje gestructureerde data, meestal in het formaat JSON, met de toolnaam en de gevraagde parameters. Vraagt een gebruiker bijvoorbeeld 'wat is 4728 keer 391?', dan kan het model in plaats van zelf te rekenen een aanroep als calculator(4728, 391) genereren.
Vervolgens onderschept de software eromheen, meestal een applicatie die door ontwikkelaars is gebouwd, dit verzoek. Zij voert de daadwerkelijke berekening of zoekopdracht uit buiten het taalmodel om, en stuurt het resultaat terug als nieuwe informatie in het gesprek. Het model leest dat resultaat en formuleert daarmee zijn uiteindelijke antwoord aan de gebruiker. Het taalmodel zelf voert dus nooit code uit of raadpleegt geen database; het beslist alleen wanneer dat nodig is en met welke argumenten.
Belangrijk is dat dit proces zich soms meerdere keren herhaalt binnen één antwoord. Een model kan bijvoorbeeld eerst een zoekopdracht doen, de resultaten lezen, besluiten dat een tweede zoekopdracht nodig is, en pas daarna een definitief antwoord geven. Dit noemt men wel een 'agentische' werkwijze: het model plant een reeks stappen in plaats van in één keer te antwoorden.
Wat wil men ermee bereiken?
De kern van het probleem dat toolaanroep oplost, is dat taalmodellen goed zijn in taal en redeneren, maar onbetrouwbaar in feiten en berekeningen. Ze kunnen plausibel klinkende maar onjuiste informatie produceren, een verschijnsel dat bekendstaat als 'hallucineren'. Door een rekenkundige vraag door te sturen naar een echte rekenmachine in plaats van die zelf te 'raden', verdwijnt die foutbron voor dat specifieke onderdeel.
Een tweede doelstelling is actualiteit. Een taalmodel is getraind op een momentopname van tekst tot een bepaalde datum en weet dus niets van gebeurtenissen daarna, tenzij het via een tool het live internet kan raadplegen. Toolaanroep maakt het mogelijk om actuele beurskoersen, weersvoorspellingen of nieuwsberichten op te halen zonder het hele model opnieuw te trainen.
Ten derde wil men taalmodellen laten handelen in de echte wereld, niet alleen erover praten. Door tools te koppelen aan agenda's, e-mailsystemen, bedrijfsdatabases of zelfs robotarmen, verandert een chatbot in een assistent die daadwerkelijk taken uitvoert: een afspraak inplannen, een bestelling plaatsen, of een stuk software testen en repareren. Dit is de stap van een 'pratend' naar een 'doenerig' systeem, vaak aangeduid als een AI-agent.
Ten slotte speelt betrouwbaarheid en controleerbaarheid een rol. Omdat een toolaanroep een expliciet, gestructureerd verzoek is, kunnen ontwikkelaars precies loggen welke acties een model onderneemt, grenzen instellen aan wat het mag doen, en gevaarlijke of ongewenste acties blokkeren voordat ze worden uitgevoerd.
Voorbeelden uit de praktijk
OpenAI introduceerde in juni 2023 'function calling' als functie in zijn API voor GPT-3.5 en GPT-4, waarmee ontwikkelaars voor het eerst op grote schaal modellen konden koppelen aan eigen software, bijvoorbeeld om klantvragen automatisch door te zetten naar het juiste interne systeem.
ChatGPT kreeg vanaf 2023 pluginfunctionaliteit en later ingebouwde tools zoals websurfen, een Python-code-interpreter en beeldgeneratie; elk van deze functies draait technisch op hetzelfde principe van toolaanroep.
Anthropic voegde in 2024 een vergelijkbare functie toe aan Claude, en introduceerde in 2024-2025 daarnaast het Model Context Protocol (MCP), een open standaard waarmee externe tools en databronnen op een uniforme manier aan verschillende AI-modellen gekoppeld kunnen worden, in plaats van dat elke leverancier zijn eigen systeem gebruikt.
GitHub Copilot en vergelijkbare programmeer-assistenten gebruiken toolaanroep om bestanden te lezen, code te compileren en testresultaten te controleren, waardoor ze niet alleen suggesties doen maar ook zelfstandig fouten kunnen opsporen en herstellen.
In de wetenschap worden AI-agents met toolaanroep ingezet om laboratoriumapparatuur aan te sturen of grote datasets te doorzoeken; onderzoeksgroepen experimenteren bijvoorbeeld met modellen die zelfstandig chemische literatuur raadplegen en vervolgens een simulatietool aanroepen om een voorspelling te toetsen.
Hoe ver is de techniek?
Toolaanroep is inmiddels een gangbare, breed beschikbare functie bij vrijwel alle grote taalmodel-aanbieders, waaronder OpenAI, Anthropic, Google en Meta. De basisvorm, één tool per beurt netjes aanroepen, werkt tegenwoordig behoorlijk betrouwbaar voor eenvoudige, goed gedefinieerde taken zoals een rekensom of een enkele zoekopdracht.
Lastiger wordt het bij complexere, meerstaps-taken waarbij een model zelf een plan moet maken, meerdere tools in de juiste volgorde moet inzetten en tussentijds moet bijsturen als iets misgaat. Hier blijven modellen foutgevoelig: ze kiezen soms de verkeerde tool, verzinnen parameters die niet kloppen, of stoppen te vroeg. Benchmarks die dit meten, zoals taken waarbij een model een compleet softwareproject moet aanpassen, laten zien dat succespercentages sterk uiteenlopen per model en taaktype, en dat menselijke controle vaak nog nodig is.
Een terugkerend obstakel is veiligheid: een model dat tools mag aanroepen, kan in theorie ook schadelijke acties ondernemen, zeker als het zelf toegang krijgt tot internet, bestanden of betaalsystemen. Onderzoekers waarschuwen voor 'prompt injection', waarbij kwaadwillenden tekst op een webpagina of in een document verstoppen die het model misleidt tot ongewenste toolaanroepen. Dit is een actief onderzoeksgebied binnen AI-veiligheid, en de meeste aanbieders bouwen daarom beperkingen, bevestigingsstappen en logging in.
De opkomst van open standaarden zoals het Model Context Protocol wijst op een volgende fase: niet elke ontwikkelaar hoeft meer zijn eigen koppeling te bouwen tussen een specifiek model en een specifieke tool, maar kan aansluiten op een gedeeld ecosysteem van tools die met meerdere modellen werken. Dit staat echter nog in een vroeg stadium van adoptie.
Wie werken eraan?
OpenAI (Verenigde Staten) was een van de eerste aanbieders die function calling breed beschikbaar maakte in zijn API en bouwt dit verder uit binnen ChatGPT en zijn ontwikkelaarsplatform. Anthropic (Verenigde Staten), de maker van Claude, ontwikkelt zowel toolaanroepfunctionaliteit als het bredere Model Context Protocol als open standaard. Google DeepMind (Verenigde Staten/Verenigd Koninkrijk) integreert vergelijkbare functionaliteit in zijn Gemini-modellen, onder meer gekoppeld aan Google-diensten zoals Zoeken en Agenda.
Daarnaast werken universitaire onderzoeksgroepen wereldwijd, onder meer aan Stanford University en Carnegie Mellon University in de Verenigde Staten, aan de fundamentele vraag hoe modellen betrouwbaarder kunnen plannen en tools kunnen combineren, vaak gepubliceerd via open platforms zoals arXiv. Ook opensource-gemeenschappen rond projecten als LangChain en Hugging Face bouwen gereedschappen waarmee ontwikkelaars zelf toolaanroep kunnen implementeren, los van één specifieke modelaanbieder.