Automatizacion 6 min lectura

Subagentes: cómo escalar agentes de código sin perder contexto

Los subagentes permiten delegar tareas específicas a copias frescas del agente principal para evitar agotar su ventana de contexto. Son útiles para explorar repositorios, ejecutar pruebas o revisar código en paralelo.

Por Redaccion TD
Subagentes: cómo escalar agentes de código sin perder contexto

Introducción

Los grandes modelos de lenguaje (LLMs) tienen una limitación práctica: su memoria de trabajo está acotada por el tamaño de contexto, medido en tokens. Aunque las capacidades de los modelos han mejorado rápidamente, los límites de contexto no han crecido en la misma medida en los últimos dos años. En muchos casos los modelos alcanzan un techo cercano a 1,000,000 de tokens, y en benchmarks se observa que la calidad suele ser mejor cuando se mantienen por debajo de 200,000 tokens. Para equipos de desarrollo y líderes de tecnología en América Latina, maximizar la utilidad de esos tokens es clave para obtener resultados consistentes.

Los subagentes (subagents) son un patrón de ingeniería agentica sencillo y eficaz para manejar tareas más grandes sin consumir en exceso el contexto del agente principal. En esencia, cuando un agente de código crea un subagente, está lanzando una copia fresca de sí mismo con una nueva ventana de contexto y un prompt inicial específico para lograr un objetivo delimitado.

¿Cómo funcionan los subagentes? Ejemplo práctico

Un ejemplo ilustrativo proviene del flujo de trabajo de Claude Code, que utiliza subagentes de forma central. Cuando se inicia una tarea sobre un repositorio existente, Claude Code primero necesita explorar la estructura del proyecto para localizar plantillas, código Python, JavaScript o estilos relevantes. Para eso construye un prompt y despacha un subagente encargado únicamente de esa exploración.

Un caso real de la sesión de desarrollo fue: “Make the chapter diffs also show which characters have changed in this diff view with a darker color of red or green for the individually changed segments of text within the line”. El agente principal lanzó un subagente “Explore” con un prompt como este (resumen):

Find the code that implements the diff view for “chapters” in this Django blog. I need to find:

  • Templates that render diffs (look for diff-related HTML/CSS with red/green backgrounds)
  • Python code that generates diffs (look for difflib usage or similar)
  • Any JavaScript related to diff rendering
  • CSS styles for the diff view (red/green line backgrounds)

El subagente devolvió un resumen con los hallazgos necesarios: por ejemplo, identificó una implementación de la vista de diffs en un archivo de Python (/home/user/simonwillisonblog/guides/views.py, líneas 139-202) y señaló que se emplea difflib.unified_diff() para generar las diferencias. Con esa información, el agente principal pudo seguir con modificaciones concretas sin haber gastado su valioso contexto en la búsqueda.

Ventajas principales

  • Conservación del contexto: cada subagente inicia con una ventana de contexto limpia, evitando que el agente raíz pierda tokens en tareas exploratorias o de larga duración.
  • Paralelismo: el agente principal puede lanzar múltiples subagentes simultáneamente para tareas no dependientes entre sí, acelerando procesos como actualizaciones masivas en varios archivos.
  • Flexibilidad de costo y rendimiento: los subagentes pueden ejecutarse con modelos más económicos o rápidos (por ejemplo, variantes ligeras) para tareas que no requieren la máxima capacidad del modelo principal.
  • Especialización: los subagentes pueden configurarse para desempeñar roles concretos —revisor de código, ejecutor de pruebas o depurador— con prompts y herramientas específicas.

Patrones de uso recomendados

  1. Exploración inicial: lanzar un subagente para mapear un repositorio, identificar archivos relevantes y resumir la estructura. Esto es especialmente útil en proyectos grandes o cuando se integran equipos distribuidos en América Latina que necesitan un punto de partida común.

  2. Paralelizar cambios independientes: para tareas que afectan varios archivos sin interdependencias, use subagentes concurrentes para aplicar y validar cambios en cada archivo, reduciendo el tiempo total de entrega.

  3. Subagentes especialistas: configure subagentes con prompts y herramientas específicas para funciones como revisar calidad de código, ejecutar suites de pruebas extensas o diagnosticar fallas. Ejemplos de roles:

  • Code reviewer: detecta errores, brechas de diseño o problemas de estilo.
  • Test runner: ejecuta pruebas y reporta solo fallos relevantes, evitando inundar al agente principal con salida de logs.
  • Debugger: reproduce errores y ejecuta fragmentos de código para identificar pasos para reproducir y causas raíz.

Precauciones y buenas prácticas

  • No fragmenten en exceso: aunque es tentador dividir una tarea en decenas de subagentes especializados, el principal valor de los subagentes es preservar el contexto raíz y manejar operaciones costosas en tokens. Si el agente raíz tiene tokens suficientes, puede ser más simple que él mismo realice revisiones o debugging.

  • Diseñar prompts de forma cuidadosa: los subagentes funcionan como cualquier otra llamada a herramienta; la calidad del resultado depende del prompt que se les entregue. Aprovechen plantillas de prompts probadas para tareas comunes en su organización.

  • Controlar costos y latencia: ejecutar muchos subagentes paralelos puede aumentar costos y requerir coordinación. Seleccionen modelos apropiados según la prioridad y la complejidad de cada tarea.

  • Seguridad y acceso: al despachar subagentes que exploran repositorios o ejecutan código, aseguren que los permisos y accesos estén controlados, especialmente en entornos corporativos y en legislaciones latinoamericanas con requisitos de privacidad y protección de datos.

Aplicación práctica en equipos latinoamericanos

Equipos en América Latina enfrentan desafíos típicos como recursos limitados, necesidad de iteración rápida y colaboración distribuida. Los subagentes pueden ayudar a:

  • Reducir tiempos de onboarding técnico al generar resúmenes estructurados de repositorios.
  • Acelerar revisiones de cambios en código legado donde la exploración manual es costosa.
  • Ejecutar pruebas automáticas en ramas independientes sin bloquear al agente principal ni consumir su contexto.

Además, al combinar subagentes con pipelines de CI/CD locales o en la nube, es posible integrar verificaciones automáticas más inteligentes que agreguen valor a procesos existentes sin requerir reconstrucciones complejas.

Herramientas y soporte

Varios agentes y plataformas ya ofrecen soporte para subagentes o patrones equivalentes. Entre las implementaciones mencionadas en el ámbito público se encuentran:

  • OpenAI Codex subagents
  • Claude subagents
  • Gemini CLI subagents
  • Mistral Vibe subagents
  • OpenCode agents
  • Subagents en Visual Studio Code (Cursor Subagents)

Cada plataforma tiene su propia documentación y modo de configurar subagentes; revisen la documentación oficial antes de implementar en producción.

Conclusión

Los subagentes son una herramienta práctica para escalar workflows de agentes de código sin sacrificar la ventana de contexto del agente principal. Permiten delegar exploración, validación y tareas especializadas a copias determinadas del agente, acelerar procesos mediante paralelismo y aplicar modelos más económicos para actividades auxiliares. Para líderes y equipos técnicos en América Latina, incorporar subagentes en sus prácticas puede mejorar la velocidad de desarrollo y la calidad del trabajo, siempre que se gestionen adecuadamente permisos, costos y la complejidad de la orquestación.

Adoptar este patrón no significa fragmentar indiscriminadamente: se trata de diseñar una arquitectura donde el agente raíz mantenga la visión general y los subagentes atiendan tareas puntuales y token-intensivas. Esa separación de responsabilidades es especialmente valiosa en proyectos grandes y en entornos con restricciones de recursos.

Fuente original: Simon Willison