Primero, ¿qué es una ventana de contexto? ¿Y cómo se relaciona con programar efectivamente con Cursor? Para ampliar un poco la perspectiva, un modelo de lenguaje grande (LLM) es un modelo de inteligencia artificial entrenado para predecir y generar texto aprendiendo patrones de conjuntos de datos masivos. Impulsa herramientas como Cursor al entender tu entrada y sugerir código o texto basado en lo que ha visto antes. Los tokens son las entradas y salidas de estos modelos. Son fragmentos de texto, a menudo un fragmento de una palabra, que un LLM procesa uno por uno. Los modelos no leen oraciones completas de una vez; predicen el siguiente token basándose en los que vinieron antes. Para ver cómo se tokeniza algún 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 proporciona al modelo (en forma de “tokens de entrada”) que el modelo luego utiliza para predecir la información subsiguiente (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 prompt del sistema generalmente sirve como instrucciones de alto nivel sobre cómo el usuario quiere que se comporte el modelo. La mayoría del “prompting” realizado en Cursor es contexto de intención. “Cambia ese botón de azul a verde” es un ejemplo de intención declarada; es prescriptivo.
  2. Contexto de estado describe el estado del mundo actual. Proporcionar 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.
Juntos, estos dos tipos de contexto trabajan en armonía describiendo el estado actual y el estado futuro deseado, permitiendo que Cursor haga sugerencias de código útiles.

Proporcionando contexto en Cursor

Cuanto más contexto relevante puedas proporcionar a un modelo, más útil será. Si se proporciona contexto insuficiente en Cursor, el modelo intentará resolverlo sin la información relevante. Esto típicamente resulta en:
  1. Alucinaciones donde el modelo trata de hacer coincidencias de patrones (cuando no hay patrón) causando resultados inesperados. Esto puede ocurrir frecuentemente con modelos como claude-3.5-sonnet cuando no se le proporciona suficiente contexto.
  2. El Agent intentando recopilar contexto por sí mismo buscando en la base de código, leyendo archivos y llamando herramientas. Un modelo de pensamiento fuerte (como claude-3.7-sonnet) puede llegar bastante lejos con esta estrategia, y proporcionar el contexto inicial correcto 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 automáticamente extrae 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 extraer, por lo que especificar manualmente el contexto que sabes que es relevante para la tarea es una forma útil de dirigir los modelos en la dirección correcta.

Símbolo @

La forma más fácil de proporcionar contexto explícito es con el símbolo @. Estos son excelentes cuando sabes específicamente 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 la salida que estás generandoRequiere mucho conocimiento de la base de código
@filecache.tsSabes qué archivo debe ser leído o editado, pero no exactamente dónde en el archivoPodría incluir mucho contexto irrelevante para la tarea en cuestión dependiendo del tamaño del archivo
@folderutils/Todo o la mayoría de archivos en una carpeta es relevantePodría incluir mucho contexto irrelevante para la tarea en cuestión
Context Menu

Reglas

Debes pensar en las reglas como memoria a largo plazo a la que tú u otros miembros de tu equipo quieren tener acceso. Capturar contexto específico del dominio, incluyendo flujos de trabajo, formato y otras convenciones, es un excelente punto de partida para escribir reglas. Las reglas también se pueden generar a partir de conversaciones existentes usando /Generate Cursor Rules. Si has tenido una conversación larga de ida y vuelta con muchas indicaciones, probablemente hay algunas directivas útiles o reglas generales que podrías querer reutilizar más tarde. Rules

MCP

Model Context Protocol es una capa de extensibilidad donde puedes darle a Cursor capacidades para realizar acciones y obtener contexto externo. Dependiendo de tu configuración de desarrollo, es posible que quieras aprovechar diferentes tipos de servidores, pero dos categorías que hemos visto que son particularmente útiles son:
  • Documentación interna: por ejemplo, Notion, Confluence, Google Docs
  • Gestión de proyectos: por ejemplo, Linear, Jira
Si tienes herramientas existentes para acceder al contexto y realizar acciones a través de una API, puedes construir un servidor MCP para ello. Aquí tienes una guía breve sobre cómo construir servidores MCP. MCP

Recopilación automática de contexto

Un patrón poderoso que muchos usuarios están adoptando es permitir que el Agent escriba herramientas de corta duración que luego puede ejecutar para recopilar más contexto. Esto es especialmente efectivo en flujos de trabajo con intervención humana donde revisas el código antes de que se ejecute. Por ejemplo, agregar declaraciones de depuración a tu código, ejecutarlo y permitir que el modelo inspeccione la salida le da acceso a contexto dinámico que no podría inferir estáticamente. En Python, puedes hacer esto solicitando 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 a continuación. 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 clave

  • El contexto es la base de la codificación efectiva con IA, consistiendo en intención (lo que quieres) y estado (lo que existe). Proporcionar ambos ayuda a Cursor a hacer predicciones precisas.
  • Usa contexto quirúrgico con símbolos @ (@code, @file, @folder) para guiar a Cursor con precisión, en lugar de depender únicamente de la recopilación automática de contexto.
  • Captura conocimiento reutilizable en reglas para uso de todo el equipo, y extiende las capacidades de Cursor con Model Context Protocol para conectar sistemas externos.
  • El contexto insuficiente lleva a alucinaciones o ineficiencia, mientras que demasiado contexto irrelevante diluye la señal. Encuentra el equilibrio adecuado para obtener resultados óptimos.