Manejar grandes problemas a un agente recién abierto
"El aislamiento de procesos proporciona aislamiento de contexto de forma gratuita". El agente secundario hace el trabajo sucio y el agente principal solo recopila el resumen limpio.
El dilema del agente padre
Imagínese que le pide a Claude Code que "descubra cómo este repositorio Rust de 100.000 líneas maneja la concurrencia". Enfoque intuitivo: realiza ls, cat, grep y busca en el contexto principal.
Problema: esta ronda de exploración acumulará 30 resultados de herramientas en mensajes[], cada uno con varios miles de tokens. Para cuando realmente comienza a escribir la respuesta, el contexto ya se ha llenado con el proceso de exploración: el límite superior se activará después de unos pocos pasos más y la respuesta seguirá siendo confusa.
Solución para s04: lanzar la tarea de exploración a un nuevo agente. El nuevo agente comienza desde messages=[], explora el suyo propio y finalmente solo devuelve el resumen al agente principal. El contexto principal solo tiene una oración más: "La herramienta de tarea se ajustó una vez y el resultado fue XXX", lo cual es refrescante.
def run_subagent(mensaje: str) -> cadena: sub_messages = [{"rol":"usuario", "content": aviso}] # Nuevo contexto para _ en rango(30): # Límite superior de seguridad para evitar la pérdida de control respuesta = cliente.messages.create(..., mensajes=sub_mensajes, herramientas=CHILD_TOOLS, ...) ... # Solo se devuelve el último texto, se descarta todo el razonamiento intermedio return "".join(b.text for b in respuesta.content if hasattr(b, "text"))
Comparación del contexto de padre e hijo
Este widget simula una tarea real: "Enumerar todos los lugares en este almacén que llaman a API obsoletas". Puede ejecutarlo con dos estrategias: (A) el agente principal lo hace solo; (B) genere un subagente. Compare los tamaños de los dos últimos contextos izquierdo y derecho.
CHILD_TOOLS: ¿Qué herramientas puede obtener el subagente?
Hay un detalle en la implementación de s04 que es fácil pasar por alto: el subagente no puede obtener la herramienta de tareas.
# El subagente solo puede usar herramientas básicas y no puede generar nietos CHILD_TOOLS = [bash, leer_archivo, escribir_archivo, editar_archivo] # El agente principal tiene una herramienta de tarea más PARENT_TOOLS = CHILD_TOOLS + [tarea]
¿Por qué? Evite que el envío recursivo se convierta en una explosión de árboles. Un subagente genera cuatro subsubagentes y hay docenas de llamadas simultáneas en tan solo unas pocas rondas. Ni el token ni el límite de velocidad de la API pueden soportarlo. La convención de s04: spawn es plano y una capa de padre → hijo es una capa. Este también es el caso en la implementación real de Claude Code: está prohibido volver a llamar a la herramienta Tarea en la herramienta Tarea.
visibles e invisibles
Seleccionemos los derechos y responsabilidades: ¿Cuál de las siguientes preguntas crees que es T y cuál F crees?