Aprimorando o agente do Cursor para modelos OpenAI Codex

Por Cursor Team em Produto

Cursor se integra a todos os modelos de IA de ponta para programação.

Cada modelo exige instruções específicas e ajustes no nosso harness de agente para melhorar a qualidade dos resultados, evitar respostas preguiçosas, chamar ferramentas com eficiência e mais.

Estamos trabalhando em parceria com a OpenAI para disponibilizar seus modelos para desenvolvedores com o Agente do Cursor. Neste post, mostramos como atualizamos nosso harness de agente para oferecer suporte ao mais recente modelo de programação de ponta, GPT-5.1-Codex-Max.

Criando uma estrutura de agentes robusta

Cada modelo na estrutura de agentes do Cursor tem instruções e ferramentas específicas disponibilizadas para otimizar esse modelo dentro do ambiente do Cursor.

Laboratórios de IA treinam novos modelos com uma variedade de instruções e ferramentas diferentes. Em domínios específicos como programação, os modelos podem favorecer padrões mais parecidos com o que já viram durante o treinamento. Ao adicionar novos modelos ao Cursor, nosso trabalho é integrar instruções e ferramentas familiares ao lado daquelas específicas do Cursor e, em seguida, ajustá-las com base no Cursor Bench, nossa suíte interna de avaliações.

Medimos a qualidade e a robustez dos modelos com base na taxa de sucesso, na capacidade de usar ferramentas e na adoção geral pelos usuários. Aqui estão algumas das atualizações que fizemos na nossa estrutura de agentes para o Codex.

Atualizando para o modelo Codex mais recente

Os modelos Codex da OpenAI são versões do seu modelo de ponta mais recente, treinados especificamente para codificação com agentes.

A equipe da OpenAI colaborou de perto conosco para alinhar as ferramentas e os prompts com o harness Codex CLI. Aqui estão algumas das mudanças que fizemos:

Uma abordagem mais voltada para o shell

A Codex CLI da OpenAI é focada em fluxos de trabalho orientados ao shell. Como resultado, o modelo Codex recebe um conjunto limitado de ferramentas durante o treinamento e, em vez disso, aprende a usar o shell para pesquisar, ler arquivos e fazer edições.

Se o modelo estiver com dificuldade em uma edição complexa, às vezes ele recorre a escrever arquivos usando um script Python embutido. Esses scripts são poderosos, mas chamar ferramentas é ao mesmo tempo mais seguro e oferece uma experiência melhor para o usuário em edições no Cursor.

Para incentivar o uso de chamadas de ferramenta, deixamos os nomes e definições das ferramentas no Cursor mais próximos de seus equivalentes no shell, como rg (ripgrep). Fizemos essa alteração para todos os modelos no nosso harness. Também adicionamos instruções como:

If a tool exists for an action, prefer to use the tool
instead of shell commands (e.g. read_file over `cat`).

O Sandboxing no Cursor, que impede acesso não autorizado a arquivos e atividades de rede sem exigir que os usuários aprovem manualmente cada comando, também aumenta a segurança caso o modelo ainda opte por executar um comando de shell.

Preâmbulos

Diferente da série principal de modelos GPT-5, a família de modelos Codex atualmente usa resumos de raciocínio para comunicar atualizações ao usuário enquanto está trabalhando. Esses resumos podem assumir a forma de títulos de uma linha ou de uma mensagem completa.

Para esses resumos de raciocínio, buscamos encontrar um equilíbrio que permitisse aos usuários acompanhar o progresso do agente e identificar trajetórias ruins cedo, sem bombardeá-los a ponto de pararem de prestar atenção. Demos ao modelo diretrizes para limitar os resumos de raciocínio a 1 ou 2 frases, registrar quando estiver descobrindo novas informações ou iniciando uma nova tática e evitar comentar sobre a própria comunicação (“Estou explicando ao usuário…”).

Como os modelos Codex não podem “falar” normalmente até o final de um turno do agente, removemos toda a linguagem no prompt relacionada a se comunicar com o usuário no meio do turno. Descobrimos que isso melhorou o desempenho do código final gerado pelo modelo.

Lendo lints

O Cursor disponibiliza ferramentas a todos os modelos em nosso harness para leitura de erros de linter (por exemplo, ESLint, Biome) e permite que o agente os corrija automaticamente.

Descobrimos que fornecer ao Codex apenas a definição da ferramenta não é suficiente para fazer com que ele use nossa ferramenta read_lints. Em vez disso, o Codex se beneficia significativamente de instruções claras e literais sobre quando chamá-la:

After substantive edits, use the read_lints tool to check
recently edited files for linter errors. If you've introduced
any, fix them if you can easily figure out how.

Preservando rastros de raciocínio

Os modelos de raciocínio da OpenAI emitem rastros internos de raciocínio entre chamadas de ferramenta, que são efetivamente uma “cadeia de raciocínio” explicando por que o modelo escolhe cada ação. A Responses API foi projetada para capturar e repassar esses itens de raciocínio (ou itens de raciocínio criptografados em contextos sensíveis) para que o modelo possa manter a continuidade entre as interações, em vez de ter que reconstruir seu plano do zero.

O Codex depende especialmente dessa continuidade. Quando os rastros de raciocínio são descartados, o modelo precisa inferir seu raciocínio anterior, o que frequentemente leva a subobjetivos perdidos, planejamento comprometido, chamadas de ferramenta fora de ordem ou à repetição de etapas anteriores. Em nossos experimentos do Cursor Bench, remover os rastros de raciocínio do GPT-5-Codex causou uma queda de desempenho de 30%. Em comparação, a OpenAI observou uma degradação menor, de 3%, para o GPT-5 no SWE-bench quando os rastros de raciocínio foram omitidos.

Dada a escala desse impacto, adicionamos alertas para garantir que os rastros de raciocínio sejam sempre preservados e encaminhados corretamente. Isso mantém o plano interno do agente intacto e evita as regressões de desempenho que ocorrem quando os modelos são forçados a “preencher as lacunas” entre chamadas de ferramenta.

Orientando o modelo a tomar iniciativa

No modo padrão de agente do Cursor, você quer que o agente leia e edite arquivos de forma autônoma com base na solicitação do usuário. Pode ser frustrante quando você muda de aba e descobre que o agente estava esperando para pedir sua permissão para continuar.

Estamos testando instruções mais específicas para ajudar a orientar o Codex:

Unless the user explicitly asks for a plan or some other intent that
makes it clear that code should not be written, assume the user wants
you to make code changes or run tools to solve the user's problem. In
these cases, it's bad to output your proposed solution in a message, you
should go ahead and actually implement the change. If you encounter
challenges or blockers, you should attempt to resolve them yourself.

No Cloud Agents, nosso fluxo de trabalho remoto assíncrono, tornamos essa linguagem ainda mais rigorosa.

Ordenação de mensagens

Os modelos da OpenAI são treinados para respeitar e priorizar a ordem das mensagens. Por exemplo, o prompt de sistema sempre tem precedência sobre mensagens de usuário e resultados de ferramentas.

Embora isso seja útil, significa que precisamos ajustar nossos harnesses para garantir que o prompt fornecido pelo Cursor não inclua instruções que possam, sem querer, contradizer mensagens do usuário. Caso contrário, o Codex pode entrar em um estado em que não quer atender ao pedido do usuário.

Por exemplo, em certo momento dissemos ao Codex que ele deveria tomar cuidado para preservar tokens e não desperdiçá-los. Mas percebemos que essa mensagem estava afetando a disposição do modelo em executar tarefas mais ambiciosas ou explorações em grande escala. Às vezes ele parava e, teimosamente, dizia: Não devo desperdiçar tokens, e não acho que valha a pena continuar com esta tarefa!

Olhando adiante

O ritmo de lançamentos de modelos está acelerando. Nosso objetivo é extrair o máximo de cada modelo de ponta dentro da infraestrutura do Agente do Cursor. Ainda há trabalho a fazer, e continuaremos compartilhando as melhorias que estamos trazendo ao Cursor.

Arquivado em: Produto

Autor: Cursor Team

Aprimorando o agente do Cursor para modelos OpenAI Codex · Cursor