Function calling (DE)
Function Calling (Funktionsaufruf) ist ein Mechanismus in großen Sprachmodellen (LLMs), der es dem Modell ermöglicht, mit externen Werkzeugen und APIs zu interagieren, indem es strukturierte Daten (in der Regel JSON) für den Aufruf von Funktionen generiert, anstatt eine direkte Textantwort zu geben[1].
Mit anderen Worten, das Modell bestimmt auf der Grundlage der Benutzeranfrage, welche Funktion aus einem vordefinierten Satz mit welchen Parametern aufgerufen werden soll. Dieser Mechanismus erweitert den Anwendungsbereich von LLMs, indem er ihnen ermöglicht, als Schnittstelle zwischen natürlicher Sprache und praktischen Aktionen zu dienen. Dies eröffnet Möglichkeiten zur Integration von KI in externe Systeme: Das Modell kann aktuelle Daten abrufen, Operationen durchführen oder Dienste nutzen, was besonders bei der Erstellung intelligenter Assistenten und autonomer Agenten wertvoll ist. Die Verwendung externer Werkzeuge verringert auch das Risiko von Halluzinationen (erfundenen Fakten), da auf verlässliche Quellen zurückgegriffen wird[2].
Geschichte und Implementierungsansätze
Frühe Ansätze (Prompting und Toolformer)
Die Idee, Sprachmodellen das Aufrufen von Werkzeugen beizubringen, entstand in den Jahren 2022–2023. Frühe Ansätze basierten auf komplexen Prompting-Techniken. So wurde 2022 das Schema ReAct vorgeschlagen, bei dem das Modell im Dialog zwischen Schlussfolgerungen (Reasoning) und Aktionen (Action), also Werkzeugaufrufen, abwechselte, die in einem einzigen Text kodiert waren.
Ein entscheidender Schritt war die Einführung des Modells Toolformer, das von Forschern von Meta Anfang 2023 vorgestellt wurde. Toolformer zeigte, dass ein LLM speziell darauf trainiert werden kann, externe Werkzeuge (wie Taschenrechner, Suchmaschinen oder Kalender) durch textuelle Hinweise selbstständig aufzurufen, indem es spezielle API-Aufruf-Tokens in den generierten Text einfügt[3].
Offizielle Unterstützung und Entwicklung
Einen besonderen Meilenstein setzte OpenAI, als das Unternehmen im Juni 2023 offiziell die Unterstützung für Function Calling in seine APIs für die Modelle GPT-3.5 und GPT-4 integrierte[4]. Die neuen Modellversionen wurden darauf trainiert, Situationen zu erkennen, in denen eine Benutzeranfrage den Aufruf einer externen Funktion impliziert, und ein präzise strukturiertes JSON-Objekt mit den entsprechenden Argumenten zu generieren. OpenAI bezeichnete diese Fähigkeit als „eine neue Möglichkeit, GPT zuverlässig mit externen Werkzeugen und APIs zu verbinden“.
Open-Source-Initiativen
Nach den kommerziellen Implementierungen erschienen auch Open-Source-Modelle, die darauf trainiert wurden, korrekte Funktionsaufrufe zu generieren.
- Gorilla: Ein Projekt der UC Berkeley, eine feinabgestimmte Version von LLaMA, die in der Lage ist, Aufrufe für Tausende verschiedener APIs zu formulieren. Zur Bewertung solcher Modelle wurde das Benchmark „Berkeley Function-Calling Leaderboard“ erstellt[5].
- ToolAlpaca, ToolLLaMA, Hermes: Serien von Open-Source-Modellen, die auf synthetischen Beispielen für Funktionsaufrufe trainiert wurden, welche oft von leistungsfähigeren Modellen generiert wurden.
Funktionsweise
Der Prozess der Nutzung von Function Calling umfasst in der Regel mehrere Schritte:
- Definition der Funktionen. Der Entwickler legt im Voraus einen Satz von Funktionen fest, die dem Modell zur Verfügung stehen (z. B. externe APIs), und beschreibt deren Signaturen und Zweck, typischerweise im JSON-Schema-Format.
- Analyse der Anfrage. Während des Dialogs analysiert das Modell die Absicht des Benutzers und entscheidet selbstständig, ob zur Beantwortung der Anfrage eine der definierten Funktionen aufgerufen werden soll.
- Generierung des Aufrufs. Wenn eine Aktion erforderlich ist, generiert das LLM anstelle von normalem Text eine spezielle strukturierte Ausgabe (z. B. ein JSON-Objekt mit dem Funktionsnamen und den Argumenten). Ist kein Aufruf notwendig, gibt das Modell eine normale Textantwort zurück.
- Ausführung der Funktion. Ein externes Programm (die Hülle eines Chatbots oder Agenten) empfängt das JSON, führt den tatsächlichen Aufruf der angegebenen Funktion mit den vorgeschlagenen Parametern durch und gibt das Ergebnis an das Modell zurück.
- Erstellung der endgültigen Antwort. Das Modell verwendet die erhaltenen Daten, um die finale Antwort für den Benutzer zu generieren[4].
Zur Steuerung dieses mehrstufigen Prozesses werden beim Training der Modelle spezielle Dialogformate verwendet, wie zum Beispiel das ChatML-Markup von OpenAI, bei dem neben den Rollen „Benutzer“ (user) und „Assistent“ (assistant) auch die Rolle „Funktion“ (function) eingeführt wird, um die Ergebnisse der Aufrufe zu übermitteln.
Anwendung und Vorteile
Die Fähigkeit, Funktionen aufzurufen, erweitert das Spektrum der mit LLMs lösbaren Aufgaben erheblich.
- Integration mit externen APIs. Das Modell kann Anfragen beantworten, die aktuelle Informationen erfordern, indem es externe Dienste aufruft (z. B. um Wetterdaten, Währungskurse oder Nachrichten abzurufen).
- Automatisierung von Benutzeraktionen. Ein LLM kann Routineaufgaben ausführen, wie das Senden von E-Mails, das Erstellen von Kalendereinträgen oder das Aufgeben von Bestellungen in Online-Shops.
- Zugriff auf Datenbanken und Analytik. Anfragen in natürlicher Sprache können in Aufrufe interner APIs oder SQL-Abfragen zur Datenextraktion und -analyse umgewandelt werden.
- Extraktion strukturierter Informationen. Das LLM kann selbstständig Fakten aus langen Texten extrahieren (z. B. Namen, Daten, Adressen) und diese in Form eines strukturierten JSON-Arrays zurückgeben, das für die weitere programmgesteuerte Verarbeitung geeignet ist.
Sicherheitsprobleme
Während Function Calling die Fähigkeiten von Modellen erweitert, birgt es gleichzeitig neue Risiken.
- Ungeprüfte Ausgaben. Die Interaktion des Modells mit externen Werkzeugen muss sorgfältig abgesichert werden. Wenn das Modell von einer API einen schädlichen oder fehlerhaften Wert erhält, kann es diesen in seine Antwort einbeziehen oder auf dessen Grundlage eine andere Funktion aufrufen, was zu unvorhersehbaren Konsequenzen führen kann.
- Angriffe über Funktionsargumente. Forscher haben Schwachstellen entdeckt, die spezifisch für den Function-Calling-Modus sind. Im Jahr 2025 wurde ein Angriff demonstriert, der als „die dunkle Seite des Function Calling“ (The Dark Side of Function Calling) bezeichnet wird. Sein Kernprinzip besteht darin, dem Modell eine spezielle „Funktion“ anzubieten, in deren Argumenten eine verbotene Anweisung (ein Jailbreak-Payload) versteckt ist. Das Modell generiert, dem Prinzip des Funktionsaufrufs folgend, Argumente, die regelwidrige Inhalte enthalten, und umgeht so die Moderationsfilter. Tests zeigten, dass der Angriff in über 90 % der Fälle bei sechs modernen Modellen, darunter GPT-4 und Claude, erfolgreich war[2].
Um solche Vorfälle zu verhindern, wird empfohlen, dem Modell nur vertrauenswürdige Werkzeuge zur Verfügung zu stellen, vor der Ausführung kritischer Aktionen eine Benutzerbestätigung einzuholen sowie spezielle „defensive“ Prompts und eine strikte Überprüfung der Argumente auf gefährliche Inhalte zu implementieren.
Weblinks
- Offizielle Ankündigung von Function Calling durch OpenAI
- Projektseite von 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.
Literatur
- 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.
Einzelnachweise
- ↑ „What is Function Calling with LLMs?“. Hopsworks. [1]
- ↑ 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]
- ↑ Schick, T. et al. „Toolformer: Language Models Can Teach Themselves to Use Tools“. arXiv:2302.04761, 2023. [3]
- ↑ 4.0 4.1 „Function calling and other API updates“. OpenAI, 2023. [4]
- ↑ „Gorilla: Large Language Model Connected to Massive APIs“. University of California, Berkeley. [5]