Programación y agentes de IA

[Diseño de agentes #2] Ingeniería de contexto: usa la ventana como presupuesto

Una ventana de contexto más grande no siempre es mejor: importa más la relevancia. Resumimos cuatro estrategias para usar una ventana finita como presupuesto: carga selectiva, resumen, aislamiento y externalización, además de criterios para diseñar archivos de carga permanente como CLAUDE.md.

4 min de lectura
Imagen de portada de [Diseño de agentes #2] Ingeniería de contexto: usa la ventana como presupuesto

Al ver la especificación «ventana de contexto de 200K tokens», parece que podríamos introducir casi cualquier código completo. Pero cuando realmente lo hacemos, la calidad de las respuestas cae en picado.

Varios estudios han confirmado que los modelos pasan por alto contenido intermedio en contextos largos. Poder introducir algo y usarlo bien son problemas distintos.

De ahí surge la ingeniería de contexto. En una frase: es una técnica de diseño que trata la ventana de contexto finita como un presupuesto y mantiene en ella solo la información más útil en cada momento.

En este artículo resumimos por qué el contexto es un presupuesto, cuatro estrategias para ahorrarlo y los criterios para diseñar archivos de carga permanente como CLAUDE.md.

Empecemos por el resumen clave.

  1. El contexto no es mejor cuanto más grande; es mejor cuanto más relevante.
  2. Hay cuatro estrategias principales: carga selectiva, resumen (compresión), aislamiento y externalización (memoria).
  3. Los archivos de carga permanente (como CLAUDE.md) deben ser breves y contener solo «lo que siempre es cierto».
  4. Las herramientas y las instrucciones también consumen contexto. Una herramienta registrada pero no utilizada es un coste.

Por qué es un presupuesto: la estructura de costes del contexto

La ventana de contexto implica tres costes simultáneos.

Primero, el coste de rendimiento. Cuanto más contenido irrelevante haya, más se dispersa la atención del modelo. En particular, se conoce el fenómeno «lost in the middle», por el que disminuye la recuperación del contenido intermedio en contextos largos.

Segundo, el coste monetario. Los tokens de entrada se facturan en cada solicitud. Cuanto más larga es la conversación, más veces se cobra el mismo contenido.

Tercero, el coste de oportunidad. El espacio ocupado por contenido irrelevante deja menos sitio para el código y la documentación que realmente necesitamos.

El cambio de perspectiva de la ingeniería de contexto es este: no preguntar «¿cuánto puedo introducir?», sino «¿merece este token estar aquí ahora?».


Estrategias 1 y 2: carga selectiva y resumen

La carga selectiva (retrieval) consiste en traer solo lo necesario cuando hace falta. En lugar de leer 2.000 líneas, leemos solo las funciones relevantes; en lugar de cargar toda la documentación, buscamos y traemos la sección correspondiente.

La carga progresiva de un Skill (normalmente solo una descripción de una línea y el cuerpo únicamente al ejecutarlo) sigue el mismo principio.

El resumen (compaction) comprime el historial acumulado. Convierte decenas de registros de llamadas a herramientas en un párrafo como «modificamos estos archivos y las pruebas pasaron».

Es la compresión que los agentes de programación realizan automáticamente cuando la conversación se alarga.

Recuerda que resumir implica pérdida. Los detalles pueden desaparecer al plegarse, así que es más seguro guardar las decisiones importantes en archivos antes del resumen.

Diagrama del flujo que carga solo la información necesaria en la ventana de contexto y guarda el resto en archivos
Cargamos en la ventana solo lo necesario y guardamos el resto en archivos

Estrategias 3 y 4: aislamiento y externalización

El aislamiento consiste en separar en otra sesión las tareas que desordenan el contexto. Si encargamos una exploración a gran escala a un subagente, el volcado de archivos se consume en su contexto y al principal solo regresan unas pocas líneas con las conclusiones.

Es la forma más segura de proteger el presupuesto del contexto principal.

La externalización (memory) utiliza un almacenamiento fuera del contexto. Cuando termina la sesión, el contexto desaparece, pero lo escrito en archivos permanece.

Un patrón habitual es registrar el estado del trabajo en Markdown para que la siguiente sesión lo retome. También pertenece a esta categoría acumular el conocimiento del proyecto en CLAUDE.md y archivos de memoria.

Estrategia Resumen en una línea Ejemplo representativo
Carga selectiva Traer solo cuando hace falta Lectura parcial, carga progresiva de Skill
Resumen Plegar el historial Compaction automático
Aislamiento Encargarlo a otra sesión Subagente
Externalización Escribirlo en archivos Archivos de memoria, documento de estado

Criterios para diseñar archivos de carga permanente

Los archivos como CLAUDE.md son un coste fijo que se descuenta por adelantado del presupuesto de cada sesión. Por eso los criterios deben ser claros.

Hay que incluir «lo que siempre es cierto y no debe incumplirse»: convenciones de código, prohibiciones, comandos de compilación, etc.

Hay que excluir «lo que solo se necesita a veces». Los procedimientos detallados de tareas concretas deben ir en un Skill, y el historial de trabajos anteriores, en archivos de memoria.

Espacio de trabajo ordenado, con solo un portátil, un cuaderno y cajones etiquetados
En el escritorio solo está lo relacionado con el trabajo actual; con el contexto ocurre lo mismo

La misma lógica se aplica al registro de herramientas. Cuantos más servidores MCP (Model Context Protocol) conectamos, más definiciones de herramientas se acumulan como costes fijos.

Diez servidores que no se usan ya son un factor de degradación del rendimiento. Vale la pena revisarlos periódicamente.


Conclusión

En última instancia, la ingeniería de contexto consiste en gestionar la relevancia. No se trata de llenar una ventana grande, sino de mantener en el escritorio del modelo solo lo relacionado con el trabajo actual.

Cuando el bucle de ejecución tratado en la parte sobre ingeniería de harness se combina con la gestión presupuestaria de este artículo, se completa la visión general del diseño de agentes. En el próximo artículo veremos un caso de una canalización ensamblada en la práctica.

Seguir leyendo