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 answerWymuszanie 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ę:
- Agent zewnętrzny wybiera dziedzinę (zamówienia / rozliczenia / wysyłka)
- 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 modeltool_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
- Jak działa wywoływanie funkcji
- Definiowanie schematów narzędzi (JSON Schema)
- Wybór narzędzi w czasie działania
- Zwracanie wyników do modelu