Composer: construindo um modelo de ponta rápido com RL
Composer é nosso novo modelo de agente projetado para inteligência e velocidade em engenharia de software. Em nossos benchmarks, o modelo atinge resultados de ponta em programação, com velocidade de geração quatro vezes maior do que modelos semelhantes.
Chegamos a esses resultados treinando o modelo para concluir desafios de engenharia de software do mundo real em grandes bases de código. Durante o treinamento, o Composer recebe acesso a um conjunto de ferramentas de busca e edição usadas em produção e é encarregado de resolver com eficiência uma ampla gama de problemas difíceis. O resultado final é um modelo em larga escala otimizado para uso em alta velocidade como agente no Cursor.


Nossa motivação vem da experiência desenvolvendo o Cursor Tab, nosso modelo de autocomplete personalizado. Descobrimos que, muitas vezes, desenvolvedores querem o modelo mais inteligente que ainda consiga dar suporte a um uso interativo, mantendo-os no fluxo da codificação. No nosso processo de desenvolvimento, experimentamos um modelo de agente protótipo, de codinome Cheetah, para entender melhor o impacto de agentes mais rápidos. O Composer é uma versão mais inteligente desse modelo, que mantém a programação agradável por ser rápido o suficiente para uma experiência interativa.
Composer é um modelo de linguagem do tipo mixture-of-experts (MoE) que oferece suporte à geração e compreensão de longos contextos. Ele é especializado em engenharia de software por meio de aprendizado por reforço (RL) em uma ampla variedade de ambientes de desenvolvimento. Em cada iteração de treinamento, o modelo recebe a descrição de um problema e é instruído a produzir a melhor resposta, seja uma edição de código, um plano ou uma resposta informativa. O modelo tem acesso a ferramentas simples, como leitura e edição de arquivos, e também a ferramentas mais poderosas, como comandos de terminal e busca semântica em toda a base de código.
Para medir o progresso, construímos uma avaliação que mede a utilidade de um modelo para um desenvolvedor de software da forma mais fiel possível. Nosso benchmark, Cursor Bench, consiste em solicitações reais a agentes feitas por engenheiros e pesquisadores na Cursor, juntamente com soluções ideais selecionadas manualmente para essas solicitações. A avaliação resultante mede não apenas a correção do agente, mas também sua conformidade com as abstrações existentes da base de código e com as práticas de engenharia de software.


O aprendizado por reforço nos permite especializar ativamente o modelo para uma engenharia de software eficaz. Como a velocidade de resposta é um componente crítico para o desenvolvimento interativo, incentivamos o modelo a fazer escolhas eficientes no uso de ferramentas e a maximizar o paralelismo sempre que possível. Além disso, treinamos o modelo para ser um assistente útil, minimizando respostas desnecessárias e afirmações feitas sem evidências. Também observamos que, durante o RL, o modelo aprende comportamentos úteis por conta própria, como realizar buscas complexas, corrigir erros de linter e escrever e executar testes de unidade.


O treinamento eficiente de grandes modelos MoE requer um investimento significativo em construção de infraestrutura e pesquisa de sistemas. Construímos uma infraestrutura de treinamento personalizada aproveitando PyTorch e Ray para viabilizar aprendizado por reforço assíncrono em escala. Treinamos nossos modelos nativamente em baixa precisão, combinando nossos kernels MXFP8 MoE com paralelismo entre especialistas e paralelismo de dados fragmentado híbrido, o que nos permite escalar o treinamento para milhares de GPUs NVIDIA com custo mínimo de comunicação. Além disso, treinar com MXFP8 nos permite oferecer velocidades de inferência mais altas sem exigir quantização pós-treinamento.
Durante o RL, queremos que nosso modelo seja capaz de chamar qualquer ferramenta no harness do Cursor Agent. Essas ferramentas permitem editar código, usar busca semântica, realizar grep em strings e executar comandos de terminal. Na nossa escala, ensinar o modelo a chamar essas ferramentas de forma eficaz exige executar centenas de milhares de ambientes de programação isolados e concorrentes na nuvem. Para dar suporte a essa carga de trabalho, adaptamos a infraestrutura existente que construímos para Background Agents, reescrevendo nosso escalonador de máquinas virtuais para lidar com a natureza de picos e a escala das execuções de treinamento. Isso possibilitou a unificação perfeita dos ambientes de RL com os ambientes de produção.
A Cursor constrói ferramentas para engenharia de software e fazemos uso intenso das ferramentas que desenvolvemos. Uma das motivações por trás do desenvolvimento do Composer tem sido criar um agente ao qual recorreríamos no nosso próprio trabalho. Nas últimas semanas, percebemos que muitos dos nossos colegas estavam usando o Composer no seu desenvolvimento diário de software. Com este lançamento, esperamos que você também o considere uma ferramenta valiosa.
—
¹ Avaliado em um benchmark interno no harness de ferramentas do Cursor. Agrupamos modelos em classes com base na pontuação e relatamos o melhor modelo em cada classe. “Fast Frontier” inclui modelos projetados para inferência eficiente, como Haiku 4.5 e Gemini Flash 2.5. “Best Open” inclui lançamentos recentes de modelos com pesos abertos, como Qwen Coder e GLM 4.6. “Frontier 7/2025” é o melhor modelo disponível em julho deste ano. “Best Frontier” inclui GPT-5 e Sonnet 4.5, que ambos superam o Composer. Para o cálculo de tokens por segundo, os tokens são padronizados entre os modelos para o tokenizador mais recente da Anthropic.