Ir al contenido principal
Producto

Enrutamiento inteligente en Unity AI Gateway: iguale la calidad de los modelos de frontera con un costo por tarea un 30 % menor

Cómo desarrollamos un enrutamiento consciente de las tareas entre modelos y bancos de pruebas para reducir costos en tareas de programación del mundo real en Databricks.

por Ankit Mathur, Ivan Zhou, Bryan Qiu, Rohit Agrawal, Elise Gonzales y Kelly Albano

La frontera de precio y rendimiento para las tareas de programación presenta una enorme diversidad de modelos y harnesses: solo en 2026, hemos visto el lanzamiento de 33 nuevos modelos. En nuestra publicación anterior sobre las pruebas de rendimiento con la base de código de Databricks, descubrimos que los modelos se agrupan en niveles de capacidad y que gran parte del trabajo diario (por ejemplo, activar una opción, editar un solo archivo o corregir un error bien delimitado) no requería los modelos más costosos.

¿Cómo se pueden reducir los costos de programación con AI sin sacrificar la productividad de los desarrolladores? Una de las mayores oportunidades consiste en asignar cada tarea al modelo adecuado en lugar de usar por defecto la opción más capaz (y más costosa) para cada tarea. El simple hecho de aprovechar modelos de menor costo puede ahorrarle más del 50%, pero resulta increíblemente abrumador para los usuarios. Con la proliferación de excelentes modelos y harnesses capaces, los usuarios de agentes de programación se enfrentan constantemente a una sobrecarga de opciones. En lugar de perder tiempo intentando seleccionar el mejor modelo para cada tarea, muchos configuran el más capaz con el nivel de esfuerzo más alto y continúan. En lugar de pedir a los usuarios que elijan o frenar la productividad con límites estrictos, sabíamos que necesitábamos innovar.

Por eso estamos lanzando el próximo gran control de costos en Unity AI Gateway: Smart Routing, ya disponible en Beta. Unity AI Gateway proporciona un lugar centralizado para acceder a la AI, administrar los gastos y aplicar controles en toda su empresa, y Smart Routing añade una optimización inteligente al asignar automáticamente las tareas al modelo adecuado según su complejidad. Smart Routing funciona directamente en Claude Code y Codex, lo que le permite optimizar las herramientas que los desarrolladores ya utilizan.

Y vamos más allá del enrutamiento de modelos. Con Omnigent, nuestro meta-harness para agentes de programación, los equipos pueden aprovechar todo el poder de Smart Routing al optimizar tanto los modelos como los harnesses de programación, ofreciendo a los desarrolladores la combinación adecuada para la tarea sin tener que elegirla ellos mismos.

Los resultados hablan por sí solos: en las cargas de trabajo de programación internas, Smart Routing superó a cualquier modelo individual con solo el 65% del costo por tarea de un modelo líder como Opus 5. En las pruebas de rendimiento públicas, Smart Routing igualó el rendimiento de Opus 5 a menos de la mitad del costo.

Esto es lo que aprendimos:

  1. La mayor parte del éxito proviene del uso de modelos más económicos para tareas más sencillas. Internamente vemos una gran diversidad de tareas, y la mayoría no necesita un modelo premium. Configuramos el enrutador para seleccionar modelos más económicos para tareas más sencillas, pero para "escalar" el trabajo complejo que requiere el rendimiento de un modelo de frontera.
  2. Vimos buenos resultados utilizando únicamente la información disponible al inicio de la tarea (descripción y metadatos). No proporcionamos la respuesta, las pruebas ni nada sobre el repositorio, y Smart Routing aun así pudo elegir de manera eficaz.
  3. Aún queda un margen de mejora sustancial para dimensionar eficazmente la complejidad del trabajo y escalar cuando sea necesario. Un enrutador con una previsión perfecta superaría a cada modelo individual a una fracción de lo que gasta el nuestro, y en las sesiones de la vida real, también puede ser útil reevaluar a mitad de camino si la tarea se ha vuelto más complicada. Cerrar esta brecha es un problema tanto de investigación como de diseño de harnesses. Necesitamos aprender de los comentarios reales de los usuarios para mejorar.

Veamos cómo construimos esto.

¿Cómo funciona el enrutamiento inteligente de modelos?

El enrutamiento inteligente de modelos selecciona el modelo más adecuado para una tarea en función de factores como la complejidad, la capacidad y el costo. Para los agentes de programación, una decisión importante es cuándo debe ocurrir ese enrutamiento.

Por lo general, existen dos enfoques para el enrutamiento:

  1. Enrutamiento por solicitud: en una sesión determinada, algunos equipos han explorado el enrutamiento de cada solicitud basándose puramente en la complejidad del prompt de ese mensaje. El desafío es que, a escala, los costos están dominados por la tasa de aciertos de caché (cache hit rate). Tener una alta tasa de aciertos de caché requiere enrutar turnos consecutivos al mismo modelo (y, actualmente, al mismo nivel de esfuerzo para los modelos populares).
  2. Enrutamiento consciente de la tarea: al comienzo de la sesión, se empieza por evaluar la complejidad de la tarea y luego se sugiere un modelo y un harness para ella que se mantienen durante toda la sesión. Esto preserva la tasa de aciertos de caché y brinda una oportunidad para optimizaciones futuras, como subir o bajar de nivel según sea necesario cuando la caché se vuelve obsoleta (por ejemplo, cuando hay un evento de compactación).

Cómo funciona nuestro Smart Router

Optamos por el enrutamiento consciente de la tarea para preservar la eficiencia de la caché y, al mismo tiempo, asignar cada tarea de programación al modelo y harness adecuados. El problema más interesante es juzgar qué tan difícil es una tarea antes de comenzarla. Queríamos empezar de forma sencilla, por lo que nuestro enrutador actualmente utiliza una única política y la aplica a cada tarea de la misma manera.

Primero, clasificamos la tarea. Para esto, utilizamos un modelo más económico y de baja latencia que lee la descripción de la tarea y la etiqueta con algunos campos semánticos: qué parte del sistema cambia, qué evidencia de código contiene el prompt (un fragmento de código, un traceback o nada explícito), cómo parece estar fallando, qué tan localizada parece la corrección y a qué tipo de proyecto pertenece. A partir de estos datos, el enrutador deriva una familia de tipos de tareas y una familia de lenguajes. El uso de un modelo de frontera penalizaría cada solicitud (incluso las sencillas en las que queremos ahorrar), por lo que el extractor es intencionalmente pequeño y rápido.

Luego, triangulamos para determinar qué clase de modelo es la mejor. El enrutador utiliza por defecto un modelo de tamaño mediano y usa las etiquetas para moverse en cualquier dirección, escalando a un modelo más costoso cuando la tarea exige capacidad y conocimiento de nivel de frontera, o delegando en uno más económico cuando no es así. Esto significa que una única política puede aprovechar todo un conjunto de modelos.

Los primeros resultados son prometedores. Frente a nuestra propia prueba de rendimiento interna, a la que ningún laboratorio ha tenido acceso, vimos un ahorro del 35%. Frente a las pruebas de rendimiento de programación públicas que demuestran que nuestros resultados se generalizan, logramos un ahorro de costos del 56%. Esperamos ver que esto crezca a medida que aprendamos más sobre nuestros propios casos de uso y con nuestros socios de diseño.

¿Cómo se enrutan las tareas de programación entre modelos y harnesses?

Smart Routing se encarga de la decisión de enrutamiento, pero luego es necesario poder actuar en consecuencia. Funciona de forma nativa dentro de Claude Code y Codex, pero para los agentes de programación, vemos un mejor rendimiento al elegir no solo el modelo adecuado, sino también el harness de programación adecuado. Ayudar a los ingenieros a aprovechar el modelo y el harness elegidos requiere una capa situada por encima de las sesiones de programación individuales para coordinarlas entre sí. Por eso creamos Omnigent.

Smart Routing está implementado en Omnigent en dos niveles:

En primer lugar, los desarrolladores que utilizan Omnigent pueden seleccionar Smart Routing en lugar de elegir manualmente un harness de programación específico. Luego, Omnigent selecciona automáticamente tanto el harness como el modelo para cada tarea, con el enrutamiento de modelos impulsado por Smart Routing en Unity AI Gateway. Este diseño ofrece a los desarrolladores y administradores la libertad de proporcionar personalizaciones, como pautas a nivel de organización o la opción de utilizar el historial de conversaciones anteriores, sin tener que cambiar el cliente cada vez.

Esto también significa que todos los lanzamientos de subagentes pasan por la API de Smart Routing, lo que permite a los subagentes aprovechar un harness y un modelo diferentes. El prompt inicial del usuario a menudo no está lo suficientemente especificado y es difícil de evaluar en términos de complejidad, por lo que los subagentes le permiten ajustar el nuevo trabajo en función de la nueva información, con una caché fresca e instrucciones claras. Una sola tarea puede experimentar decisiones de enrutamiento matizadas a lo largo de la planificación y el trabajo paralelo de los subagentes (por ejemplo, puede enrutar tareas de resumen de grandes bases de código a modelos más económicos mientras diseña la arquitectura con modelos más costosos), lo que genera ahorros aún más significativos.

¿Cómo se evalúa si el enrutamiento de modelos está funcionando?

El enrutamiento de modelos eficaz debe optimizar tanto el costo como la productividad de los desarrolladores, y no solo el costo. Es fundamental contar con señales de retroalimentación, ya que los enrutadores aún son tecnologías incipientes que requerirán una iteración sustancial. Nuestro primer paso aquí fue registrar todas las trazas de las sesiones de programación para su posterior evaluación. Queremos considerar tanto el costo como la experiencia del desarrollador; no queremos optimizar el costo a expensas de la productividad.

Con Unity AI Gateway, las trazas de los agentes de programación se pueden registrar en Unity Catalog. Estos son datos extremadamente sensibles y deben permanecer gobernados por políticas sofisticadas de etiquetado y acceso en la mayoría de las empresas maduras.

Utilizamos tanto modelos de AI como revisión humana para analizar las trazas y evaluar los cambios en el enrutador. Al realizar este análisis en nuestras propias sesiones antes del enrutamiento, observamos que una gran parte de las sesiones gastaba dinero de modelos de frontera en tareas que no lo requerían, simplemente porque el modelo predeterminado era el más costoso. En la práctica, la forma de validar que el enrutador es útil es monitorear continuamente las siguientes métricas:

  • Desglose de sesiones por modelos
  • N.º de sesiones completadas por los modelos enrutados de extremo a extremo
  • Cantidad de ahorro en dólares gracias al enrutamiento

Hacia dónde llevamos el enrutamiento inteligente de modelos a continuación

Creemos que esta es un área con una gran oportunidad y planeamos seguir investigando a fondo en este campo. Aún es pronto, así que tenemos mucho que aprender.
Nuestro primer desafío ha sido la falta de confiabilidad en los datos de referencia (benchmarking) que no coinciden con el comportamiento real del usuario. Las tareas de referencia se comportan inusualmente bien, y cada una llega como una declaración de trabajo independiente. Aunque los enrutadores funcionan bien en este tipo de tareas, las sesiones reales a menudo no son así en absoluto.

  • Los prompts iniciales rara vez son precisos, ya que lo primero que escribe un desarrollador es un síntoma o una intención aproximada en lugar de una especificación, y nuestro enrutador lee ese primer mensaje y se compromete con él.
  • Las sesiones se reutilizan, por lo que la decisión que fue correcta para la primera solicitud puede ser incorrecta para la cuarta, y nada vuelve a consultar al enrutador.

Por eso, estamos investigando algunas direcciones nuevas para recopilar más información y probar nuevas técnicas:

  1. Comenzar donde la definición del alcance de la tarea es gratuita. Las revisiones de PR, los lanzamientos de subagentes, las migraciones por lotes y los trabajos programados están completamente especificados desde el principio porque una máquina escribió la declaración de la tarea. El enrutamiento funciona hoy en día en esta clase de tareas sin cambiar los hábitos de nadie, razón por la cual nos estamos implementando aquí primero.
  2. Enrutar después de unos turnos, no en el primero. Para el trabajo interactivo, el prompt inicial es el peor momento posible para decidir, y nada nos obliga a hacerlo ahí. En su lugar, puede ser útil dejar que un modelo económico maneje el intercambio inicial y haga preguntas aclaratorias, para luego enrutar la tarea una vez que haya tomado forma. Es mejor explorar con un modelo rápido y pequeño, por lo que esto debería mejorar tanto el costo como la experiencia.
  3. Hacer que las sesiones sean más cortas. Las sesiones que se centran en una sola tarea se enrutan mejor y cuestan menos, y las herramientas pueden fomentar esto haciendo que iniciar una nueva sesión sea el paso obvio cuando cambia el tema.
  4. Hacer que el cambio sea económico. Todo lo anterior requiere que los cambios de modelo a mitad de sesión sean accesibles. En el mundo actual, donde los costos están dominados por la tasa de aciertos de caché, cambiar a mitad de sesión es insostenible a escala. La compactación de contexto es la transición natural, ya que allí ya se está produciendo un fallo de caché (así es como lo hace Devin Fusion de Cognition). Con el tiempo, queremos que la capa de enrutamiento fije explícitamente el precio de los fallos de caché en lugar de integrar eso en la forma en que usamos el enrutador.

El enrutamiento se suele presentar como una forma de gastar menos. Aunque la mayoría de nuestras ventajas provienen de pagar precios más bajos por tareas sencillas, el mismo mecanismo puede ayudarnos a decidir cuándo gastar más para obtener un mejor resultado. La maximización del valor funciona en ambos sentidos: elija el modelo económico cuando sea suficiente y tenga la confianza de gastar más cuando el valor lo justifique.

Las herramientas de programación a menudo incentivan a los usuarios a consumir cada vez más tokens, pero lo que realmente queremos es optimizar el rendimiento productivo por dólar, no los tokens. Elegir un modelo más económico y rápido cuando es suficiente no solo ahorra dinero. También ahorra tiempo y mantiene disponible la escasa capacidad de los modelos de frontera para las tareas que realmente la necesitan.

Pruebe Smart Routing hoy mismo

Smart Routing ya está disponible en versión Beta a través de Unity AI Gateway. Enruta automáticamente las tareas de programación al modelo adecuado según la complejidad, lo que ayuda a los equipos a alcanzar un rendimiento de nivel de frontera con un ahorro de costos de más del 30 % al seleccionar el mejor modelo para cada tarea. Para los equipos que buscan reducir los costos de programación con AI sin limitar la elección o la productividad de los desarrolladores, Smart Routing ofrece una alternativa a la selección manual de modelos o a la dependencia de límites de gasto estrictos. Y con Omnigent, puede ampliar el enrutamiento inteligente a través de modelos y harnesses de programación.

Para comenzar, visite nuestras páginas de documentación:

Obtenga más información sobre Unity AI Gateway visitando nuestro sitio web.

(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original

Recibe las últimas publicaciones en tu bandeja de entrada

Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.