Function calling (LLM) (NL)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (Functieaanroepen) — dit is een mechanisme in grote taalmodellen (LLM) waarmee het model kan communiceren met externe tools en API's door gestructureerde gegevens te genereren (doorgaans JSON) voor het aanroepen van functies in plaats van een rechtstreeks tekstantwoord[1].

Anders gezegd: het model bepaalt op basis van de gebruikersvraag welke functie uit de aangeboden set moet worden aangeroepen en met welke parameters. Dit mechanisme vergroot het toepassingsgebied van LLM's, zodat ze kunnen dienen als interface tussen natuurlijke taal en praktische handelingen. Dit opent mogelijkheden voor de integratie van AI met externe systemen: het model kan actuele gegevens opvragen, bewerkingen uitvoeren of gebruikmaken van diensten, wat bijzonder waardevol is bij het ontwikkelen van intelligente assistenten en autonome agenten. Het gebruik van externe tools vermindert ook het risico op hallucinaties (verzonnen feiten) doordat er wordt teruggevallen op betrouwbare bronnen[2].

Geschiedenis en benaderingen voor implementatie

Vroege benaderingen (prompting en Toolformer)

Het idee om taalmodellen te leren tools aan te roepen nam vorm aan in 2022–2023. Vroege benaderingen waren gebaseerd op complexe prompting-technieken. Zo werd in 2022 het schema ReAct voorgesteld, waarbij het model tijdens een dialoog afwisselde tussen redeneren en handelen (het aanroepen van tools), vastgelegd in één tekst.

Een sleutelstap was de introductie van het model Toolformer, gepresenteerd door onderzoekers van Meta begin 2023. Toolformer toonde aan dat LLM's specifiek kunnen worden nageschoold om zelfstandig externe tools aan te roepen (rekenmachine, zoekmachine, kalender) op basis van tekstsignalen, door speciale API-aanroeptokens in de gegenereerde tekst in te voegen[3].

Officiële ondersteuning en verdere ontwikkeling

Een bijzondere mijlpaal werd gemarkeerd door OpenAI, dat in juni 2023 officieel ondersteuning voor Function Calling introduceerde in zijn API's voor de modellen GPT-3.5 en GPT-4[4]. Nieuwe versies van de modellen werden nageschoold om situaties te herkennen waarin een gebruikersverzoek om een externe functieaanroep vraagt, en om een nauwkeurig gestructureerd JSON-object met argumenten te genereren. OpenAI noemde deze mogelijkheid "een nieuwe manier om GPT betrouwbaar te verbinden met externe tools en API's".

Open initiatieven

Na de commerciële implementaties verschenen open modellen die zijn nageschoold voor het genereren van correcte functieaanroepen.

  • Gorilla: Een project van UC Berkeley, een nageschoolde versie van LLaMA, in staat om aanroepen te genereren naar duizenden verschillende API's. Om dergelijke modellen te evalueren werd de Berkeley Function-Calling Leaderboard benchmark gecreëerd[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Reeksen open modellen die zijn nageschoold op synthetische voorbeelden van functieaanroepen, vaak gegenereerd door krachtigere modellen.

Werkmechanisme

Het proces van het gebruik van Function Calling omvat doorgaans meerdere stappen:

  1. Functiedefinitie. De ontwikkelaar definieert van tevoren een set functies die beschikbaar zijn voor het model (bijvoorbeeld externe API's) en beschrijft hun signaturen en doeleinden, doorgaans in JSON Schema-formaat.
  2. Verzoekanalyse. Tijdens de dialoog analyseert het model de intentie van de gebruiker en beslist zelfstandig of een van de gedefinieerde functies moet worden aangeroepen om te antwoorden.
  3. Generatie van de aanroep. Als een actie vereist is, genereert de LLM in plaats van gewone tekst een speciale gestructureerde uitvoer (bijvoorbeeld JSON met de naam van de functie en de argumenten). Als er geen aanroep nodig is, geeft het model een gewoon tekstantwoord terug.
  4. Uitvoering van de functie. Een extern programma (de chatbot-omgeving of een agent) ontvangt de JSON, voert de daadwerkelijke aanroep van de opgegeven functie uit met de voorgestelde parameters en geeft het resultaat terug aan het model.
  5. Vorming van het eindantwoord. Het model gebruikt de ontvangen gegevens om een definitief antwoord voor de gebruiker te genereren[4].

Voor het beheren van dit meerstappige proces worden tijdens de modeltraining speciale dialoogformaten gebruikt, zoals de ChatML-opmaak van OpenAI, waarbij naast de rollen "gebruiker" en "assistent" ook de rol "functie" wordt geïntroduceerd voor het doorgeven van aanroepresultaten.

Toepassingen en voordelen

De mogelijkheid om functies aan te roepen vergroot het spectrum van taken dat met behulp van LLM's kan worden opgelost aanzienlijk.

  • Integratie met externe API's. Het model kan reageren op verzoeken die actuele informatie vereisen door externe diensten aan te roepen (bijvoorbeeld voor het ophalen van het weer, wisselkoersen of nieuws).
  • Automatisering van gebruikersacties. LLM's kunnen routinetaken uitvoeren: e-mails verzenden, agenda-afspraken aanmaken of bestellingen plaatsen in webwinkels.
  • Toegang tot databases en analyses. Verzoeken in natuurlijke taal kunnen worden vertaald naar aanroepen van interne API's of SQL-query's voor het ophalen en analyseren van gegevens.
  • Extractie van gestructureerde informatie. Een LLM kan zelf feiten uit een lange tekst halen (zoals namen, datums en adressen) en deze teruggeven als een gestructureerde JSON-array, geschikt voor verdere programmatische verwerking.

Beveiligingsproblemen

Terwijl Function Calling de mogelijkheden van modellen vergroot, brengt het tegelijkertijd nieuwe risico's met zich mee.

  • Niet-geverifieerde uitvoer. De interactie van het model met externe tools moet zorgvuldig worden beveiligd. Als het model van een API een kwaadaardige of foutieve waarde ontvangt, kan het deze opnemen in het antwoord of een andere functie aanroepen op basis daarvan, wat tot onvoorspelbare gevolgen kan leiden.
  • Aanvallen via functieargumenten. Onderzoekers hebben kwetsbaarheden ontdekt die specifiek zijn voor de Function Calling-modus. In 2025 werd een aanval gedemonstreerd die de "Donkere kant van Function Calling" werd genoemd. De kern ervan is het aanbieden aan het model van een speciale "functie" waarbinnen in de argumenten een verboden instructie is verborgen (jailbreak-payload). Het model, dat het principe van functieaanroepen volgt, genereert argumenten die regelovertredende inhoud bevatten en omzeilt daarmee moderatiefilters. Testen toonde aan dat de aanval in meer dan 90% van de gevallen slaagde op zes moderne modellen, waaronder GPT-4 en Claude[2].

Om dergelijke incidenten te voorkomen, wordt aanbevolen het model alleen van vertrouwde tools te voorzien, gebruikersbevestiging in te voeren vóór het uitvoeren van kritieke acties, en speciale "defensieve" prompts en strikte controle van argumenten op gevaarlijke inhoud toe te passen.

Verwijzingen

  • Officiële aankondiging van Function Calling door OpenAI
  • Projectpagina van Gorilla LLM
  • Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
  • LangChain (2025). Tool Calling (Documentation). LangChain Docs.
  • Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
  • Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
  • Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
  • University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.

Literatuur

  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
  • OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.

Noten

  1. «What is Function Calling with LLMs?». Hopsworks. [1]
  2. 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [2]
  3. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [3]
  4. 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [4]
  5. «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [5]