0Pricing
AI Agents · Lekcja

Warunkowe kierowanie i rozgałęzianie

Użyj add_conditional_edges, aby kierować działaniem na podstawie stanu — agent zdecyduje, dokąd przejść dalej.

Warunkowe kierowanie i rozgałęzianie 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.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Dlaczego krawędzie warunkowe?

Prawdziwe agenty podejmują decyzje. Po wykonaniu kroku kolejny krok zależy od bieżącego stanu. Krawędzie warunkowe kodują tę logikę.

Dodawanie krawędzi warunkowej

Potrzebne są trzy elementy: węzeł źródłowy, funkcja routująca i mapa celów:

def route_after_planning(state: AgentState) -> str:
    if state.get('confidence', 0) > 0.8:
        return 'execute'
    return 'replan'

graph.add_conditional_edges(
    'planner',
    route_after_planning,
    {
        'execute': 'executor',
        'replan': 'planner'
    }
)

Sygnatury funkcji routujących

Router otrzymuje pełny stan i zwraca ciąg znaków (lub listę ciągów znaków w przypadku równoległych rozgałęzień).

Pętle własne

Krawędź może prowadzić z powrotem do tego samego węzła — służy to do ponawiania prób:

graph.add_conditional_edges(
    'validator',
    lambda s: 'retry' if not s['valid'] else 'done',
    {'retry': 'planner', 'done': END}
)

Równoległe rozgałęzienia

Zwróć listę nazw węzłów, aby uruchomić równolegle wiele kolejnych węzłów:

def fan_out(state):
    return ['search_news', 'search_arxiv', 'search_github']

graph.add_conditional_edges('planner', fan_out)

Łączenie równoległych rozgałęzień

Równoległe rozgałęzienia ponownie łączą się we wspólnym kolejnym węźle. Scalanie stanu łączy ich wyniki (w przypadku list i słowników należy użyć funkcji redukujących).

Kierowanie na podstawie wywołań narzędzi

Klasyczny wzorzec: po odpowiedzi LLM sprawdź obecność tool_calls i odpowiednio pokieruj przepływem:

def should_use_tool(state):
    last_msg = state['messages'][-1]
    if last_msg.tool_calls:
        return 'tools'
    return END

graph.add_conditional_edges('agent', should_use_tool, {'tools': 'tools', END: END})

Kierowanie wielowariantowe

Logika switch-case:

def route_by_intent(state):
    intent = classify(state['messages'][-1])
    return {'q': 'qa_agent', 'order': 'order_agent', 'support': 'support_agent'}.get(intent, 'fallback')

Kierowanie z użyciem wywołań LLM

Możesz użyć LLM do podjęcia decyzji, dokąd przejść dalej:

def llm_router(state):
    decision = llm.invoke(f'Route this to: search, calculate, or end?\nState: {state}').content.strip()
    return decision  # 'search' / 'calculate' / END

Unikanie nieskończonych pętli

Bez licznika kroków agent może wykonywać pętlę bez końca. Dodaj licznik do stanu:

class State(TypedDict):
    step: int
    ...

def route(state):
    if state['step'] >= MAX_STEPS:
        return END
    return 'continue'

Increment Counter Reducer

def add(old: int, new: int) -> int:
    return old + new

class State(TypedDict):
    step: Annotated[int, add]

def any_node(state):
    return {'step': 1}   # increments by 1

Wizualizacja rozgałęzień

Diagram Mermaid grafu z krawędziami warunkowymi pokazuje romby decyzyjne — jest przydatny podczas przeglądu:

print(app.get_graph().draw_mermaid())

Krawędzie warunkowe

Co zwraca funkcja routująca w add_conditional_edges?

Podsumowanie

Krawędzie warunkowe umożliwiają agentom podejmowanie decyzji. Dodaj licznik kroków, aby uniknąć pętli, i wizualizuj graf, aby zachować nad nim kontrolę.

Często zadawane pytania

Czy lekcja „Warunkowe kierowanie i rozgałęzianie” jest bezpłatna?

Tak — pełny tekst „Warunkowe kierowanie i rozgałęzianie” 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 „Warunkowe kierowanie i rozgałęzianie”?

Użyj add_conditional_edges, aby kierować działaniem na podstawie stanu — agent zdecyduje, dokąd przejść dalej. Ć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 „Warunkowe kierowanie i rozgałęzianie”?

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. Dlaczego grafy są lepsze od płaskich łańcuchów
  2. Węzły, krawędzie i stan
  3. Warunkowe kierowanie i rozgałęzianie
  4. Utrwalanie stanu grafu (punkty kontrolne)
← Powrót do AI Agents