Ir al contenido

Ingeniería de Contexto en VS Code


En VS Code, la gestión del contexto ha evolucionado de ser “implícita” (adivinar qué estás haciendo) a ser “explícita” y controlable. Ya no basta con tener archivos abiertos; ahora debes aprender a dirigir la atención de la IA.

Aprenderemos a usar las Variables de chat y los Agentes para romper la limitación de la ventana de contexto.

1. El contexto implícito: “La regla de las pestañas”

Sección titulada «1. El contexto implícito: “La regla de las pestañas”»

Por defecto, Copilot prioriza lo que tienes visible.

  • Archivo activo: Tiene la máxima prioridad. El cursor es el punto de atención.
  • Pestañas abiertas: Copilot “lee” los archivos que tienes en pestañas vecinas para entender imports o referencias cruzadas.

Aquí es donde entra la verdadera ingeniería de contexto. En lugar de esperar a que Copilot adivine, puedes “inyectar” contexto específico usando el símbolo # en el chat (Cmd+I o Panel lateral).

  1. #file: La herramienta quirúrgica. Úsalo para referenciar un archivo específico sin tener que abrirlo o copiar su contenido.

    • Prompt: “Explícame cómo se relaciona este código con #file:schema.prisma
    • Resultado: Copilot lee tu archivo actual y el esquema de base de datos, ignorando el resto del ruido.
  2. #selection: Focalización extrema. Si tienes un archivo de 2000 líneas, no le pidas a la IA que lo lea todo. Selecciona las 50 líneas relevantes.

    • Prompt: “¿Qué hace esta función? #selection
  3. #edit: Lo que ves es lo que obtienes. Envía al chat el contenido visible en tu editor activo. Útil cuando el contexto implícito falla.

A veces, #file no es suficiente. Necesitas que la IA entienda todo el proyecto: arquitectura, patrones de diseño o dónde están ciertas funcionalidades clave. Para esto, Copilot introdujo el agente @workspace.

Úsalo para preguntas de alto nivel que requieren indexación semántica (RAG):

  • “@workspace ¿Dónde se define la autenticación de usuarios?”
  • “@workspace Crea una nueva ruta de API siguiendo el patrón de las existentes.”
  • “@workspace ¿Cómo manejamos los errores en el frontend?”

VS Code indexa tus archivos localmente. Cuando invocas @workspace, no envía todo tu código a la nube (sería demasiado grande). En su lugar:

  1. Busca fragmentos relevantes en tu índice local.
  2. Extrae solo las partes necesarias.
  3. Envía ese “resumen inteligente” al modelo LLM.

Tan importante como decirle qué leer, es decirle qué ignorar. Archivos autogenerados (package-lock.json), logs o carpetas de build pueden alucinar a la IA.

VS Code respeta tu .gitignore, pero a veces necesitas ignorar cosas para la IA que sí necesitas en git (como archivos de documentación obsoleta o legacy code).

Para configurar exclusiones específicas para Copilot, usa settings.json en VS Code:

.vscode/settings.json
{
"github.copilot.chat.search.exclusion": {
"**/*.test.ts": true, // "No uses tests como contexto"
"**/dist/**": true, // "No uses archivos de build"
"legacy/**": true // "No aprendas de este código viejo"
}
}

Para dominar el contexto, sigue esta jerarquía de decisión:

  1. ¿Es algo sobre el código que veo? -> Usa contexto implícito (selecciona código).
  2. ¿Necesito otro archivo específico? -> Usa #file.
  3. ¿No sé dónde está la respuesta? -> Usa @workspace.