Strona główna / Rozdział 5 · Agenci
    Ostatnia zmiana · 6 min czytania

    Użyj z AI

    Narzędzia (function calling)

    Model nie wykonuje żadnego kodu. Dostaje listę narzędzi z nazwą, opisem i schematem argumentów, a gdy uzna to za potrzebne, zamiast odpowiedzi wypisuje wywołanie: twój kod je wykonuje i odsyła wynik.

    Po ludzkuKierownik, który może tylko dzwonić. Ma kartkę z listą spraw, które załatwi asystent, i krótkim opisem każdej. Mówi: „Sprawdź, czy jutrzejszy pociąg o 8:15 jedzie planowo”, a asystent sprawdza i oddzwania z wynikiem. Gdy opisy na kartce są mętne, kierownik prosi nie o to, co trzeba.

    Zmień jakość opisów narzędzi i przełącz równoległe wywołania, potem przejdź krok po kroku przez wymianę. Patrz, po które narzędzie sięga model, ile requestów to kosztuje i czy odpowiedź jest prawdziwa

    Użytkownik: Jaka będzie jutro rano pogoda w Gdańsku i czy pociąg do Warszawy o 8:15 pojedzie planowo?

    Definicje wysyłane razem z pytaniem: nazwa, argumenty i opis.

    Słupki pokazują, jak model rozkłada szanse między narzędzia dla każdej części pytania. W tym przebiegu wybrał najwyższy słupek, przy innym losowaniu mógłby wybrać inny (temat „Następny token”). Liczby poglądowe, nie pomiar prawdziwego modelu.

    tokenów definicji w każdym requeście
    requestów do modelu
    wywołań narzędzi
    tokenów na same definicje w tej rozmowie

    Uproszczony format niezależny od dostawcy: żadne API nie przyjmie go w tej postaci, a każde nazywa pola inaczej (OpenAI na przykład zwraca argumenty jako napis z JSON-em). Tokeny liczone z długości zminifikowanego JSON-a definicji: ok. 3 znaki na token przy polskich opisach, po angielsku bliżej 4.

    Jak działa function calling

    Opis to jedyna instrukcja obsługi

    Każde narzędzie kosztuje w każdym requeście

    Błędy i bezpieczeństwo

    Sprawdź się

    Jak działa function calling i jak projektować narzędzia dla modelu?

    Model niczego nie wykonuje. Z pytaniem dostaje definicje narzędzi: nazwę, opis i schemat argumentów w JSON Schema. Gdy uzna narzędzie za potrzebne, zamiast odpowiedzi wypisuje wywołanie w wyuczonym formacie, czasem kilka naraz. Twój kod waliduje argumenty, wykonuje wywołanie i odsyła wynik z id wywołania. Model wybiera głównie po opisie, więc opisy pisze się jak dokumentację, narzędzia nie powinny się nakładać, a wyniki mają być zwięzłe. Za definicje płaci się w każdym requeście. Błąd wraca jako wynik ze wskazówką, operacje zmieniające stan są idempotentne, a nieodwracalne zatwierdza człowiek.

    In English

    The model executes nothing. With the prompt it gets tool definitions: a name, a description and a JSON Schema for the arguments. When it needs a tool, it emits a call in a trained format instead of an answer, sometimes several at once. Your code validates the arguments, runs the call and returns the result with the call ID. Selection depends mostly on the descriptions, so write them like documentation, avoid overlapping tools and keep results concise. Definitions cost tokens on every request. Errors go back as results with a hint, state-changing operations are idempotent, and irreversible ones need human approval.

    Pytania pogłębiające (5)
    Czym function calling różni się od structured output?
    Od strony modelu to ten sam mechanizm: tekst w zadanym formacie. Różnica jest w tym, co dzieje się dalej. Structured output to końcowa odpowiedź dla twojego kodu. Wywołanie narzędzia to prośba, po której wynik wraca do modelu i rozmowa trwa dalej.
    Ile narzędzi to za dużo?
    Twardej granicy nie ma. Sygnałem są pomyłki w wyborze narzędzia na twoim zestawie ewaluacyjnym i rosnący koszt definicji. Wtedy scalasz podobne narzędzia, dzielisz pracę między subagentów z własnymi zestawami albo ładujesz definicje na żądanie przez wyszukiwanie narzędzi.
    Co zrobić, gdy model podaje złe argumenty?
    Najpierw poprawić opis i schemat: format, przykłady, enumy. Potem walidacja w kodzie i czytelny błąd odsyłany modelowi, żeby mógł się poprawić. Tryb ścisły usuwa błędy składni i typów, ale nie złe wartości.
    Wynik narzędzia ma 50 tys. tokenów. Co robisz?
    Nie wklejasz go w całości, bo zostanie w kontekście i pójdzie w każdej turze, dopóki czegoś nie wyczyścisz. Filtrujesz pola, stronicujesz, zwracasz podsumowanie z uchwytem do pełnych danych, a dużą treść zapisujesz do pliku, który agent przeszuka osobnym narzędziem.
    Kiedy zamiast wielu wywołań dać modelowi narzędzie do uruchamiania kodu?
    Gdy zadanie to wiele wywołań i obróbka danych, np. pobierz 50 rekordów, przefiltruj, policz. Model pisze skrypt, który sam woła narzędzia, a do kontekstu wraca tylko wynik końcowy. Anthropic podaje ok. 37% mniej tokenów na złożonych zadaniach badawczych. Ceną jest piaskownica do uruchamiania kodu i trudniejszy audyt.

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę