Tool calling: hoe een AI-agent externe tools aanroept

Tool calling, of tool-aanroep, is het vermogen van een AI-model om de uitvoering van een specifieke functie met specifieke argumenten aan te vragen, in plaats van alleen in tekst te antwoorden.

Geschreven door de Atako-agents · Nagelezen en goedgekeurd door Romain Laodicina · CTO bij Atako

Korte definitie

Tool calling (tool-aanroep, ook function calling genoemd) is het vermogen van een taalmodel om te herkennen dat een verzoek een externe actie vereist, zoals een database lezen of een bericht versturen, en om een gestructureerde aanroepaanvraag met bijbehorende argumenten te produceren. Een applicatie voert deze aanroep vervolgens uit en stuurt het resultaat terug naar het model.

Zonder tool calling kan een taalmodel maar één ding: tekst produceren op basis van tekst. Het kan geen actuele database raadplegen, geen bericht versturen, geen actie activeren in externe software. Tool calling is de brug die een model met een extern systeem verbindt. Het is wat een pratend model omvormt tot een AI-agent die kan handelen, de basisbouwsteen achter elke autonome agent.

Definitie in detail

Tool calling, ook function calling genoemd, is het vermogen van een taalmodel om op een verzoek niet uitsluitend met tekst te reageren, maar met een gestructureerde aanvraag om een specifieke functie uit te voeren, met argumenten die volgens een vooraf bepaald schema zijn ingevuld. De documentatie van Anthropic beschrijft het principe zo: het model bepaalt of het een tool moet aanroepen op basis van het verzoek en de beschrijving van de tool, en stuurt vervolgens een gestructureerde aanroep terug die de applicatie uitvoert (client-side) of die de leverancier zelf uitvoert (server-side, voor bepaalde ingebouwde tools). De documentatie van OpenAI, die de term function calling in 2023 populariseerde, beschrijft een identiek mechanisme: het model antwoordt met een machineleesbare functieaanroep in plaats van vrije tekst, waarbij het aan de applicatie is om die uit te voeren.

Beide toonaangevende leveranciers komen overeen op de fundamentele definitie: een functie wordt beschreven door een naam, een beschrijving in natuurlijke taal, en een JSON-schema dat de verwachte parameters vermeldt. Het model steunt uitsluitend op deze drie elementen om te beslissen of het de tool moet aanroepen en hoe het de argumenten moet invullen. Er bestaat geen significant verschil tussen beide benaderingen op dit basisprincipe; de verschillen zitten in de implementatiedetails (formaten voor parallelle aanroepen, tools die de leverancier van nature aanbiedt, foutafhandeling).

Tool calling is wat een gewone chatbot onderscheidt van een systeem dat op de echte wereld kan handelen: een database raadplegen, op het web zoeken, in een bestand schrijven, een bericht versturen, een betaling activeren. Het is ook de basisbouwsteen die het MCP-protocol mogelijk maakt, ontworpen om te standaardiseren hoe tools worden beschreven en aan een model beschikbaar gesteld.

Hoe het werkt

Het verloop van een tool-aanroep volgt altijd hetzelfde patroon in meerdere stappen. Eerst definieert de applicatie een lijst van beschikbare tools voor het model, elk met zijn naam, beschrijving en argumentenschema. Vervolgens ontvangt het model het verzoek van de gebruiker samen met deze toollijst, en beslist het, afhankelijk van de context, of het rechtstreeks in tekst moet antwoorden of de uitvoering van een tool moet aanvragen.

Als het besluit een tool aan te roepen, stuurt het model een gestructureerd antwoord terug met de naam van de tool en de waarden van zijn argumenten, zonder zelf iets uit te voeren. Het is de applicatie die dit verzoek ontvangt, de actie daadwerkelijk uitvoert (een API aanroepen, een database lezen, een bestand schrijven), en het resultaat vervolgens in een leesbare vorm naar het model terugstuurt. Het model zet zijn antwoord dan voort op basis van dit resultaat, en kan meerdere opeenvolgende tool-aanroepen aan elkaar rijgen als de taak dat vereist.

Deze scheiding is belangrijk voor de veiligheid: het model voert nooit zelf code uit, het stelt alleen een aanroep voor. Het is de applicatie die de controle behoudt over wat daadwerkelijk wordt uitgevoerd, en die een aanroep kan weigeren als niet aan de voorwaarden is voldaan.

Concreet voorbeeld met Atako

Bij Atako staat tool calling centraal in de werking van een agent. Elke gekoppelde integratie (Slack, Notion, GitHub, HubSpot, en een veertigtal andere) stelt een reeks specifieke acties beschikbaar, zoals post_message op Slack of create_issue op GitHub, die de agent kan aanroepen wanneer hij oordeelt dat de taak dat vereist.

Maar bij Atako wordt een tool-aanroep nooit rechtstreeks uitgevoerd. Die gaat eerst door een toestemmingscontrole: het platform controleert of er een "grant" bestaat voor deze agent en deze specifieke verbinding, of de gevraagde actie inderdaad op de lijst met toegestane acties van deze grant staat, en of het toegekende bereik (alleen-lezen of lezen-schrijven) de betreffende actie daadwerkelijk dekt. Als aan een van deze voorwaarden niet is voldaan, wordt de aanroep geweigerd en wordt de mislukking vastgelegd. Dit beslissingspad, waarbij de agent een aanroep voorstelt en het platform controleert vóór uitvoering, is precies de veiligheidslogica die tool calling mogelijk maakt: het model stelt voor, de infrastructuur beslist.

Veelgemaakte fouten

Een veelvoorkomende fout is te denken dat het model zelf de tool uitvoert die het aanroept. Dat is nooit het geval: het model produceert een gestructureerde aanvraag, het is altijd een applicatie of platform dat de actie daadwerkelijk uitvoert en die op elk moment kan weigeren.

Tweede fout: denken dat een model toegang geven tot een tool neerkomt op volledige en onbeperkte toegang tot die dienst geven. Een goed ontworpen tool-callingsysteem beperkt de beschikbare acties precies, met toestemmingen per actie en per bereik, in plaats van een generieke alles-of-niets-toegang.

Derde fout: het belang van de toolbeschrijving onderschatten. Het model beschikt alleen over de naam, de beschrijving en het argumentenschema om te beslissen wanneer en hoe een tool aan te roepen. Een vage of dubbelzinnige beschrijving levert verkeerd gekozen aanroepen of onjuiste argumenten op, zelfs met een krachtig model.

Ten slotte halen sommigen tool calling en MCP door elkaar. Tool calling is het basismechanisme, aanwezig sinds 2023 bij de grote modelleveranciers. MCP is een recenter protocol dat standaardiseert hoe tools worden beschreven en met een model verbonden, om te voorkomen dat voor elke tool en elke leverancier opnieuw een andere integratie moet worden ontwikkeld.

Verwante termen

Veelgestelde vragen

Wat is tool calling in kunstmatige intelligentie?

Tool calling, of tool-aanroep, is het vermogen van een taalmodel om niet met tekst te antwoorden, maar met een gestructureerde aanvraag om een specifieke functie met vastgelegde argumenten uit te voeren. Een externe applicatie voert deze functie vervolgens uit en stuurt het resultaat terug naar het model, dat zijn antwoord op basis daarvan voortzet.

Wat is het verschil tussen tool calling en function calling?

Dat zijn twee namen voor hetzelfde mechanisme. OpenAI populariseerde de term function calling in 2023, Anthropic en andere leveranciers spreken eerder van tool use of tool calling. Het principe blijft identiek: het model kiest een tool, vult de argumenten in, en een applicatie voert de daadwerkelijke aanroep uit.

Kan een AI-agent zomaar elke tool aanroepen zonder controle?

Nee, op een serieus platform verloopt elke tool-aanroep via een toestemmingslaag die controleert of de agent het recht heeft die specifieke tool te gebruiken, en met welk toegangsbereik. Het model stelt de aanroep voor, maar het is de applicatie die beslist om die uit te voeren of te weigeren.

Werkt tool calling met elk taalmodel?

Nee, daarvoor is een model nodig dat specifiek is getraind om dit gestructureerde outputformaat te produceren. De meeste recente modellen van grote leveranciers (onder andere OpenAI, Anthropic) ondersteunen dit van nature, maar een ouder of kleiner model kan mogelijk geen betrouwbare tool-aanroep genereren.

Wat hierna te lezen

Bronnen

Romain Laodicina

CTO bij Atako

Deze inhoud is geschreven door de AI-agents van Atako en vervolgens nagelezen, gecorrigeerd en goedgekeurd door Romain Laodicina, CTO van Atako.

Implementeer uw eerste AI-agenten

Maak gratis een account aan en lanceer een agent in enkele minuten, zonder code.

Blijf voorop lopen op het gebied van AI.

Ontvang productnieuws, nieuwe agenten en onze AI-analyses rechtstreeks in uw mailbox. Geen spam, u kunt zich op elk moment uitschrijven.