Aplikacja przekazuje modelowi listę funkcji wraz ze schematami JSON parametrów. Model, dzięki post-treningowi (instruction tuning + RLHF na tool-use), decyduje czy odpowiedzieć tekstem, czy wyemitować strukturalne wywołanie typu {name, arguments}. Runtime parsuje wywołanie, waliduje argumenty względem schematu, wykonuje funkcję i wynik (jako tool message) wkleja do kontekstu. Model w kolejnym kroku wykorzystuje wynik do dalszego rozumowania lub odpowiedzi dla użytkownika. Pętla może się powtórzyć wielokrotnie (multi-step tool use) i — od listopada 2023 — model może wyemitować kilka wywołań naraz (parallel tool calls).
Czysty LLM jest izolowany od świata — nie ma dostępu do aktualnych danych, baz danych, kalkulatorów, systemów firmowych czy fizycznych urządzeń. Function Calling rozwiązuje problem niezawodnego, ustrukturyzowanego pomostu między swobodnym rozumowaniem modelu a deterministycznym wykonaniem zewnętrznego kodu, eliminując kruche parsowanie ad-hoc tekstu i halucynacje formatu.
Model może wymyślić nieistniejącą funkcję albo podać argumenty niezgodne ze schematem. Mitigacja: walidacja JSON schema przed wykonaniem, ścisłe modele (strict mode / structured outputs), retry z komunikatem o błędzie.
Agent może utknąć w pętli wywołań tej samej funkcji lub wywoływać nadmiarowo kosztowne narzędzia. Mitigacja: max_iterations, deduplikacja wywołań, budżety tokenów i czasu.
Wyniki funkcji (zwłaszcza wyszukiwanie i SQL) szybko zapełniają okno kontekstu, podnosząc koszt i degradując jakość. Mitigacja: streszczanie wyników, paginacja, selektywne wstawianie.
Treść zwracana z funkcji (np. strona internetowa, e-mail, wynik SQL) może zawierać instrukcje próbujące przejąć kontrolę nad agentem. Mitigacja: izolacja tool messages, oznaczanie nieufnej treści, polityki uprawnień narzędzi.
Yao i in. pokazali, że LLM może w jednym łańcuchu myśli przeplatać kroki "thought" i "action" wywołujące zewnętrzne narzędzia — fundament konceptualny dla późniejszego function callingu.
Meta AI publikuje Toolformer (luty 2023): model w trakcie samonauki wstawia w tekście wywołania API i uczy się, kiedy ich potrzebuje — bezpośredni akademicki poprzednik produkcyjnego function callingu.
13 czerwca 2023 OpenAI udostępnia function calling w modelach gpt-3.5-turbo-0613 i gpt-4-0613. Po raz pierwszy szeroko dostępny komercyjny LLM emituje ustrukturyzowane JSON-owe wywołania funkcji jako pierwszorzędny tryb odpowiedzi.
Listopad 2023: OpenAI DevDay wprowadza pole tools/tool_choice (zastępujące functions/function_call) oraz parallel tool calls — model w jednej odpowiedzi może zgłosić wiele niezależnych wywołań.
Function calling staje się standardem branżowym — Anthropic Claude wprowadza Tool Use w GA (maj 2024), Google Gemini udostępnia Function Calling, frameworki (LangChain, LlamaIndex) ujednolicają interfejsy.
Anthropic publikuje MCP (listopad 2024) — otwarty protokół standaryzujący sposób, w jaki narzędzia, dane i zasoby są udostępniane modelom przez function calling, niezależnie od dostawcy LLM.
Model — kierując się opisami narzędzi i historią konwersacji — wybiera, którą funkcję (jeśli w ogóle) wywołać oraz jakie podać argumenty. Routing odbywa się w przestrzeni tokenów wyjściowych modelu, bez zewnętrznego routera.
Pojedyncza decyzja modelu o wywołaniu jest sekwencyjna, ale od listopada 2023 (OpenAI parallel tool calls) model może wyemitować wiele niezależnych wywołań w jednej turze, które runtime wykonuje równolegle.
Function Calling jest wzorcem aplikacyjnym i orkiestracyjnym — działa wszędzie, gdzie działa model językowy obsługujący tool use, niezależnie od backendu sprzętowego.