Patrones

Patrón: Agent Router

El bloque start_agent como punto de entrada, clasificador y guardia.

Fuente: patterns/ascript-patterns-topic-selector.md

Todo mensaje del usuario empieza en start_agent. Da la bienvenida, clasifica la intención, enruta al subagente adecuado y controla qué subagentes están disponibles según el estado del usuario.

Basic Agent Router
start_agent agent_router:
  description: "Welcome the user and determine the appropriate subagent based on user input"

  reasoning:
    instructions: ->
      | Select the best tool to call based on conversation history and user's intent.

    actions:
      go_to_orders: @utils.transition to @subagent.Order_Management
        description: "Handles order lookup, refunds, and order updates."

      go_to_faq: @utils.transition to @subagent.General_FAQ
        description: "Handles FAQ lookup and provides answers to common questions."

      go_to_escalation: @utils.transition to @subagent.Escalation
        description: "Escalate to a human representative."

Consejos

  • Limita los subagentes: empieza por los imprescindibles. Menos opciones, decisiones de enrutado más claras.
  • Usa el prefijo go_to_ para que el agente entienda que esa acción navega.
  • Descripciones detalladas y únicas, sobre todo si hay subagentes parecidos.
  • Oculta subagentes según el contexto con available when.
  • Para decisiones críticas, usa transiciones condicionales en vez de confiar en el LLM.

Puedes designar otro subagente como inicial, o prescindir del router si controlas el enrutado de otra manera.

Temas relacionados