Przejdź do treści
1.8Początkujący6 min

Tool calling: jak agenci AI korzystają z narzędzi

Sebastian KarallZaktualizowano 28 października 2026
Definicja

Tool calling (inaczej function calling) to kluczowa zdolność, dzięki której agent AI wychodzi poza samo generowanie tekstu: LLM otrzymuje czytelne maszynowo opisy narzędzi (funkcji, API, źródeł danych) i w razie potrzeby tworzy ustrukturyzowane wywołanie z parametrami, które wykonuje aplikacja. Wynik wraca do modelu, który na tej podstawie planuje kolejny krok. W ten sposób LLM przestaje być jedynie generatorem tekstu i staje się aktywnym podmiotem, który postrzega, decyduje i uruchamia działania w rzeczywistych systemach.

W skrócie

  • Tool calling to pomost między LLM a światem zewnętrznym: model zwraca ustrukturyzowane wywołanie (nazwę funkcji oraz parametry zgodne z JSON Schema), aplikacja je wykonuje i przekazuje wynik jako obserwację z powrotem do pętli rozumowania (Perceive-Reason-Act-Observe).
  • LLM nie wywołuje narzędzi samodzielnie, tylko proponuje wywołanie. Wykonanie, walidacja i uprawnienia leżą po stronie otaczającego kodu. Właśnie tam powinny się znaleźć uprawnienia narzędzi, walidacja danych wejściowych i human-in-the-loop przy działaniach nieodwracalnych.
  • Najczęstszym źródłem błędów nie są modele, lecz niejasne lub nakładające się definicje narzędzi. Precyzyjne nazwy, jednoznaczne opisy i klauzula „kiedy nie używać” działają skuteczniej niż jakikolwiek trik w prompcie.
  • W 2026 roku dobrą praktyką jest 3-7 aktywnie załadowanych narzędzi; od około 10 narzędzi zaczyna się mierzalne pogorszenie trafności wyboru narzędzia. Dynamiczne wykrywanie narzędzi zamiast statycznego ładowania całego zestawu pozwala zachować precyzję wyboru.
  • Model Context Protocol (MCP) to otwarty standard podłączania narzędzi: przez serwery MCP agent może w ustandaryzowany sposób korzystać z narzędzi i źródeł danych, bez pisania własnego kodu integracyjnego dla każdego połączenia.
  • Bezpieczeństwo to nie dodatek: zakresy uprawnień według zasady najmniejszych uprawnień dla każdego narzędzia, allowlisty, kroki potwierdzenia przy operacjach zapisu lub działaniach nieodwracalnych oraz obserwowalność wszystkich wywołań narzędzi są obowiązkowe, gdy tylko agent dotyka rzeczywistych systemów.

Czym jest tool calling?

Tool calling (inaczej function calling lub tool use) to kluczowa zdolność, dzięki której agent AI wychodzi poza samo generowanie tekstu. LLM otrzymuje czytelne maszynowo opisy narzędzi, funkcji, API i źródeł danych, a w razie potrzeby tworzy ustrukturyzowane wywołanie z parametrami, które wykonuje otaczająca aplikacja. Wynik wraca do modelu jako obserwacja, a model planuje na tej podstawie kolejny krok. W ten sposób LLM z generatora tekstu staje się podmiotem, który działa.

Trzy najważniejsze odpowiedzi na start:

  • Co dzieje się technicznie? Model nie zwraca ciągłego tekstu, tylko ustrukturyzowane wywołanie: nazwę funkcji oraz argumenty w formacie JSON. Aplikacja wykonuje to wywołanie i przekazuje wynik z powrotem do modelu.
  • Kto właściwie wywołuje narzędzie? Nie sam LLM. Model proponuje wywołanie; faktyczne wykonanie, łącznie ze sprawdzeniem uprawnień i walidacją, odbywa się w otaczającym kodzie. To rozdzielenie jest podstawą każdej architektury bezpieczeństwa.
  • Dlaczego to kluczowa zdolność agentów? Bez tool use LLM pozostaje doradcą, który potrafi tylko mówić. Dopiero tool calling zmienia silnik rozumowania w agenta, który postrzega, planuje, działa i obserwuje, czyli realizuje pełną pętlę Perceive → Reason → Act → Observe.

Konkretny przykład: sprawdzenie dostępności i rezerwacja terminu

Załóżmy, że agent ma zarezerwować klientowi termin konsultacji. Model dostaje dwa narzędzia, każde z nazwą, opisem i schematem parametrów:

  1. get_availability(date: string): zwraca wolne terminy dla danej daty.
  2. book_appointment(slot_id: string, customer_email: string): rezerwuje termin.

Przebieg:

  1. Reason: Użytkownik pisze: „Czy w przyszły wtorek przed południem jest jeszcze wolny termin?”. Model rozpoznaje, że najpierw potrzebuje informacji o dostępności.
  2. Act: Zamiast odpowiedzi tekstowej model zwraca ustrukturyzowane wywołanie: get_availability(date: "2026-06-16").
  3. Execute: To aplikacja, a nie model, wywołuje prawdziwe API kalendarza i otrzymuje dwa wolne terminy.
  4. Observe: Wynik (["09:00", "10:30"]) trafia z powrotem do modelu jako obserwacja.
  5. Loop: Model zadaje pytanie doprecyzowujące albo, po potwierdzeniu, wywołuje book_appointment(...).

Ważne: krok zapisu (book_appointment) jest nieodwracalny w swoich skutkach. Właśnie tutaj, zanim agent wykona akcję, potrzebny jest krok human-in-the-loop lub krok potwierdzenia.

Mechanika function calling

We wszystkich popularnych API modeli LLM function calling działa według tego samego podstawowego wzorca, niezależnie od dostawcy:

  1. Definicja narzędzia: Każde narzędzie opisuje się za pomocą JSON Schema: nazwa, opis celu w języku naturalnym i typowane parametry. Ten opis to jedyna informacja, na podstawie której model decyduje, czy i jak użyje narzędzia.
  2. Wybór narzędzia: W kroku rozumowania model wybiera odpowiednie narzędzie i uzupełnia parametry. Korzysta przy tym wyłącznie z dostarczonych opisów oraz kontekstu rozmowy.
  3. Ustrukturyzowane wyjście: Zamiast prozy model zwraca obiekt czytelny maszynowo. Jeśli aktywny jest tryb strict lub Structured Outputs, dostawca za pomocą constrained decoding wymusza zgodność argumentów ze schematem. Bez tego trybu model może wygenerować nieprawidłowe argumenty. Executor waliduje parametry w obu przypadkach, ponieważ argumenty zgodne ze schematem nie gwarantują ani dopuszczalnych wartości, ani niezbędnych uprawnień.
  4. Wykonanie & obserwacja: Wywołanie zostaje wykonane, wynik wraca do modelu, a pętla trwa, dopóki cel nie zostanie osiągnięty albo nie zadziała kryterium przerwania (limit iteracji, błąd, guardrail).

Najważniejszy wniosek z praktyki: gdy agent działa błędnie, przyczyna zwykle nie leży w modelu, lecz w definicji narzędzia. Anthropic formułuje tę zasadę bez ogródek: jeśli inżynier, czyli człowiek, nie potrafi jednoznacznie powiedzieć, którego narzędzia użyć w danej sytuacji, agent też tego nie potrafi.

Wynikają z tego trzy zasady projektowe:

  • Ograniczenie liczby narzędzi: W 2026 roku dobrą praktyką jest 3-7 aktywnie załadowanych narzędzi; od około 10 narzędzi zaczyna się mierzalne pogorszenie trafności wyboru narzędzia. W wewnętrznych ewaluacjach MCP firmy Anthropic dynamiczne wyszukiwanie narzędzi podniosło trafność wyboru narzędzi z 49% do 74% (Opus 4) oraz z 79,5% do 88,1% (Opus 4.5).
  • Unikanie nakładania się: Dwa narzędzia, które mogłyby sensownie odpowiedzieć na to samo zapytanie, to problem, którego nie rozwiąże żaden prompt. Jasna klauzula „kiedy nie używać” w opisie to najskuteczniejszy, a często pomijany element.
  • Jednoznaczne nazwy i parametry: Opisowe nazwy i ściśle typowane parametry ograniczają błędne interpretacje, zanim w ogóle się pojawią.

Związek z MCP: standard podłączania narzędzi

Bez standardu każdą integrację narzędzia trzeba okablować osobno, z własnym kodem integracyjnym dla każdego agenta, API i źródła danych. Model Context Protocol (MCP) rozwiązuje ten problem M×N: definiuje jednolity protokół, przez który agent (klient MCP) komunikuje się w ustandaryzowany sposób z narzędziami i źródłami danych (serwery MCP).

MCP to zatem „jak” stojące za tool calling, gdy narzędzia nie znajdują się już we własnym kodzie, lecz są udostępniane jako serwery wielokrotnego użytku. Serwer MCP udostępnia narzędzia, zasoby i prompty; agent wykrywa je w czasie działania i wywołuje według tego samego wzorca function calling. Poziom dojrzałości jest wysoki: aktualna specyfikacja MCP ma wersję 2026-07-28 i opiera się na bezstanowych, samodzielnych żądaniach. W grudniu 2025 roku projekt został przekazany Linux Foundation (Agentic AI Foundation), a serwerów MCP jest już ponad 10 000.

Podczas gdy MCP standaryzuje połączenie agent ↔ narzędzie, komplementarny protokół A2A (Agent-to-Agent) reguluje komunikację agent ↔ agent w systemach wieloagentowych. Od czerwca 2025 roku A2A również jest pod opieką Linux Foundation i wspiera go ponad 150 organizacji. Dla samego tool calling właściwym standardem jest MCP; A2A zyskuje znaczenie dopiero wtedy, gdy współpracuje ze sobą kilku agentów.

Bezpieczeństwo: uprawnienia narzędzi to obowiązek, nie opcja

Gdy tylko agent dotyka rzeczywistych systemów (zapisuje dane w bazach, wysyła e-maile, uruchamia kod), bezpieczeństwo narzędzi staje się kluczowym wymaganiem. Dobra wiadomość: ponieważ LLM tylko proponuje wywołania, a otaczający kod je wykonuje, punkt kontroli znajduje się dokładnie tam, gdzie powinien.

Aspekt

Ryzyko bez zabezpieczeń

Środek zaradczy

Uprawnienia (scopes)

Agent dostaje pełny dostęp przez token API

Zasada najmniejszych uprawnień: dla każdego narzędzia tylko niezbędne minimum zakresów, osobne dane uwierzytelniające dla każdego narzędzia

Walidacja wywołań

Model generuje niedozwolone lub szkodliwe parametry

Allowlisty, walidacja schematu i zakresów wartości w executorze, nie w modelu

Działania nieodwracalne

Agent usuwa, rezerwuje lub wysyła bez kontroli

Human-in-the-loop / krok potwierdzenia dla wywołań zapisujących i nieodwracalnych

Prompt injection / tool injection

Zmanipulowana odpowiedź narzędzia steruje agentem

Izolowanie niezaufanych wyników, kwarantanna, nigdy nie traktować niezweryfikowanego wyniku narzędzia jako polecenia

Audytowalność

Błędnego działania nie da się odtworzyć

Obserwowalność: logowanie każdego wywołania narzędzia z parametrami, wynikiem i kontekstem decyzji

Trzy pułapki z praktyki zdarzają się szczególnie często: traktowanie agentów jak systemów deterministycznych, choć wybór narzędzia jest probabilistyczny; brak obserwowalności, przez co błędy w pętli pozostają niewidoczne; oraz brak human-in-the-loop przy działaniach nieodwracalnych. W europejskich kontekstach wrażliwych na zgodność z przepisami dochodzi jeszcze jedno: operacje zapisu na danych osobowych wiążą się z obowiązkami wynikającymi z RODO, a zautomatyzowane decyzje wywołujące skutki prawne mogą podlegać art. 22 RODO (informacyjnie, nie stanowi porady prawnej).

Podsumowanie

Tool calling to mechanizm, który zamienia LLM w agenta: model proponuje ustrukturyzowane wywołania, kod je wykonuje, a wynik napędza kolejny krok. O jakości decydują trzy elementy: precyzyjne, niepokrywające się definicje narzędzi, niewielki aktywny zestaw narzędzi (3-7) z dynamicznym wykrywaniem oraz architektura bezpieczeństwa oparta na zasadzie najmniejszych uprawnień, walidacji, krokach potwierdzenia i obserwowalności. MCP dostarcza do tego otwarty standard, który przenosi podłączanie narzędzi z pojedynczych integracji na serwery wielokrotnego użytku. Jeśli opanujesz te podstawy, zbudujesz agentów, którzy działają w produkcji niezawodnie i pod kontrolą.

Podsumuj z AIChatGPTClaudePerplexity

Otwiera czat z przygotowanym promptem.

Najczęściej zadawane pytania

Czym różni się tool calling od function calling?
Oba terminy są w dużej mierze używane zamiennie. Function calling podkreśla mechanikę techniczną (model generuje wywołanie funkcji w formacie JSON Schema), a tool use opisuje to samo z perspektywy agenta (model korzysta z narzędzia). W praktyce oba oznaczają ten sam proces: LLM zwraca ustrukturyzowane wywołanie, które wykonuje aplikacja.
Czy LLM sam wywołuje narzędzia?
Nie. LLM jedynie proponuje wywołanie: generuje nazwę funkcji i parametry. Faktyczne wykonanie przejmuje otaczający kod (executor), który sprawdza też uprawnienia, waliduje parametry i zwraca wynik. To rozdzielenie jest podstawą każdej architektury bezpieczeństwa agentów.
Jaki jest związek między MCP a tool calling?
MCP (Model Context Protocol) to otwarty standard, który ujednolica połączenie między agentem a narzędziem. Zamiast programować każdą integrację osobno, serwer MCP udostępnia narzędzia w ustandaryzowany sposób; agent wykrywa je w czasie działania i wywołuje według typowego wzorca function calling. MCP to „jak” stojące za tool calling, gdy narzędzia są dostępne jako serwery wielokrotnego użytku.
Ile narzędzi powinien mieć agent jednocześnie?
W 2026 roku dobrą praktyką jest 3-7 aktywnie załadowanych narzędzi. Od około 10 narzędzi zaczyna się mierzalne pogorszenie trafności wyboru, bo modelowi coraz trudniej wskazać właściwe narzędzie. Lepsze od dużego statycznego zestawu jest dynamiczne wykrywanie narzędzi: ładowane są tylko te, które są istotne dla bieżącego kroku.
Jak zabezpieczyć wywołania narzędzi?
Na kilku poziomach: zakresy według zasady najmniejszych uprawnień dla każdego narzędzia i osobne dane uwierzytelniające, walidacja danych wejściowych i allowlisty w executorze, krok human-in-the-loop lub potwierdzenia przy operacjach zapisu i działaniach nieodwracalnych, izolowanie niezaufanych wyników narzędzi (ochrona przed tool injection) oraz obserwowalność, która rejestruje każde wywołanie z parametrami i wynikiem.
Co jest najczęstszym źródłem błędów przy tool calling?
Nie model, lecz definicja narzędzia. Niejasne lub nakładające się opisy sprawiają, że agent wybiera niewłaściwe narzędzie. Pomagają opisowe nazwy, ściśle typowane parametry, a przede wszystkim jednoznaczna klauzula „kiedy nie używać” dla każdego narzędzia. To działa skuteczniej niż jakikolwiek trik w prompcie.

Chcesz zgłębić temat?

Otrzymuj nowe analizy prosto na swoją skrzynkę albo zobacz, jak wykorzystujemy tę wiedzę w firmach.