[ Technical ]Poziom: Projektowanie

Function calling — jak model AI wywołuje Twój kod

Mechanizm, na którym stoi każdy agent i każda poważna integracja AI: model nie wykonuje kodu — prosi o wywołanie funkcji, a Twój system decyduje i odpowiada. Z przykładem krok po kroku.

Krzysztof Leszczyński14 sierpnia 20262 min czytania

[ W skrócie ]

  • Function calling to protokół: model dostaje opisy funkcji, a gdy chce z której skorzystać, zwraca ustrukturyzowane żądanie — wykonanie należy do Ciebie.
  • Model NIGDY nie wykonuje kodu sam — to Twój system waliduje argumenty, wywołuje funkcję i odsyła wynik.
  • Jakość opisów funkcji i ich parametrów wprost decyduje o trafności wywołań — to dokumentacja pisana dla modelu.
  • Pętla wywołań (model prosi, system odpowiada, model kontynuuje) to fundament agentów.

Co to właściwie jest?

Function calling (u części dostawców: tool calling) to umowa między Twoim kodem a modelem:

  1. Ty deklarujesz funkcje — nazwa, opis, schemat parametrów.
  2. Model, gdy uzna, że funkcja pomoże w zadaniu, zwraca żądanie wywołania z konkretnymi argumentami.
  3. Twój system funkcję wykonuje (albo nie!) i odsyła wynik.
  4. Model kontynuuje z nową wiedzą.

Najważniejsze zdanie tego artykułu: model nie wykonuje niczego — on tylko prosi. Cała władza (i cała odpowiedzialność) zostaje w Twoim kodzie.

Krok po kroku na przykładzie

Deklaracja narzędzia (tu: składnia Anthropic, u innych dostawców niemal identyczna):

json
{
  "name": "sprawdz_stan_magazynu",
  "description": "Zwraca dostepna ilosc produktu w magazynie po SKU",
  "input_schema": {
    "type": "object",
    "properties": {
      "sku": { "type": "string", "description": "kod produktu, np. BUT-42-CZ" }
    },
    "required": ["sku"]
  }
}

Użytkownik pyta: „czy macie jeszcze czarne czterdziestkidwójki?”. Model odpowiada żądaniem:

json
{
  "type": "tool_use",
  "name": "sprawdz_stan_magazynu",
  "input": { "sku": "BUT-42-CZ" }
}

Twój kod wywołuje magazyn i odsyła wynik:

json
{
  "type": "tool_result",
  "content": "{ \"sku\": \"BUT-42-CZ\", \"dostepne\": 7 }"
}

Model kończy: „Tak, mamy 7 par na stanie”. Pętla może mieć wiele rund — i dokładnie ta pętla, obudowana limitami i uprawnieniami, robi z modelu agenta.

Zasady, które oszczędzają problemów

  • Waliduj argumenty przed wykonaniem. Schemat to deklaracja intencji, nie gwarancja — SKU sprawdź regexem, zakresy dat logiką.
  • Opisy pisz jak dokumentację. Model wybiera funkcję po opisie; „zwraca stan po SKU” działa, „handler magazynu” — nie. Dobre opisy plus przykłady w opisie parametrów potrafią podnieść trafność wywołań bardziej niż zmiana modelu na droższy.
  • Funkcje odczytu i zapisu rozdzielaj. Odczyty mogą być swobodne; zapisy chcesz móc wyłączyć jedną flagą albo obłożyć potwierdzeniem.
  • Loguj każdą rundę. Żądanie, argumenty, wynik — bez tego nie zdiagnozujesz, czemu model „dziwnie się zachował” w czwartek o 16:40.
  • function calling
  • tool calling
  • API
  • integracje
  • agenci AI
Udostępnij

Automatic AI

hello@automaticai.pl · automaticai.pl