El blog de Deska

Gestión de contexto para sesiones largas de agentes

Descubre cómo optimizar la gestión de contexto para sesiones largas de agentes mediante compactación de tokens y el uso de lienzos infinitos.

· 10 min de lectura

La gestión de contexto para sesiones largas de agentes es actualmente el principal cuello de botella en la ingeniería de software autónoma. A medida que los desarrolladores pasan de simples compleciones de chat a flujos de trabajo agénticos de múltiples pasos, la acumulación del historial de chat, el contenido de archivos y la salida de la terminal supera rápidamente los límites prácticos de cualquier ventana de modelo de lenguaje grande (LLM). Para mantener un flujo de trabajo coherente, los desarrolladores deben ir más allá del truncamiento básico y adoptar estrategias sofisticadas de retención de estado y reducción de ruido.

El desafío de la deriva de tokens en sesiones largas

Cuanto más interactúa un agente con un código base, más información debe rastrear. Cada comando ejecutado en una terminal y cada archivo leído se suma a la memoria activa. Cuando estas sesiones se extienden por horas o días, el agente comienza a sufrir de deriva de tokens. Esto ocurre cuando las decisiones arquitectónicas más relevantes quedan enterradas bajo cientos de líneas de registros de compilación o resultados de diagnóstico recientes, pero menos importantes.

Los LLM actuales han expandido sus ventanas de contexto significativamente, pero el problema persiste. La información en el centro de un bloque de contexto largo suele ser más difícil de recordar para el modelo que la información al principio o al final. Este fenómeno requiere un enfoque proactivo sobre qué datos alimentamos al agente. Si le proporcionas todo, el agente se vuelve lento, costoso y propenso a las alucinaciones.

Estrategias prácticas para la compactación de contexto

La compactación es el proceso de reducir el volumen de datos sin perder el significado esencial. En el ámbito de los agentes de IA, esto se puede lograr a través de varias capas técnicas.

  • Poda selectiva del historial: Eliminar regularmente turnos de conversación redundantes donde el agente y el usuario simplemente estaban solucionando un error de sintaxis menor.
  • Resumen de registros: En lugar de mantener 500 líneas de un registro de compilación fallido, el sistema debería reemplazar ese bloque con un resumen de alto nivel del mensaje de error y el rastreo de la pila.
  • Jerarquía de relevancia: Mover los archivos menos críticos fuera del contexto activo y hacia un sistema de generación aumentada por recuperación (RAG) hasta que sean explícitamente necesarios.

Muchos desarrolladores dependen de la intervención manual para mantener limpio el contexto. Es común encontrarse abriendo una nueva sesión y pegando solo las partes relevantes del código para reiniciar el "cerebro" del agente. Esta es una solución temporal común pero ineficiente ante la falta de herramientas nativas de gestión de contexto.

La arquitectura de los espacios de trabajo con lienzo infinito

Un enfoque alternativo para gestionar sesiones largas implica la organización espacial. En lugar de un hilo de chat lineal, un lienzo infinito permite desacoplar diferentes partes de un proyecto. Al colocar paneles en un espacio de trabajo amplio, puedes organizar el contexto visualmente.

En Deska, por ejemplo, el espacio de trabajo de lienzo infinito te permite colocar múltiples paneles de agentes uno al lado del otro. Puedes tener a Claude Code trabajando en una refactorización del backend en un área mientras Codex CLI maneja tus scripts de despliegue en otra. Dado que son paneles separados, sus ventanas de contexto individuales permanecen enfocadas en tareas específicas. Puedes alejar el zoom para ver todo el sistema o acercarlo para enfocarte en una sola sesión de agente.

Este modelo espacial evita el problema de tener "todo en todas partes". Cuando necesitas cruzar información, puedes usar Ask Deska para cerrar la brecha. El asistente puede observar diferentes paneles y sesiones para proporcionar una visión general sin arrastrar todo el historial de cada panel a un solo prompt del LLM.

Beneficios de lo local primero para la seguridad del contexto

Al tratar con contextos profundos, la privacidad se convierte en una preocupación mayor. Enviar miles de líneas de código propietario a un servicio en la nube durante horas es un riesgo de seguridad para muchas organizaciones. Un enfoque local-first garantiza que los datos primarios permanezcan en tu máquina.

Al mantener los archivos, las terminales y los registros de sesión de forma local, reduces la latencia de la recuperación de contexto. Esto es particularmente útil cuando usas una aplicación mobile complementaria para monitorear el progreso del agente. En lugar de que el dispositivo móvil necesite descargar una base de datos masiva en la nube, se conecta a través de un relevo seguro a tu máquina local, permitiéndote supervisar una sesión de agente de larga duración sin que los datos se almacenen nunca en un servidor intermedio.

Integración de múltiples agentes en paralelo

Una de las formas más efectivas de manejar sesiones largas de agentes es distribuir el trabajo entre agentes especializados. En lugar de pedirle a un solo agente que gestione el frontend, el backend y la documentación, puedes ejecutar diferentes herramientas para cada tarea.

  1. Abre un panel de terminal para un agente de CLI de bajo nivel como OpenCode.
  2. Abre un editor de código basado en Monaco para revisión manual.
  3. Abre un panel de navegador para monitorear la documentación en vivo o los cambios en la interfaz de usuario.

Al ejecutar estos paneles uno al lado del otro, creas un contexto modular. Si el agente del frontend se confunde por una sesión larga, puedes reiniciar ese panel específico sin perder el progreso o el contexto del agente del backend. Esta aislación es una táctica clave para mantener un alto rendimiento durante varios días de desarrollo.

FAQ sobre contexto de agentes

¿Cómo reducir los costos de tokens del agente?

La forma más efectiva de reducir costos es mediante una compactación agresiva del contexto. Al usar herramientas que te permiten podar la salida antigua de la terminal y resumir lecturas de archivos largas, envías menos tokens al proveedor. Usar tus propias claves de API a través de un modelo de pricing que soporte BYOK también puede ayudarte a gestionar los gastos directamente con el proveedor del LLM.

¿Por qué los agentes de IA olvidan instrucciones?

Los agentes suelen olvidar instrucciones porque el prompt inicial del sistema o los requisitos tempranos del usuario son expulsados de la ventana de contexto por datos nuevos. Es por esto que gestionar los hilos de agentes es vital. Debes asegurar que los objetivos de alto nivel permanezcan anclados o sean reinyectados frecuentemente en la sesión activa.

¿Cuál es la mejor forma de gestionar registros largos de terminal?

Los registros largos de terminal nunca deben enviarse en su totalidad a un LLM. Utiliza un espacio de trabajo que soporte la selección parcial o el truncamiento automático de la salida de la terminal. Esto mantiene al agente enfocado en el resultado del comando más reciente en lugar de en el historial de toda la sesión.

Primeros pasos con espacios de trabajo optimizados

Gestionar el contexto no debería ser una tarea manual que te quite tiempo para programar. Al utilizar un entorno especializado diseñado para la colaboración con IA, puedes automatizar gran parte de la reducción de ruido necesaria para tareas complejas.

Si buscas una manera de organizar tus agentes de IA, terminales y código en un único entorno local, puedes descargar Deska para Mac, Windows o Linux. El espacio de trabajo proporciona la infraestructura de lienzo infinito necesaria para mantener tus sesiones organizadas y las ventanas de contexto de tus agentes bajo control.

💡 Ideas+🐛 BugsPropón una feature o reporta un bug