0Pricing
AI Agents · Lección

Enrutamiento y ramificación condicionales

Use add_conditional_edges para distribuir el flujo según el estado: el agente decide adónde ir después.

Enrutamiento y ramificación condicionales es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

¿Por qué usar aristas condicionales?

Los agentes reales toman decisiones. Después de un paso, el siguiente depende del estado actual. Las aristas condicionales codifican esa lógica.

Añadir una arista condicional

Tres elementos: nodo de origen, función de enrutamiento y mapa de destinos:

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

Firmas de funciones de enrutamiento

El router recibe el estado completo y devuelve una cadena (o una lista de cadenas para ramas paralelas).

Bucles sobre sí mismos

Una arista puede volver al mismo nodo; se usa para los reintentos:

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

Ramas paralelas

Devuelva una lista de nombres de nodos para ejecutar varios nodos posteriores en paralelo:

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

graph.add_conditional_edges('planner', fan_out)

Unión de ramas paralelas

Las ramas paralelas vuelven a converger en un nodo posterior común. Las combinaciones del estado reúnen sus salidas; use reductores para listas y diccionarios.

Enrutamiento según llamadas a herramientas

Patrón clásico: después de que responda el LLM, compruebe si hay tool_calls y enrute en consecuencia:

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

Enrutamiento con múltiples opciones

Lógica 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')

Enrutamiento con llamadas al LLM

Puede usar un LLM para decidir adónde ir a continuación:

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

Evitar bucles infinitos

Sin un contador de pasos, un agente puede entrar en un bucle infinito. Añada un contador al estado:

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

Visualización de ramas

El diagrama Mermaid de un grafo con aristas condicionales muestra rombos de decisión, lo que resulta útil para revisarlo:

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

Aristas condicionales

¿Qué devuelve la función de enrutamiento en add_conditional_edges?

Repaso

Las aristas condicionales permiten que los agentes tomen decisiones. Añada un contador de pasos para evitar bucles y visualice el grafo para conservar la cordura.

Preguntas frecuentes

¿La lección «Enrutamiento y ramificación condicionales» es gratis?

Sí — el texto completo de «Enrutamiento y ramificación condicionales» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Enrutamiento y ramificación condicionales»?

Use add_conditional_edges para distribuir el flujo según el estado: el agente decide adónde ir después. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Enrutamiento y ramificación condicionales»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué los grafos superan a las cadenas planas
  2. Nodos, aristas y estado
  3. Enrutamiento y ramificación condicionales
  4. Persistir el estado del grafo (puntos de control)
← Volver a AI Agents