Router
AI powered Switch
1. Descripción General
Épica: Router Heurístic
Épica: Router Heurístico
Descripción: Un sistema que utiliza una colección de routers. Cada router tiene un agente ("Agent") y un arreglo de flujos ("Flows"). El código se genera usando agentbase-factory
para crear rutas dinámicas en /router/:router-name
y /router/:router-name/flows
.
Uso: Los routers son invocados para ejecutar uno o más flujos según lo decida el agente, que elige qué flujos se ejecutan y en qué orden. Los routers pueden recibir uno o varios parámetros que serán interpretados por el agente para personalizar la ejecución de los flujos. Además, existe un endpoint para obtener la lista de flujos asociados a un router sin ejecutarlos. Ejemplos de flujos: web scraping, búsqueda en Google, búsqueda en YouTube. Modelo de Datos: Cada router está compuesto por:
agent_id
flows_ids[]
(lista de flujos asociados)name
(nombre del router)parámetros (inputs que recibe el router y que son interpretados por el agente)
2. UML 1: Modelado del Router Heurístico
Explicación del UML 1 (Actualizado):
Router:
Atributos: Contiene
agent_id
,flows_ids[]
,name
,params[]
.execute()
: Método encargado de ejecutar los flujos asociados al router.
Agent:
Decide qué flujos ejecutar y en qué orden, basándose en los parámetros recibidos del router.
Flow:
Representa una tarea que el agente puede ejecutar. Contiene
flow_id
,name
,description
, yorder
(orden de ejecución).
DynamicResult:
Contiene los resultados generados por los flujos (
result_data
), el estado (status
), y el momento de generación (generated_at
).
Endpoints:
/router/:router-name
: Endpoint que ejecuta los flujos del router especificado, llamando al métodoexecute()
./router/:router-name/flows
: Endpoint que devuelve los flujos asociados al router sin ejecutarlos. Esto permite al cliente obtener información sobre los flujos disponibles.
Proceso:
Cliente: Envía una solicitud al endpoint.
Para
/router/:router-name
, los flujos son ejecutados y el resultado es devuelto.Para
/router/:router-name/flows
, el cliente obtiene una lista de los flujos sin ejecutarlos, incluyendo sus descripciones y el orden.
3. UML 2: Ejecución del Flujo (Actualizado)
Este diagrama UML muestra el proceso de ejecución de un router, desde la llamada a la ruta con parámetros hasta la obtención de los resultados dinámicos de los flujos:
Explicación UML 2 (Ejecución del Flujo):
Client: El cliente realiza una solicitud HTTP a
/router/:router-name
enviando uno o varios parámetros (params[]
).Router: El router recibe la solicitud y los parámetros, y luego llama al agente asociado.
Agent: El agente interpreta los parámetros y toma decisiones sobre qué flujos ejecutar, en qué orden.
Flows: Los flujos son ejecutados en el orden indicado por el agente. Cada flujo genera un
DynamicResult
(resultado dinámico) con información como el estado (status
) y los datos generados (result_data
).Router: El router recolecta los resultados de los flujos y los devuelve en una respuesta JSON al cliente.
Client: El cliente recibe un JSON con los resultados de la ejecución de los flujos.
4. Modelo de Datos
Tabla: router
id
INT
Identificador único del router
agent_id
INT
Identificador del agente asociado
flows_ids
ARRAY(INT)
Arreglo de identificadores de flujos
name
VARCHAR(255)
Nombre del router
params[]
ARRAY(JSON)
Parámetros que recibe el router
Tabla: agent
id
INT
Identificador único del agente
name
VARCHAR(255)
Nombre del agente
description
TEXT
Descripción breve del agente
Tabla: flow
id
INT
Identificador único del flujo
name
VARCHAR(255)
Nombre del flujo
description
TEXT
Descripción breve del flujo
Tabla: dynamic_result
result_id
INT
Identificador único del resultado
result_data
JSON
Datos generados dinámicamente
status
VARCHAR(50)
Estado del resultado (ej. éxito, fallo)
generated_at
TIMESTAMP
Fecha y hora en que se generó el resultado
5. Pruebas de Estrés
Escenarios de Pruebas de Estrés:
Carga de Flujos Concurrentes: Simular la ejecución de hasta 10,000 routers simultáneos y medir el rendimiento.
Sobrecarga de Input: Introducir grandes volúmenes de datos como input del agente y parámetros del router para verificar que los resultados dinámicos se generan sin errores.
Simulación de Errores Masivos: Enviar inputs malformados a 1000 routers simultáneamente para observar cómo maneja el sistema los errores.
Prueba de Escalabilidad: Medir el rendimiento al escalar desde 100 hasta 10,000 routers activos.
6. Pruebas de Integración
Escenarios de Pruebas de Integración:
Integración Router-Agent: Verificar la correcta interacción entre el router y el agente, asegurando que los parámetros sean interpretados correctamente.
Integración Router-Flows: Verificar que los flujos seleccionados por el agente se ejecuten en el orden correcto, basado en los parámetros recibidos.
Validación de Resultados Dinámicos: Asegurar que los resultados generados dinámicamente reflejan el estado correcto basado en los inputs del agente y los parámetros recibidos.
Simulación Completa: Simular un flujo completo de ejecución desde la creación del router hasta la devolución de los resultados al cliente, incluyendo los parámetros recibidos por el router.
Last updated
Was this helpful?