Composer: Creación de un modelo de vanguardia rápido con RL
Composer es nuestro nuevo modelo de agente diseñado para ofrecer inteligencia y velocidad en ingeniería de software. En nuestros benchmarks, el modelo alcanza resultados de vanguardia en codificación con una velocidad de generación cuatro veces superior a la de modelos similares.
Obtenemos estos resultados entrenando el modelo para completar desafíos de ingeniería de software del mundo real en grandes bases de código. Durante el entrenamiento, a Composer se le da acceso a un conjunto de herramientas de búsqueda y edición en producción y se le asigna la tarea de resolver de forma eficiente una amplia gama de problemas difíciles. El resultado final es un modelo a gran escala optimizado para usarse como agente de alta velocidad en Cursor.


Nuestra motivación proviene de nuestra experiencia desarrollando Cursor Tab, nuestro modelo de autocompletado personalizado. Descubrimos que a menudo los desarrolladores quieren el modelo más inteligente que pueda admitir un uso interactivo y mantenerlos en flujo mientras programan. En nuestro proceso de desarrollo, experimentamos con un modelo de agente prototipo, con nombre en clave Cheetah, para entender mejor el impacto de modelos de agente más rápidos. Composer es una versión más inteligente de este modelo que mantiene la programación agradable al ser lo suficientemente rápido para una experiencia interactiva.
Composer es un modelo de lenguaje de tipo mixture-of-experts (MoE) que admite generación y comprensión de contexto largo. Está especializado para ingeniería de software mediante aprendizaje por refuerzo (RL) en una amplia variedad de entornos de desarrollo. En cada iteración de entrenamiento, se le da al modelo una descripción del problema y se le indica que produzca la mejor respuesta, ya sea una edición de código, un plan o una respuesta informativa. El modelo tiene acceso a herramientas simples, como leer y editar archivos, y también a herramientas más potentes como comandos de terminal y búsqueda semántica en toda la base de código.
Para medir el progreso, construimos una evaluación que mide la utilidad de un modelo para un desarrollador de software de la forma más fiel posible. Nuestro benchmark, Cursor Bench, consiste en solicitudes reales al agente procedentes de ingenieros e investigadores en Cursor, junto con soluciones óptimas seleccionadas manualmente para estas solicitudes. La evaluación resultante mide no solo la corrección del agente, sino también su alineación con las abstracciones existentes de la base de código y con las prácticas de ingeniería de software.


El aprendizaje por refuerzo nos permite especializar activamente el modelo para una ingeniería de software efectiva. Dado que la velocidad de respuesta es un componente crítico para el desarrollo interactivo, incentivamos al modelo a tomar decisiones eficientes en el uso de herramientas y a maximizar el paralelismo siempre que sea posible. Además, entrenamos el modelo para que sea un asistente útil minimizando las respuestas innecesarias y las afirmaciones realizadas sin evidencia. También observamos que durante el RL el modelo aprende por sí mismo comportamientos útiles, como realizar búsquedas complejas, corregir errores de linter y escribir y ejecutar pruebas unitarias.


El entrenamiento eficiente de grandes modelos MoE requiere una inversión significativa en la creación de infraestructura y en investigación de sistemas. Construimos infraestructura de entrenamiento personalizada aprovechando PyTorch y Ray para habilitar aprendizaje por refuerzo asíncrono a escala. Entrenamos nuestros modelos de forma nativa a baja precisión combinando nuestros kernels MXFP8 MoE con paralelismo de expertos y paralelismo de datos fragmentado híbrido, lo que nos permite escalar el entrenamiento a miles de GPU NVIDIA con un costo de comunicación mínimo. Además, entrenar con MXFP8 nos permite ofrecer velocidades de inferencia más altas sin requerir cuantización posterior al entrenamiento.
Durante el aprendizaje por refuerzo (RL), queremos que nuestro modelo pueda llamar a cualquier herramienta en el harness de herramientas de Cursor Agent. Estas herramientas permiten editar código, usar búsqueda semántica, buscar cadenas con grep y ejecutar comandos de terminal. A nuestra escala, enseñar al modelo a llamar de forma eficaz a estas herramientas requiere ejecutar cientos de miles de entornos de programación aislados y concurrentes en la nube. Para admitir esta carga de trabajo, adaptamos la infraestructura existente que construimos para Background Agents, reescribiendo nuestro planificador de máquinas virtuales para manejar la naturaleza con picos de carga y la escala de las ejecuciones de entrenamiento. Esto permitió una unificación perfecta de los entornos de RL con los entornos de producción.
Cursor crea herramientas para ingeniería de software, y hacemos un uso intensivo de las herramientas que desarrollamos. Una motivación del desarrollo de Composer ha sido crear un agente al que recurriríamos en nuestro propio trabajo. En las últimas semanas, hemos visto que muchos de nuestros colegas estaban usando Composer para su desarrollo de software del día a día. Con este lanzamiento, esperamos que tú también lo encuentres una herramienta valiosa.
—
¹ Evaluado en un benchmark interno en el harness de herramientas de Cursor. Agrupamos los modelos en clases según la puntuación e informamos del mejor modelo en cada clase. "Fast Frontier" incluye modelos diseñados para inferencia eficiente, como Haiku 4.5 y Gemini Flash 2.5. "Best Open" incluye lanzamientos recientes de modelos de pesos abiertos como Qwen Coder y GLM 4.6. "Frontier 7/2025" es el mejor modelo disponible en julio de este año. "Best Frontier" incluye GPT-5 y Sonnet 4.5, que superan a Composer. Para el cálculo de Tokens per Second, los tokens se estandarizan en todos los modelos con respecto al tokenizador más reciente de Anthropic.