Skip to main content
Skip to content

Administración del contexto para GitHub Copilot

Comprenda cómo Copilot administra el contexto de conversación, lo que sucede durante las sesiones largas y cómo mantener el control de la ventana de contexto.

Acerca de la ventana de contexto

Cuando se usa GitHub Copilot, todos los mensajes que se envían, cada respuesta de Copilot, cada llamada de herramienta y su resultado, y las instrucciones del sistema que definen Copilotel comportamiento se mantienen en una ventana de contexto. La ventana de contexto es la cantidad total de información que el modelo de IA puede tener en cuenta al generar una respuesta.

La ventana de contexto tiene un tamaño fijo, medido en tokens, que varía según el modelo. Los tokens normalmente constan de palabras cortas y fragmentos de palabras multisílaba que se usan habitualmente. A medida que avanza la conversación, la ventana de contexto se rellena con:

  • Instrucciones del sistema y definiciones de herramientas: las instrucciones integradas que indican Copilot cómo comportarse, además de los esquemas de todas las herramientas disponibles. Siempre están presentes y ocupan una parte fija de la ventana de contexto.
  • Tus mensajes: Cada indicación que envíes.
  • CopilotRespuestas: Todo lo que Copilot te responde.
  • Llamadas a herramientas y resultados: cuando Copilot lee archivos, ejecuta comandos o busca en el código base, tanto la solicitud como la salida se agregan al contexto. Los resultados de la herramienta pueden ser especialmente grandes, por ejemplo, si una herramienta lee un archivo largo o ejecuta un comando que genera una salida extensa.

Todo esto se acumula en la ventana de contexto. En una sesión larga o compleja, la ventana de contexto puede rellenarse.

¿Por qué es importante la ventana de contexto?

La ventana de contexto es lo que permite Copilot tener en cuenta las partes anteriores de una conversación cuando Copilot decide cómo responder a un mensaje. Todo lo que hay dentro de la ventana de contexto está disponible para que Copilot pueda consultarlo cuando trabaja en una tarea.

Esto significa que, en una sesión muy larga, Copilot es posible que no pueda mantener todo el historial de conversaciones a la vez. Copilot por lo tanto, tiene características de administración de contexto que le permiten continuar con una conversación durante el tiempo que necesite.

Comprobación del uso del contexto

Los controles para el uso del contexto varían según el cliente y el entorno. Por ejemplo:

  • En Copilot CLI y GitHub Copilot app, usa /context para comprobar el uso de la sesión actual.
  • En los IDE admitidos, busque un indicador de ventana de contexto en o debajo del área de entrada del Copilot chat. Por ejemplo, en Visual Studio Code, el indicador es un círculo pequeño. En otros IDE, el uso se muestra en el cuadro de diálogo de información de sesión proporcionado por Copilot Extension.

Es posible que desee comprobar el uso del contexto cuando:

  • Está en una sesión prolongada y desea saber cuánto espacio disponible queda.
  • Copilot parece olvidar partes anteriores de la conversación.
  • Quiere comprender si se ha producido la compactación o es probable que se produzca pronto. Consulte Compactación.

Administración de la ventana de contexto

Puede administrar la ventana de contexto supervisando el uso, compactando los mensajes antiguos y controlando las salidas de herramientas grandes.

Nota:

Los controles disponibles difieren según el cliente y el entorno.

Si no puede administrar la ventana de contexto de forma eficaz a través de los comandos y la configuración disponibles, es posible que tenga que considerar estrategias alternativas, como dividir la conversación en sesiones más pequeñas o reducir el tamaño de las salidas de la herramienta pidiéndole a Copilot que los trunque o resuma. Además, Copilot puede delegar el trabajo en subagentes, que tienen ventanas de contexto independientes del agente principal. Esto puede ayudar a mantener el contexto del agente principal centrado.

Uso de Context mediante el comando /context

En algunas superficies puede usar el /context comando / para visualizar el uso de la ventana de contexto actual. La primera línea de la salida muestra el modelo activo y el número de tokens que se usan actualmente fuera de la capacidad total de la ventana de contexto del modelo. El resto de la salida muestra el uso del token y el porcentaje de ventana de contexto para:

  • Símbolo del sistema: el símbolo del sistema base.
  • Instrucciones personalizadas: las instrucciones personalizadas cargadas (solo se muestran cuando están presentes).
  • Herramientas del sistema: definiciones de herramientas integradas.
  • Herramientas de MCP: definiciones de herramientas aportadas por servidores MCP.
  • Mensajes: el historial de conversaciones.
  • Espacio libre: el contexto sin usar sigue estando disponible.
  • Búfer: capacidad reservada para la respuesta del modelo y un margen adicional.

Administración de resultados de herramientas de gran tamaño para Copilot CLI

Para evitar que una única respuesta de herramienta consuma demasiada parte de la ventana de contexto, la salida de la herramienta mayor que 20 KiB se guarda en un archivo temporal de forma predeterminada. El modelo recibe la ruta de acceso del archivo y una vista previa en lugar de la salida completa. Esto se aplica a todas las herramientas, incluidas las que proporcionan los servidores MCP.

Para cambiar el límite, establezca COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES en un número positivo de bytes UTF-8 antes de iniciar la CLI. Aumentar el límite deja menos contexto disponible para la conversación y las llamadas a herramientas posteriores.

Compactación

La compactación es el proceso que permite Copilot admitir sesiones de ejecución prolongada sin alcanzar los límites de la ventana de contexto.

La disponibilidad, el comportamiento y los controles para la compactación varían según el cliente y la superficie. Por ejemplo:

  • En Copilot CLI y GitHub Copilot app, la compactación puede producirse automáticamente o puede desencadenarla con /compact.
  • En Visual Studio Code y JetBrains IDEs, puede compactar manualmente una sesión mediante Copilot Extension.

Cuando se produce la compactación

Los umbrales exactos y el comportamiento de la compactación varían según el cliente y su configuración.

Para Copilot CLI, cuando la conversación alcanza aproximadamente el 80 % de la capacidad de la ventana de contexto, Copilot CLI comienza automáticamente a compactar el contexto en segundo plano. Esto deja un búfer de aproximadamente 20% para que las llamadas a herramientas puedan seguir ejecutándose mientras la compactación está en curso. Si el contexto se rellena a aproximadamente 95% antes de que finalice la compactación, Copilot CLI se pausa brevemente para esperar a que se complete la compactación antes de continuar.

En Copilot CLI y GitHub Copilot app, puede desencadenar la compactación manualmente en cualquier momento escribiendo el comando /compact. Esto es útil si está a punto de iniciar una nueva fase de trabajo y desea liberar espacio de contexto de forma proactiva. Presione Esc para cancelar una compactación manual si cambia de opinión.

Dónde se produce la compactación

La compactación está disponible en la mayoría de los clientes compatibles, incluidos Copilot CLI, GitHub Copilot app, Copilot cloud agent, Visual Studio Code, Visual Studio, JetBrains IDEs y Eclipse, pero no en el IDE de Xcode.

Qué hace la compactación

Cuando se ejecuta la compactación, Copilot:

  1. Toma una instantánea del historial de conversaciones actual.
  2. Envía la conversación completa al modelo de IA con un aviso especial que le pide que genere un resumen estructurado. El resumen captura los objetivos de la conversación, lo que se hizo, los detalles técnicos clave, los archivos importantes y los pasos siguientes planeados.
  3. Reemplaza el historial de conversaciones antiguo por el resumen, junto con las instrucciones de usuario originales y el estado actual de los planes o listas de to-do.
  4. Mantiene los mensajes que se agregaron mientras se estaba ejecutando la compactación en segundo plano.

El resultado es que el historial de conversaciones se comprime en un resumen mucho más pequeño, liberando la mayoría de la ventana de contexto para el nuevo trabajo. Copilot usa este resumen para mantener la continuidad, sabe lo que se ha analizado, lo que se ha decidido y qué hacer a continuación, aunque se han reemplazado los mensajes originales.

¿Qué es lo que la compactación no conserva?

La compactación es un proceso de resumen, por lo que algunos detalles se pierden inevitablemente. El resumen captura los puntos clave, pero detalles detallados, como la redacción exacta de cada mensaje, la salida completa de cada comando o las decisiones menores tomadas al principio de una conversación larga, no se pueden incluir. Si necesita Copilot recuperar un detalle muy específico de mucho más temprano en la sesión, es posible que no tenga esa información tras la compactación.

No se puede revertir una compactación completa.

¿Qué ocurriría sin compactación?

Sin compactación, una vez rellenada la ventana de contexto, Copilot tendría que recurrir a simplemente quitar mensajes antiguos del historial de conversaciones, quitándolos sin ningún resumen o registro. Esto significaría perder el contexto abruptamente, sin ninguna manera de Copilot saber lo que estaba en los mensajes eliminados. Compaction evita esto reemplazando el historial por un resumen inteligente en lugar de descartarlo.

Checkpoints

Un punto de control puede ser un resumen guardado generado por compactación, un punto de restauración para ediciones de archivos o un punto desde el que puede bifurcar una conversación. Estas son funcionalidades distintas y su disponibilidad y acciones varían según el cliente y la superficie.

En el resto de este artículo, un checkpoint hace referencia a un resumen de compactación guardado, como los archivos numerados y titulados creados en el Copilot CLI.

Cuando los puntos de control son útiles

  • Revisión de lo que ha ocurrido: Después de una sesión larga con varias compactaciones de datos, las etapas anteriores de la conversación ya no están presentes en el contexto activo. Los puntos de control te permiten revisar lo que Copilot hizo en cada compactación.
  • Comprobación de la continuidad: si desea comprobar que Copilotel resumen ha capturado con precisión el trabajo anterior antes de continuar, puede revisar el punto de control más reciente.
  • Confusiones en la depuración: si Copilot parece haber olvidado una decisión o va en una dirección que contradice el trabajo anterior, la comprobación de los puntos de control puede revelar lo que se conserva durante la compresión y lo que podría haberse resumido de manera diferente a lo que esperabas.

Nota:

En la mayoría de los clientes, incluido el Copilot CLI, los resúmenes de punto de control se crean automáticamente. No es necesario administrarlos, ya que están allí si los necesita. Para la mayoría de las sesiones, no tendrá que examinar los puntos de control en absoluto.

Visualización de puntos de control para Copilot CLI

Para ver todos los puntos de control de la sesión actual, escriba:

Copilot prompt
/session checkpoints

Esto enumera cada punto de control con su número y título:

Checkpoint History (3 total):
  3. Refactoring authentication module
  2. Implementing user dashboard
  1. Initial planning and setup

Use el número de punto de control para ver el contenido completo de cualquier punto de control. Por ejemplo, para ver el punto de control 2, escriba:

Copilot prompt
/session checkpoints 2

Uso de sesiones prolongadas

La compactación automática le permite seguir trabajando en una sesión de larga duración sin preocuparse por alcanzar los límites de la ventana de contexto. Hay ocasiones en las que esto es muy útil y otras veces cuando es posible que prefiera iniciar una sesión nueva.

Cuando las sesiones largas son útiles

Las sesiones de ejecución prolongada funcionan bien cuando:

  • Está trabajando en una tarea de varias fases, como desarrollar una característica que requiera una estructura inicial, implementación, pruebas y luego crear una solicitud de incorporación de cambios.
  • Está iterando sobre un problema y quiere que Copilot conserve el contexto de lo que se ha intentado y lo que no ha funcionado.
  • Estás realizando un trabajo exploratorio en una base de código y construyendo una comprensión compartida con Copilot a lo largo del tiempo.

Cuándo iniciar una sesión nueva

Iniciar una nueva sesión es mejor cuando:

  • Va a cambiar a una tarea no relacionada. Copilot no necesita el contexto del trabajo anterior y una ventana de contexto limpia significa más espacio para la nueva tarea.
  • La conversación ha pasado por muchas compresiones, y sientes que se está perdiendo contexto importante en el proceso de resumen.
  • Quiere un nuevo comienzo, por ejemplo, si el trabajo se ha desviado en una dirección incorrecta y prefiere empezar de nuevo en lugar de intentar conciliar las decisiones anteriores con un nuevo enfoque.

En algunos clientes y superficies, puede reanudar una sesión anterior para continuar con su contexto de conversación existente en lugar de volver a empezar. Los métodos de reanudación y la disponibilidad del punto de control varían según el cliente y la interfaz.