Primero, ¿qué es una ventana de contexto? ¿Y cómo se relaciona con programar de forma efectiva en Cursor? Para tomar un poco de perspectiva, un modelo de lenguaje grande (LLM) es un modelo de inteligencia artificial entrenado para predecir y generar texto aprendiendo patrones a partir de conjuntos de datos masivos. Potencia herramientas como Cursor al entender tu entrada y sugerir código o texto según lo que ha visto antes. Los tokens son las entradas y salidas de estos modelos. Son fragmentos de texto, a menudo una parte de una palabra, que un LLM procesa uno por uno. Los modelos no leen oraciones completas de una vez; predicen el siguiente token en función de los anteriores. Para ver cómo se tokeniza un texto, puedes usar un tokenizador como este. Tokenizer

¿Qué es el contexto?

Cuando generamos una sugerencia de código en Cursor, “contexto” se refiere a la información que se le proporciona al modelo (en forma de “tokens de entrada”) que el modelo luego usa para predecir la información siguiente (en forma de “tokens de salida”). Hay dos tipos de contexto:
  1. Contexto de intención define lo que el usuario quiere obtener del modelo. Por ejemplo, un system prompt suele servir como instrucciones de alto nivel sobre cómo el usuario quiere que se comporte el modelo. La mayor parte del “prompting” que se hace en Cursor es contexto de intención. “Turn that button from blue to green” es un ejemplo de intención declarada; es prescriptivo.
  2. Contexto de estado describe el estado del mundo actual. Proporcionarle a Cursor mensajes de error, logs de consola, imágenes y fragmentos de código son ejemplos de contexto relacionado con el estado. Es descriptivo, no prescriptivo.
En conjunto, estos dos tipos de contexto funcionan en armonía al describir el estado actual y el estado futuro deseado, lo que permite que Cursor haga sugerencias de código útiles.

Proveer contexto en Cursor

Cuanto más contexto relevante le puedas dar a un modelo, más útil va a ser. Si no se proporciona suficiente contexto en Cursor, el modelo intentará resolver la tarea sin la información necesaria. Esto suele resultar en:
  1. Alucinaciones en las que el modelo intenta hacer coincidencias de patrones (cuando no hay ningún patrón), causando resultados inesperados. Esto puede pasar con frecuencia en modelos como claude-3.5-sonnet cuando no se les da suficiente contexto.
  2. El Agent intentando reunir contexto por su cuenta buscando en el código, leyendo archivos y llamando herramientas. Un modelo con fuertes capacidades de razonamiento (como claude-3.7-sonnet) puede llegar bastante lejos con esta estrategia, y proporcionar el contexto inicial correcto va a determinar la trayectoria.
La buena noticia es que Cursor está construido con conciencia contextual en su núcleo y está diseñado para requerir una intervención mínima del usuario. Cursor extrae automáticamente las partes de tu base de código que el modelo estima que son relevantes, como el archivo actual, patrones semánticamente similares en otros archivos y otra información de tu sesión. Sin embargo, hay mucho contexto del que se puede echar mano, así que especificar manualmente el contexto que sabes que es relevante para la tarea es una forma útil de orientar a los modelos en la dirección correcta.

Símbolo @

La forma más fácil de aportar contexto explícito es con el símbolo @. Son ideales cuando sabes exactamente qué archivo, carpeta, sitio web u otra pieza de contexto quieres incluir. Cuanto más específico puedas ser, mejor. Aquí tienes un desglose de cómo ser más preciso con el contexto:
SímboloEjemploCaso de usoDesventaja
@code@LRUCachedFunctionSabes qué función, constante o símbolo es relevante para el resultado que estás generandoRequiere mucho conocimiento del codebase
@filecache.tsSabes qué archivo se debe leer o editar, pero no exactamente dónde dentro del archivoPodría incluir mucho contexto irrelevante para la tarea en cuestión según el tamaño
@folderutils/Todo o la mayoría de los archivos en una carpeta son relevantesPodría incluir mucho contexto irrelevante para la tarea en cuestión
Context Menu

Reglas

Piensa en las reglas como una memoria a largo plazo a la que quieres que tú u otros miembros de tu equipo tengan acceso. Capturar contexto específico del dominio —incluidos flujos de trabajo, formatos y otras convenciones— es un gran punto de partida para redactar reglas. Las reglas también pueden generarse a partir de conversaciones existentes usando /Generate Cursor Rules. Si has tenido una conversación larga, con muchos intercambios y prompts, probablemente haya directrices útiles o reglas generales que quieras reutilizar más adelante. Rules

MCP

Model Context Protocol es una capa de extensibilidad con la que puedes darle a Cursor la capacidad de ejecutar acciones y aportar contexto externo. Según tu entorno de desarrollo, quizá quieras usar distintos tipos de servidores, pero dos categorías que hemos visto especialmente útiles son:
  • Documentación interna: p. ej., Notion, Confluence, Google Docs
  • Gestión de proyectos: p. ej., Linear, Jira
Si ya tienes herramientas para acceder a contexto y ejecutar acciones a través de una API, puedes crear un servidor MCP para ellas. Aquí tienes una guía breve sobre cómo crear servidores MCP. MCP

Contexto auto-recopilado

Un patrón potente que muchxs usuarixs están adoptando es dejar que el Agent escriba herramientas de vida corta que luego pueda ejecutar para reunir más contexto. Esto es especialmente efectivo en flujos human-in-the-loop donde revisas el código antes de ejecutarlo. Por ejemplo, agregar declaraciones de depuración a tu código, ejecutarlo y dejar que el modelo inspeccione la salida le da acceso a contexto dinámico que no podría inferir de forma estática. En Python, puedes hacerlo pidiéndole al Agent que:
  1. Agregue declaraciones print(“debugging: …”) en partes relevantes del código
  2. Ejecute el código o las pruebas usando la terminal
El Agent leerá la salida de la terminal y decidirá qué hacer después. La idea central es darle al Agent acceso al comportamiento real en tiempo de ejecución, no solo al código estático. Self-Gathering Context

Conclusiones

  • El contexto es la base de una programación con IA efectiva; se compone de intención (lo que quieres) y estado (lo que ya existe). Proporcionar ambos ayuda a que Cursor haga predicciones precisas.
  • Usa contexto de precisión con símbolos @ (@code, @file, @folder) para guiar a Cursor exactamente, en lugar de depender solo de la recopilación automática de contexto.
  • Captura el conocimiento repetible en reglas para que lo use todo el equipo y amplía las capacidades de Cursor con Model Context Protocol para conectar sistemas externos.
  • Un contexto insuficiente provoca alucinaciones o ineficiencias, mientras que demasiado contexto irrelevante diluye la señal. Encuentra el equilibrio adecuado para obtener resultados óptimos.