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' / ENDUnikanie 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 1Wizualizacja 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
- Dlaczego grafy są lepsze od płaskich łańcuchów
- Węzły, krawędzie i stan
- Warunkowe kierowanie i rozgałęzianie
- Utrwalanie stanu grafu (punkty kontrolne)