Routing: kierowanie zadania do właściwej ścieżki
Po tej lekcji wiesz, jak zbudować routing: zdefiniować kategorie, sklasyfikować wejście promptem i odesłać je do właściwej ścieżki.
W jednej minucie
Routing to klasyfikacja wejścia i skierowanie go do wyspecjalizowanej, dalszej ścieżki1.
Routing daje podział odpowiedzialności i bardziej wyspecjalizowane prompty1. Bez niego optymalizacja pod jeden rodzaj wejścia może pogorszyć wyniki dla innych1.
Jakość routingu zależy od tego, jak dobrze zdefiniujesz kategorie2.
Czym jest routing
Routing to wybór ścieżki, zanim zacznie się właściwa praca nad zadaniem.
Klasyfikacja to przypisanie wejścia do predefiniowanych kategorii, np. według typu problemu, pilności czy wymaganej wiedzy2.
- Wejścienp. zgłoszenie
- Klasyfikatormodel wybiera kategorię
- Ścieżkawyspecjalizowany krok
Routing działa dobrze, gdy kategorie są wyraźnie różne, a klasyfikację da się zrobić dokładnie1.
Różne typy zapytań obsługi klienta (pytania ogólne, zwroty, wsparcie techniczne) kierujesz do różnych procesów, promptów i narzędzi1.
Kategorie: fundament routingu
Skuteczność routingu jest wprost proporcjonalna do tego, jak dobrze zdefiniowane są kategorie2.
Intencja to cel, z jakim użytkownik wysyła wejście. Lista kategorii intencji jest podstawą dokładnej klasyfikacji2.
Przykład z dokumentacji ma trzy kategorie dla zgłoszeń: wsparcie i opinie, śledzenie zamówienia oraz zwrot lub wymiana2.
| Kategoria | Dokąd trafia |
|---|---|
| Support, Feedback, Complaint | Zespół obsługi klienta |
| Order Tracking | Narzędzie do śledzenia zamówień |
| Refund/Exchange | Proces zwrotów i wymian |
Kategorie pochodzą z przykładu w dokumentacji, a kolumna „Dokąd trafia” to nasz pomysł.
Na routing mogą wpływać też inne czynniki: pilność, typ klienta, SLA albo język2.
Klasyfikacja w prompcie
Prompt klasyfikujący podaje rolę, wejście, dozwolone intencje i format odpowiedzi.
CLASSIFY_PROMPT = """Jesteś systemem klasyfikacji zgłoszeń.
<request>{ticket}</request>
Wybierz dokładnie jedną intencję z listy:
<intents>
<intent>support</intent>
<intent>order_tracking</intent>
<intent>refund</intent>
</intents>
Odpowiedz tylko w formacie:
<summary>jedno zdanie streszczenia zgłoszenia</summary>
<intent>wybrana intencja</intent>"""
Odpowiedź w osobnych znacznikach XML rozdzielisz wyrażeniami regularnymi2. Do decyzji, dokąd odesłać wejście, używasz tylko intencji2.
Na dzień 3 listopada 2026 dokumentacja radzi dla nowszych modeli, takich jak Sonnet 5.5, prosić o intencję i jednozdaniowe streszczenie zamiast rozumowania2. Dlatego nasz prompt prosi o summary.
Routing w kodzie
Wywołanie modelu zwraca intencję, a kod wybiera funkcję ze słownika. Podświetlone linie to decyzja o ścieżce.
import re
import anthropic
client = anthropic.Anthropic()
# handle_* to Twoje funkcje obsługujące daną intencję
ROUTES = {
"support": handle_support,
"order_tracking": handle_order_tracking,
"refund": handle_refund,
}
def classify(ticket):
message = client.messages.create(
model="claude-haiku-5-5",
max_tokens=512,
output_config={"effort": "low"},
messages=[{"role": "user", "content": CLASSIFY_PROMPT.format(ticket=ticket)}],
)
text = next((b.text for b in message.content if b.type == "text"), "")
match = re.search(r"<intent>(.*?)</intent>", text, re.DOTALL)
return match.group(1).strip() if match else ""
def route(ticket):
handler = ROUTES.get(classify(ticket))
if handler is None:
return handle_unknown(ticket) # awaryjna ścieżka
return handler(ticket)
Na dzień 3 listopada 2026 dokumentacja poleca do routingu Claude Haiku 5.5: to najszybszy i najtańszy aktualny model, który przy niskim wysiłku radzi sobie z prostą klasyfikacją2. Przy dużej liczbie kategorii lub złożonym rozumowaniu możesz wybrać większy model Sonnet2.
Gdy kategorii jest dużo
Przy wielu kategoriach prompt z przykładami robi się nieporęczny, bo liczba potrzebnych przykładów rośnie razem z liczbą klas2.
Routing hierarchiczny to kaskada klasyfikatorów: kolejne poziomy drzewa kategorii mają własne klasyfikatory2.
Dokumentacja wskazuje hierarchię dla przypadków z 20 lub więcej kategoriami2.
Częste błędy
Routing zawodzi najczęściej na trzech typach zgłoszeń.
| Błąd | Co się dzieje | Co zrobić |
|---|---|---|
| Niejawna prośba | „Czekam na paczkę ponad dwa tygodnie” może być pośrednio pytaniem o status zamówienia2 | Dodaj prawdziwe przykłady z właściwą intencją2 |
| Emocja ważniejsza niż intencja | Przy niezadowoleniu model może zająć się emocją zamiast problemem2 | Wskaż, kiedy sentyment ma znaczenie, a kiedy nie2 |
| Kilka problemów naraz | Model może mieć trudność z wskazaniem głównego problemu2 | Doprecyzuj priorytety intencji2 |
Rozwiązania w ostatniej kolumnie pochodzą z przewodnika Ticket routing.
Pytania sprawdzające
Czym jest routing i po co się go stosuje?
To klasyfikacja wejścia i skierowanie go do wyspecjalizowanej ścieżki. Dzięki temu każda ścieżka ma własny prompt, a optymalizacja pod jeden rodzaj wejścia nie psuje pozostałych.
Od czego najbardziej zależy jakość routingu?
Od tego, jak dobrze zdefiniowane są kategorie. Skuteczność jest wprost proporcjonalna do jakości definicji kategorii.
Masz ponad 20 kategorii i prompt z przykładami robi się nieporęczny. Co możesz zrobić?
Zbudować routing hierarchiczny: ogólny klasyfikator wybiera gałąź, a klasyfikator tej gałęzi zawęża kategorię. Zwiększa to dokładność, ale też opóźnienie, więc użyj szybkiego modelu.
Klient pisze: „Czekam na paczkę już dwa tygodnie”. Co może pójść nie tak w klasyfikacji?
To niejawna prośba o status zamówienia. Dodaj do promptu prawdziwe przykłady takich zgłoszeń z właściwą intencją.
Podsumowanie
- Routing klasyfikuje wejście i kieruje je do wyspecjalizowanej ścieżki.
- Skuteczność routingu zależy od jakości zdefiniowanych kategorii.
- Odpowiedź klasyfikatora dzielisz na znaczniki i do decyzji używasz tylko intencji.
- Przy wielu kategoriach użyj kaskady klasyfikatorów, kosztem opóźnienia.
- Pilnuj zgłoszeń z niejawną intencją, emocjami i wieloma problemami naraz.
Źródła
- Building effective agents — Anthropic Engineeringopublikowano 2024-12-19 · sprawdzone 2026-11-02
- Ticket routing — Claude Docssprawdzone 2026-11-03