0Pricing
AI Agents · Lekcja

Jak działa wywoływanie funkcji

Poznaj pełny cykl: model wybiera narzędzie, kod je uruchamia, wysyłasz wynik z powrotem, a model kontynuuje działanie.

Jak działa wywoływanie funkcji to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Wywoływanie funkcji: podstawowy schemat

Wywoływanie funkcji to protokół, który przekształca LLM w agenta. Model wybiera funkcję z dostarczonej listy, uzupełnia argumenty, a następnie funkcja zostaje uruchomiona.

Ten schemat jest obsługiwany przez OpenAI, Anthropic, Google, Cohere, Mistral i większość głównych modeli OSS po odpowiednim dostrojeniu.

Pięcioetapowa wymiana

  1. Wysyłają Państwo wiadomości i definicje narzędzi
  2. Model zwraca odpowiedź końcową ALBO tool_call
  3. Uruchamiacie Państwo narzędzie z argumentami modelu
  4. Dodajecie Państwo wynik jako wiadomość narzędzia
  5. Ponownie wywołujecie Państwo model ze zaktualizowaną historią

Należy powtarzać kroki 2–5, aż model zwróci odpowiedź końcową.

Krok 1: Definiowanie narzędzi

Definicje narzędzi to schematy JSON opisujące poszczególne funkcje:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'description': 'Current weather for a city',
        'parameters': {
            'type': 'object',
            'properties': {
                'city': {'type': 'string'}
            },
            'required': ['city']
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

Krok 2: Pierwsze wywołanie modelu

Należy wysłać wiadomości i narzędzia:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
    tools=tools,
)
message = response.choices[0].message
print(message.tool_calls)
# [ToolCall(name='get_weather', arguments='{"city": "Paris"}')]

Krok 3: Uruchamianie narzędzia

Należy przekierować wywołanie do funkcji języka Python:

import json

def get_weather(city: str) -> dict:
    # ...call your weather API...
    return {'city': city, 'temp_c': 18, 'condition': 'cloudy'}

tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(**args)

Krok 4: Dodawanie wyniku narzędzia

Należy dodać wiadomość narzędzia z pasującym identyfikatorem:

messages.append(message)  # the assistant message with tool_calls
messages.append({
    'role': 'tool',
    'tool_call_id': tool_call.id,
    'content': json.dumps(result)
})

Krok 5: Drugie wywołanie modelu

Należy ponownie wywołać model — teraz ma on wynik narzędzia i tworzy odpowiedź przeznaczoną dla użytkownika:

final = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
)
print(final.choices[0].message.content)
# 'It is currently 18 degrees and cloudy in Paris.'

Pętla agenta

Należy umieścić ten mechanizm w pętli while — model może kolejno wywołać kilka narzędzi:

while True:
    response = client.chat.completions.create(model=MODEL, messages=messages, tools=tools)
    msg = response.choices[0].message
    messages.append(msg)
    if not msg.tool_calls:
        return msg.content  # final answer
    for tc in msg.tool_calls:
        result = dispatch(tc)
        messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})

Równoległe wywołania narzędzi

Nowoczesne modele zwracają wiele elementów tool_calls w jednej odpowiedzi. Jeśli jest to bezpieczne, należy uruchamiać je równolegle:

import asyncio

async def run_tools(tool_calls):
    coros = [dispatch_async(tc) for tc in tool_calls]
    return await asyncio.gather(*coros)

finish_reason: tool_calls

Można również sprawdzać finish_reason zamiast wyszukiwać tool_calls:

if response.choices[0].finish_reason == 'tool_calls':
    # the model wants to call tools
    ...
elif response.choices[0].finish_reason == 'stop':
    # done
    ...

Typowe błędy

  • Brak dodania wiadomości asystenta przed wynikiem narzędzia
  • Użycie nieprawidłowego tool_call_id
  • Wysyłanie wyników narzędzi jako wiadomości użytkownika
  • Pozostawienie pętli bez ograniczenia — należy ustawić MAX_STEPS

Zakończenie pętli

Skąd wiadomo, że agent zakończył działanie?

Podsumowanie

Wywoływanie funkcji to najważniejszy schemat w całym tym kursie. Należy go opanować przed przejściem dalej.

Często zadawane pytania

Czy lekcja „Jak działa wywoływanie funkcji” jest bezpłatna?

Tak — pełny tekst „Jak działa wywoływanie funkcji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Jak działa wywoływanie funkcji”?

Poznaj pełny cykl: model wybiera narzędzie, kod je uruchamia, wysyłasz wynik z powrotem, a model kontynuuje działanie. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Jak działa wywoływanie funkcji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Jak działa wywoływanie funkcji
  2. Definiowanie schematów narzędzi (JSON Schema)
  3. Wybór narzędzi w czasie działania
  4. Zwracanie wyników do modelu
← Powrót do AI Agents