El contexto infinito viene con una factura bastante finita

La respuesta habitual a un agente que pierde información es darle más contexto. Después pierde información dentro de un contexto más caro. La factura, por suerte, conserva una memoria impecable.

Hay una alternativa más interesante: mantener el corpus fuera del prompt y permitir que el sistema lo examine, seleccione y descomponga durante la ejecución. El problema de arquitectura pasa a ser cómo obtener evidencia suficiente con recursos acotados.

Los Recursive Language Models exploran contexto externo mediante programas y llamadas recursivas al modelo. Recursive Agent Harnesses, publicado en junio de 2026, extiende la unidad recursiva a un agente con herramientas y ejecución. Son propuestas de investigación, no garantías sobre tu carga de trabajo.

Acá desarrollo un diseño para evaluar ese enfoque. Los contratos y límites que siguen son una propuesta de arquitectura; no representan un benchmark ejecutado ni un sistema de clientes.

Un caso donde dividir tiene sentido

Imaginá una auditoría de cambios de permisos en un repositorio grande. Hay que relacionar migraciones, rutas HTTP, políticas y pruebas. Buscar authorize puede localizar código relevante, pero la respuesta exige cruzar archivos y versiones.

El coordinador recibe un manifiesto del repositorio en un commit fijo. Primero genera candidatos con búsqueda léxica y análisis de símbolos. Después asigna preguntas acotadas: qué rutas alcanzan una operación, dónde se valida el tenant, qué pruebas ejercitan esa restricción.

Cada hijo obtiene un subconjunto del corpus y acceso de lectura. Devuelve hallazgos con referencias. El coordinador resuelve contradicciones y decide si necesita ampliar la búsqueda. El acceso a un shell o a la red se concede por necesidad concreta, con aislamiento y límites independientes del texto que produzca el modelo.

La dificultad está en preservar las relaciones. Partir un repositorio en diez carpetas puede separar precisamente la política de su punto de aplicación. Antes de paralelizar, necesitás conocer qué dependencias cruzan cada partición.

El contrato de retorno importa más que el nombre del agente

Un hijo que responde “todo parece correcto” no deja mucho para auditar. Propongo devolver un paquete estructurado de evidencia. Este esquema TypeScript es ilustrativo:

type EvidencePacket = {
  taskId: string;
  status: "complete" | "partial" | "blocked";
  corpusRevision: string;
  claims: Array<{
    statement: string;
    evidence: Array<{
      documentId: string;
      contentHash: string;
      startLine: number;
      endLine: number;
    }>;
    counterevidence: string[];
  }>;
  unresolved: string[];
  usage: {
    inputTokens: number;
    outputTokens: number;
    toolCalls: number;
  };
};

El consumidor verifica que cada documento exista en la revisión indicada, que los rangos sean válidos y que el hash corresponda al contenido. Eso demuestra integridad de la referencia. Determinar si el fragmento respalda la conclusión requiere otra comprobación, determinista cuando sea posible y semántica cuando haga falta.

Un hash no certifica una interpretación. Tres agentes que repiten el mismo error tampoco.

Cuando una respuesta parcial se convierte en memoria, conserva partial y las preguntas pendientes. Compactar el texto debe mantener las condiciones que limitan su validez. Si el resumen elimina una excepción, el sistema acaba de fabricar certeza.

El árbol de llamadas necesita contabilidad global

Si cada nodo puede crear b hijos hasta profundidad d, el máximo de nodos de un árbol completo es:

N = 1 + b + b^2 + ... + b^d

Con b = 4 y d = 4, son 341 nodos contando la raíz. Es aritmética ilustrativa, no una medición de rendimiento. Un límite de cuatro hijos por agente permite bastante entusiasmo acumulado.

Usaría un ledger central que reserve capacidad antes de aceptar trabajo:

Recurso Control propuesto Falla que evita
Tokens Reserva conservadora de entrada y salida máxima Lanzar llamadas que ya exceden el saldo
Herramientas Cupo por tarea y por proveedor Amplificación de consultas
Concurrencia Semáforo global Saturar procesos o APIs
Profundidad Límite heredado y decreciente Delegación circular
Tiempo Deadline común Hijos que sobreviven a la tarea
Salida Tamaño máximo del paquete Volver a llenar el contexto del padre

La reserva tiene que ser atómica: dos hijos no pueden gastar el mismo saldo. Los nietos consumen recursos transferidos desde su padre. No reciben una billetera nueva por haber nacido.

Tokens de entrada y salida pueden tener precios distintos. Para un límite monetario, la reserva usa las tarifas del modelo elegido, herramientas facturables y un margen explícito. Al completar se concilia el consumo real. Cancelar una llamada no necesariamente cancela el costo ya incurrido.

Recursión, lotes y recuperación no resuelven el mismo problema

Estrategia Cuándo la consideraría Costo que vigilaría
Una llamada con contexto seleccionado La evidencia cabe y la pregunta es local Información irrelevante incluida
Recuperación y síntesis La evidencia se localiza mediante consultas Documentos relevantes omitidos
Lotes con reducción Cada partición se puede procesar de forma independiente Relaciones perdidas entre lotes
Delegación recursiva Las subpreguntas aparecen durante el análisis Coordinación, duplicación y profundidad

El trabajo Recursive Language Models Meet Uncertainty reporta configuraciones donde recurrir no mejora el resultado, y estudia la selección de programas como factor relevante. La etiqueta “recursivo” no es una explicación causal de calidad.

Mi criterio es habilitar una bifurcación cuando aparece una pregunta específica cuya respuesta requiere evidencia adicional. El coordinador registra qué espera aprender y cuándo dejará de buscar. “Investigar más” es una excelente manera de consumir presupuesto sin especificar una condición de término.

La memoria también puede transportar instrucciones hostiles

Una descripción de herramienta, un comentario del repositorio o una nota de un hijo puede incluir instrucciones ajenas a la tarea. El paquete de evidencia mantiene su procedencia y su nivel de confianza al atravesar delegaciones y resúmenes.

El runtime controla rutas permitidas, red, credenciales y herramientas. Los hijos de lectura no pueden convertirse en ejecutores porque un documento lo solicite. La memoria persistente guarda referencias y observaciones, con separación por tenant y revisión; evita convertir contenido externo en política operativa.

También hay que invalidarla. Una conclusión sobre el commit A no pasa a describir el commit B por llevar una fecha reciente en la caché. Podés reutilizarla cuando las dependencias relevantes siguen iguales y documentás cómo lo comprobaste.

La comparación que haría antes de adoptarlo

Prepararía tareas que exijan evidencia local, cruces entre archivos y descubrimiento progresivo. Separaría los casos de desarrollo de los reservados. Compararía las cuatro estrategias con el mismo corpus, modelo y presupuesto total, incluyendo las llamadas de los hijos.

Mediría corrección final, cobertura de evidencia, referencias inválidas, contradicciones sin resolver, costo total y latencia de extremo a extremo. Repetiría las ejecuciones y publicaría fallos por tipo de tarea. También probaría el sistema sin recursión para aislar qué aporta realmente.

La decisión de adopción necesita un umbral definido antes de mirar los resultados: qué mejora justificaría el costo y qué fallas son inaceptables. Un árbol de ejecución enorme puede ser un hallazgo de profiling bastante preocupante.

La recursión merece entrar en la arquitectura cuando mejora una tarea medible y conserva su evidencia bajo un presupuesto real. Hasta entonces, es una hipótesis con permisos para gastar.

Para conectar este diseño con el resto del sistema: arquitectura agéntica y evaluación de recuperación en RAG.