Tekoälyagentit · Oppitunti

Ehdollinen reititys ja haarautuminen

Käyttäkää add_conditional_edges-funktiota tilan perusteella reitittämiseen – agentti päättää, mihin siirrytään seuraavaksi.

Oppitunti 3/414 vaihetta

Ehdollinen reititys ja haarautuminen on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.

Miksi ehdollisia reunoja tarvitaan?

Oikeat agentit tekevät päätöksiä. Vaiheen jälkeen seuraava vaihe riippuu nykyisestä tilasta. Ehdolliset reunat koodaavat tämän logiikan.

Ehdollisen reunan lisääminen

Tarvitaan kolme osaa: lähdesolmu, reititysfunktio ja kohdekartta:

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'
    }
)

Reititysfunktioiden allekirjoitukset

Reititin vastaanottaa koko tilan ja palauttaa merkkijonon tai rinnakkaisia haaroja varten merkkijonojen luettelon.

Itseensä palaavat silmukat

Reuna voi palata samaan solmuun — tätä käytetään uudelleenyrityksiin:

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

Rinnakkaiset haarat

Palauta luettelo suoritettavien alavirran solmujen nimiä, jotta useita solmuja suoritetaan rinnakkain:

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

graph.add_conditional_edges('planner', fan_out)

Rinnakkaisten haarojen yhdistäminen

Rinnakkaiset haarat yhdistyvät uudelleen yhteisessä seuraavassa solmussa. Tilan yhdistäminen kokoaa niiden tulokset yhteen (käyttäkää luetteloille ja sanakirjoille reduktoreita).

Työkalukutsuihin perustuva reititys

Klassinen malli: kun LLM on vastannut, tarkistakaa tool_calls ja reitittäkää sen perusteella:

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})

Monisuuntainen reititys

Switch-case-logiikka:

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

LLM-kutsuihin perustuva reititys

Voitte käyttää LLM:ää päättämään, minne siirrytään seuraavaksi:

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

Vältä loputtomia silmukoita

Ilman askellaskuria agentti voi jäädä silmukkaan ikuisesti. Lisää laskuri tilaan:

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

Haarojen visualisointi

Ehdollisia reunoja sisältävän graafin Mermaid-kaavio näyttää päätösrombeja — hyödyllistä tarkistamista varten:

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

Ehdolliset reunat

Mitä add_conditional_edges-funktion reititin palauttaa?

Kertaus

Ehdollisten reunojen avulla agentit tekevät päätöksiä. Lisää askellaskuri silmukoiden välttämiseksi ja visualisoi graafi, jotta pysyt selvillä kokonaisuudesta.

Aloita maksutta

Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
60
Oppitunnit
239

Usein kysytyt kysymykset

Onko oppitunti ”Ehdollinen reititys ja haarautuminen” ilmainen?

Kyllä – oppitunnin ”Ehdollinen reititys ja haarautuminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ehdollinen reititys ja haarautuminen”?

Käyttäkää add_conditional_edges-funktiota tilan perusteella reitittämiseen – agentti päättää, mihin siirrytään seuraavaksi. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Ehdollinen reititys ja haarautuminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miksi graafit voittavat litteät ketjut
  2. Solmut, reunat ja tila
  3. Ehdollinen reititys ja haarautuminen
  4. Graafin tilan säilyttäminen (tarkistuspisteet)
← Takaisin: Tekoälyagentit