Practical context engineering: compaction, retrieval and why your agent forgets
Paso 3: encontraste el bug. Paso 7: ya no lo recuerda. Paso 12: propone una solución que arregla algo que ya habías arreglado. Si te pasó, tu agente no es "tonto": se quedó sin contexto útil. La ventana no se llenó de conversación, se llenó de basura: resultados de tools, logs, archivos enteros.
Context engineering es decidir qué ve el modelo en cada llamada, en vez de pegar todo y rezar.
La ventana parece enorme hasta que la llenas
Un solo tool call puede meter cientos o miles de tokens: la salida de un grep, un archivo completo, el JSON de una API. Multiplícalo por 30 pasos y tu agente arrastra un historial que ya no cabe (o que cabe pero cuesta) y en el que lo importante está enterrado en el medio.
ADK lo plantea como el problema central: "a diferencia de herramientas que simplemente pegan cadenas de texto hasta que la ventana de contexto se desborda, ADK gestiona tu contexto... tratamos el contexto como código fuente: sesiones, memoria, salidas de tools y artefactos se ensamblan en una vista estructurada donde cada token se gana su lugar". - Source: Agent Development Kit (ADK) - Google
Más contexto no es mejor contexto
La intuición dice "dale todo, para que no se le escape nada". La evidencia dice lo contrario: los modelos usan peor la información que está en el medio de un contexto largo, incluso cuando técnicamente "cabe". Es el efecto que documenta el paper Lost in the Middle. - Source: Lost in the Middle: How Language Models Use Long Contexts - Liu et al.
Consecuencia práctica: cada token que metes de más le quita atención a los que importan. El objetivo no es maximizar contexto, es maximizar señal.
Los 3 movimientos
1. Retrieval (traer solo lo relevante, y en el momento). En vez de precargar 40 archivos, das al agente la capacidad de buscarlos. La diferencia entre "lee toda la documentación" y "busca la sección que necesita".
2. Compaction (resumir por hitos). Cuando el historial crece, se resume lo viejo y se conservan decisiones, hallazgos y acuerdos; se tira el ruido (salidas crudas, intentos fallidos). El vocabulario ya existe: compaction y autocompact están en el diccionario de AI Hero.
3. Progressive disclosure (punteros en vez de objetos). En lugar de pegar el contenido de un archivo, se deja la ruta; en lugar de todo el esquema de la base, se deja el nombre de la tabla y una forma de consultarla. El agente carga por capas, cuando lo necesita.
Y una cuarta que muchos olvidan: estructura. Un contexto con secciones claras (objetivo, restricciones, hallazgos, pendientes) rinde más que el mismo texto en párrafos sueltos.
Cómo lo resuelven los SDKs hoy
- ADK: filtra eventos irrelevantes, resume turnos viejos, carga artefactos de forma perezosa y lleva la cuenta de tokens usados, con controles para personalizarlo. Además expone compresión de contexto y caché de contexto del modelo. - Source: Agent context - Google ADK
- AI SDK: el loop del agente incorpora gestión de contexto y condiciones de parada, y
prepareStepte deja decidir qué contexto entra en cada paso. - Source: Agents: overview - Vercel AI SDK - Claude Code y similares: el archivo de instrucciones (
AGENTS.md/CLAUDE.md) es contexto curado a mano; el resto llega por búsqueda. → AGENTS.md vs CLAUDE.md
5 reglas que aplico
- Un propósito por bloque de contexto. Si no sabes para qué está ahí, sácalo.
- Resultados de tools: resume, no pegues. Guarda el hallazgo, no el volcado.
- Punteros antes que contenidos. Rutas y nombres en vez de archivos enteros.
- Mide tokens por paso. Si un paso mete 5.000 tokens, es un candidato a compaction.
- Prueba quitando contexto. A veces el agente mejora al quitarle lo que sobra. Eso solo lo sabes con evals.
Todo esto es una pieza del harness; el mapa completo está en Harness Engineering: las 9 piezas y en la guía AI Engineering.
¿Tu agente arrastra el historial completo o ya trabajas con punteros y compaction? Cuéntame en los comentarios cómo lo resuelves: es de las partes menos documentadas y más decisivas.