0Pricing
AI Agents · Lekcja

Wybór narzędzi w czasie działania

Pozwól modelowi zdecydować, które narzędzie wywołać, wymuś użycie konkretnego narzędzia albo udostępniaj tylko narzędzia istotne dla bieżącego stanu.

Wybór narzędzi w czasie działania to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 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.

Pozwól modelowi wybrać

Domyślnie udostępnia się modelowi listę narzędzi, a on decyduje, które z nich wywołać (albo nie wywołać żadnego). To standardowy tryb, który dobrze sprawdza się, gdy:

  • dostępnych jest 5–15 narzędzi
  • narzędzia mają jasne i wyraźnie różniące się opisy
  • wybór właściwego narzędzia zależy od danych wejściowych użytkownika

tool_choice: auto

Tryb domyślny — model decyduje:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice: required

Należy wymusić wywołanie DOWOLNEGO narzędzia przez model:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

Wymuszanie konkretnego narzędzia

Aby wymusić użycie jednego konkretnego narzędzia, należy podać jego nazwę:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice: none

Należy wyłączyć narzędzia na jedną turę:

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

Przycinanie list narzędzi zależnie od kontekstu

Modele dokonują gorszych wyborów z dużych zbiorów narzędzi. Należy udostępniać tylko narzędzia istotne dla bieżącego stanu:

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

Dwuetapowy wybór narzędzia

W przypadku ponad 50 narzędzi należy zastosować hierarchię:

  1. Agent zewnętrzny wybiera dziedzinę (zamówienia / rozliczenia / wysyłka)
  2. Agent wewnętrzny wybiera konkretne narzędzie w ramach tej dziedziny

Każde wywołanie obsługuje tylko około 10 narzędzi.

Wyszukiwanie wektorowe narzędzi

Należy utworzyć embedding opisu każdego narzędzia, a w czasie działania utworzyć embedding zapytania użytkownika i pobrać narzędzia z najwyższymi wynikami (top-K), aby je udostępnić:

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

tool_choice w Anthropic

Anthropic wykorzystuje to samo pojęcie, ale w innej postaci:

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

Dlaczego wymuszać konkretne narzędzie?

Jest to przydatne w przypadku:

  • walidacji — wyodrębniania jednego konkretnego pola strukturalnego
  • kierowania — użytkownik kliknął „zwrot”, więc należy wywołać refund_order
  • ustrukturyzowanych danych wyjściowych — wykorzystania wywoływania narzędzi do uzyskania JSON-a

Puste listy narzędzi

Jeśli zostanie przekazane tools=[], ale tool_choice="required", wystąpi błąd. Przed wysłaniem zawsze należy sprawdzić listę narzędzi.

Wymuszanie danych wyjściowych w formacie JSON

Dlaczego można wymusić konkretne wywołanie narzędzia?

Podsumowanie

W większości przypadków należy używać trybu auto. Narzędzia należy wymuszać do kierowania i strukturalnego wyodrębniania danych. Listę narzędzi należy ograniczać zależnie od stanu, aby wybór pozostał trafny.

Często zadawane pytania

Czy lekcja „Wybór narzędzi w czasie działania” jest bezpłatna?

Tak — pełny tekst „Wybór narzędzi w czasie działania” 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 „Wybór narzędzi w czasie działania”?

Pozwól modelowi zdecydować, które narzędzie wywołać, wymuś użycie konkretnego narzędzia albo udostępniaj tylko narzędzia istotne dla bieżącego stanu. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Wybór narzędzi w czasie działania”?

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