web_search, use una respuesta principal para delegar tareas de investigación enfocadas a respuestas hijas.
Cada hijo realiza sus propias búsquedas y devuelve un memorando compacto.
La respuesta principal solo consume esos memorandos, lo que permite que el flujo de trabajo general investigue de forma mucho más agresiva sin saturar el contexto del padre.
Este es una versión especializada del patrón general de subagentes.
Aquí el padre es un orquestador de investigación y los hijos son trabajadores de investigación.
Flujo de investigación profunda
-> la respuesta principal planifica la investigación
-> el padre llama a spawn_subagent varias veces
-> su aplicación ejecuta respuestas hijas con web_search
-> los hijos devuelven memorandos de investigación compactos
-> su aplicación envía todos los memorandos hijos de vuelta como function_call_output
-> el padre retoma, decide si hacer otra ronda, luego responde
Por qué usar subagentes para investigación profunda
En un ciclo clásico de investigación profunda con un solo agente, una respuesta sigue llamando aweb_search.
Eso funciona hasta que la respuesta ha visto demasiados resultados de búsqueda y comienza a quedarse sin presupuesto de contexto útil.
Los subagentes solucionan esto dividiendo el trabajo:
- El padre mantiene el plan global y la síntesis final.
- Cada hijo maneja una tarea de investigación enfocada y puede realizar varias búsquedas por sí mismo.
- El padre solo ve el memorando del hijo, no cada resultado de búsqueda en bruto.
- El padre puede delegar una segunda o tercera ronda si la primera es débil o contradictoria.
Diseñe el padre y el hijo de forma diferente
El padre no debe buscar directamente. Su trabajo es descomponer la solicitud, lanzar múltiples subagentes en paralelo y decidir si es necesaria otra ronda. Los hijos sí deben buscar directamente. Su trabajo es realizar la tarea enfocada, superar resultados iniciales débiles y devolver evidencia compacta para el padre. Una buena división se ve así:- Padre: planificación, descomposición de tareas, resolución de conflictos, respuesta final.
- Hijo: refinamiento de consultas, búsqueda repetida, evaluación de fuentes, redacción de memorandos.
Defina la herramienta de delegación
Mantenga el esquema de la herramienta pequeño. Pase solo la tarea del hijo, instrucciones opcionales y una anulación de modelo opcional.Dé al padre un prompt de orquestación
El prompt del padre debe forzar la descomposición y la amplitud. Para investigación profunda, indique al padre que use varios subagentes por defecto y que lance otra ronda cuando la primera sea débil.Dé al hijo un prompt de investigación más estricto
El prompt del hijo debe restaurar la intensidad de búsqueda que la investigación profunda de un solo agente suele tener de forma natural. Sin esto, un hijo puede detenerse tras una búsqueda débil y devolver un memorando diciendo lo que haría a continuación.Ejecute el hijo con web_search
Cada hijo es solo otra solicitud de Responses.
Entréguele la tarea delegada como entrada y la herramienta web_search.
Continúe hijos débiles en lugar de aceptarlos
Para investigación profunda, no acepte un resultado hijo solo porque el hijo devolvió texto. Si el hijo solo buscó una vez, produjo un memorando corto o dijo cosas como “próximos pasos” o “necesito buscar más”, continúe ese mismo hijo conprevious_response_id.
countCompletedWebSearches depende de si está utilizando eventos transmitidos o elementos de salida almacenados.
La idea importante es contar operaciones de búsqueda realmente completadas, no solo turnos.
Ejecute una ronda del padre y luego reúna todos los memorandos hijos
Se debe permitir que el padre emita varias llamadas aspawn_subagent en un turno.
Trate esas llamadas de herramienta como un lote.
Inicie cada hijo, espere a que todos terminen y luego retome el padre una vez con todas las salidas de los hijos.
- El padre crea un plan de investigación.
- El padre emite un lote de llamadas a
spawn_subagent. - Su aplicación ejecuta todos los hijos en paralelo.
- Los hijos débiles continúan en otro ciclo.
- Su aplicación envía todos los memorandos hijos finales juntos.
- El padre lanza otra ronda o responde.
Transmita y registre el proceso de investigación
La investigación profunda es mucho más fácil de depurar si registra el ciclo de vida de búsqueda de los hijos. Registros útiles incluyen:- respuesta principal creada
- cada tarea delegada
- cada consulta de búsqueda de hijo
- cada lote de resultados de búsqueda de hijo
- cada vista previa de memorando de hijo
- cuando un hijo débil continúa en otro ciclo
- reanudación del padre con el lote final de hijos
Reglas prácticas para investigación profunda
- Use
parallel_tool_calls: trueen el padre para que pueda lanzar varios subagentes en un turno. - Mantenga las salidas de los hijos compactas. El padre debe recibir resúmenes de evidencia, no volcados de investigación en bruto.
- Prefiera varias tareas hijas enfocadas en lugar de una tarea hija vaga.
- Si un hijo encuentra principalmente directorios o páginas genéricas, siga empujando a ese hijo en lugar de aceptar el primer memorando.
- No reanude el padre antes de tiempo con solo parte de un lote de hijos.
- Mantenga
store: trueactivado mientras desarrolla para poder inspeccionar las respuestas de padres e hijos después. - Si actúa en nombre de un usuario final, envíe el mismo valor de
X-On-Behalf-Ofen las solicitudes de padre e hijo.
Errores comunes
- Muy pocos subagentes: el padre sintetiza antes de que la investigación tenga verdadera amplitud.
- Hijos débiles: un hijo devuelve resultados tras una búsqueda débil con “próximos pasos” en lugar de hacer más trabajo.
- Memorandos de hijos demasiado grandes: el padre gana poco porque el hijo pasa demasiado contexto en bruto.
- Reunión temprana: reanudar el padre antes de que cada hijo de un lote haya terminado hace que el flujo de trabajo sea menos predecible.
- Deriva en la calidad de las fuentes: los hijos pueden abusar de directorios, sitios de perfiles y agregadores a menos que el prompt les indique priorizar fuentes primarias.