Mejorando el Agente de Cursor para los modelos Codex de OpenAI

por Cursor Team en producto

Cursor se integra con todos los modelos de IA de vanguardia para programación.

Cada modelo requiere instrucciones específicas y ajustes a la infraestructura de nuestro Agente para mejorar la calidad de las respuestas, evitar comportamientos perezosos, invocar herramientas de forma eficiente y más.

Hemos estado colaborando con OpenAI para poner sus modelos a disposición de los desarrolladores con el Agente de Cursor. En esta publicación explicamos cómo hemos actualizado la infraestructura de nuestro Agente para admitir su último modelo de programación de última generación, GPT-5.1-Codex-Max.

Creación de una infraestructura de agentes sólida

Cada modelo en la infraestructura de agentes de Cursor tiene instrucciones específicas y herramientas disponibles para optimizar ese modelo dentro del entorno de Cursor.

Los laboratorios de IA entrenan nuevos modelos con una amplia variedad de instrucciones y herramientas. En dominios específicos como la programación, los modelos tienden a favorecer patrones más similares a los que ya han visto durante el entrenamiento. Al agregar nuevos modelos a Cursor, nuestro trabajo es integrar instrucciones y herramientas familiares junto con las específicas de Cursor y luego ajustarlas basándonos en Cursor Bench, nuestro conjunto interno de evaluaciones.

Medimos la calidad y la robustez de los modelos en función de su tasa de éxito, su capacidad para invocar herramientas y su adopción general entre los usuarios. Estas son algunas de las actualizaciones que hicimos en nuestra infraestructura de agentes para Codex.

Actualización para el modelo Codex más reciente

Los modelos Codex de OpenAI son versiones de su modelo de vanguardia más reciente, entrenados específicamente para programación basada en agentes.

El equipo de OpenAI colaboró estrechamente con nosotros para alinear las herramientas y los prompts con la CLI de Codex. Estos son algunos de los cambios que hemos realizado:

Un enfoque más orientado a la shell

La CLI de Codex de OpenAI está centrada en flujos de trabajo orientados a la shell. Como resultado, el modelo Codex recibe un conjunto limitado de herramientas durante el entrenamiento y, en su lugar, aprende a usar la shell para buscar, leer archivos y realizar modificaciones.

Si el modelo tiene dificultades con una modificación compleja, a veces recurre a escribir archivos usando un script de Python en línea. Estos scripts son potentes, pero llamar a herramientas es más seguro y ofrece una mejor experiencia de usuario para las ediciones en Cursor.

Para fomentar el uso de herramientas, acercamos los nombres y definiciones de las herramientas en Cursor a sus equivalentes en la shell, como rg (ripgrep). Hicimos este cambio para todos los modelos en nuestro harness. También añadimos instrucciones como:

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

El sandboxing en Cursor, que evita el acceso no autorizado a archivos y la actividad de red sin que los usuarios tengan que aprobar manualmente cada comando, también contribuye a mejorar la seguridad si el modelo aun así decide ejecutar un comando de shell.

Preámbulos

A diferencia de la serie principal de modelos GPT-5, la familia de modelos Codex actualmente utiliza resúmenes de razonamiento para comunicar actualizaciones al usuario mientras trabaja. Estos pueden tomar la forma de encabezados de una sola línea o de un mensaje completo.

Para estos resúmenes de razonamiento, queríamos encontrar un equilibrio que permitiera a los usuarios seguir el progreso del agente e identificar malas trayectorias pronto, sin bombardearlos hasta el punto de que dejen de prestar atención. Le dimos al modelo pautas para limitar los resúmenes de razonamiento a 1 o 2 frases, señalar cuándo descubre información nueva o inicia una táctica nueva y evitar comentar sobre su propia comunicación (“Estoy explicando al usuario…”).

Dado que los modelos Codex no pueden “hablar” normalmente hasta el final de un turno del agente, eliminamos todo el lenguaje del prompt relacionado con la comunicación con el usuario a mitad de turno. Descubrimos que esto mejoró el rendimiento de la salida de código final del modelo.

Lectura de lints

Cursor pone herramientas a disposición de todos los modelos en nuestro harness para leer errores de linter (p. ej., ESLint, Biome) y permitir que el agente los corrija automáticamente.

Descubrimos que proporcionar a Codex solo la definición de la herramienta no basta para que decida llamar a nuestra herramienta read_lints. En cambio, Codex se beneficia significativamente de instrucciones claras y literales sobre cuándo debe llamarla:

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.

Conservación de los rastros de razonamiento

Los modelos de razonamiento de OpenAI emiten rastros de razonamiento interno entre llamadas a herramientas, que en la práctica son una “cadena de pensamiento” que explica por qué el modelo elige cada acción. La Responses API está diseñada para capturar y reenviar estos elementos de razonamiento (o elementos de razonamiento cifrados en contextos sensibles) para que el modelo pueda mantener la continuidad entre turnos en lugar de tener que reconstruir su plan desde cero.

Codex depende especialmente de esta continuidad. Cuando se descartan los rastros de razonamiento, el modelo tiene que inferir su proceso de pensamiento anterior, lo que a menudo conduce a subobjetivos perdidos, una planificación de menor calidad, llamadas a herramientas en un orden incorrecto o a volver a deducir repetidamente pasos anteriores. En nuestros experimentos de Cursor Bench, eliminar los rastros de razonamiento de GPT-5-Codex provocó una caída del 30 % en el rendimiento. En comparación, OpenAI observó una degradación menor del 3 % para GPT-5 en SWE-bench cuando se omitían los rastros de razonamiento.

Dada la magnitud de ese impacto, añadimos alertas para garantizar que los rastros de razonamiento siempre se conserven y se reenvíen correctamente. Esto mantiene intacto el plan interno del agente y evita las regresiones de rendimiento que se producen cuando los modelos se ven obligados a “rellenar los huecos” entre llamadas a herramientas.

Orientar el modelo para que actúe

En el modo de Agente predeterminado de Cursor, quieres que el Agente lea y edite archivos de forma autónoma según la solicitud del usuario. Puede resultar frustrante cuando cambias de pestaña y luego descubres que el Agente estaba esperando para pedirte permiso para continuar.

Hemos estado experimentando con instrucciones más específicas para guiar mejor a Codex:

A menos que el usuario solicite explícitamente un plan u otra intención que
deje claro que no se debe escribir código, asume que el usuario quiere
que realices cambios en el código o ejecutes herramientas para resolver su problema. En
estos casos, no es buena idea mostrar tu solución propuesta en un mensaje; debes
proceder a implementar el cambio directamente. Si encuentras
dificultades u obstáculos, intenta resolverlos por tu cuenta.

En Cloud Agents, nuestro flujo de trabajo remoto asíncrono, llevamos aún más lejos esta formulación.

Orden de los mensajes

Los modelos de OpenAI se entrenan para respetar y priorizar el orden de los mensajes. Por ejemplo, el mensaje de sistema siempre tiene prioridad sobre los mensajes de usuario y los resultados de herramientas.

Si bien esto es útil, significa que necesitamos ajustar nuestros mecanismos para asegurarnos de que el prompt proporcionado por Cursor no incluya instrucciones que puedan contradecir accidentalmente los mensajes del usuario. De lo contrario, Codex podría entrar en un estado en el que no quiera cumplir con la solicitud del usuario.

Por ejemplo, en un momento le dijimos a Codex que debía tener cuidado de preservar los tokens y no malgastarlos. Pero notamos que este mensaje estaba afectando la disposición del modelo a realizar tareas más ambiciosas o exploraciones a gran escala. A veces se detenía y decía tercamente: Se supone que no debo desperdiciar tokens, ¡y no creo que valga la pena continuar con esta tarea!

De cara al futuro

El ritmo de lanzamientos de modelos está aumentando. Nuestro objetivo es aprovechar al máximo cada modelo de vanguardia dentro del entorno del Agente de Cursor. Aún queda trabajo por hacer y seguiremos compartiendo las mejoras que vayamos incorporando a Cursor.

Archivado en: producto

Autor: Cursor Team

Mejorando el Agente de Cursor para los modelos Codex de OpenAI · Cursor