Skip to main content
Use este padrão quando um único modelo realizando toda a pesquisa em uma única resposta começar a atingir os limites de contexto. Em vez de deixar uma resposta consumir diretamente cada resultado de web_search, use uma resposta pai para delegar tarefas de pesquisa focadas a respostas filhas. Cada filha realiza suas próprias buscas e retorna um memorando conciso. A pai consome apenas esses memorandos, o que permite que o fluxo geral pesquise de forma muito mais agressiva sem sobrecarregar o contexto da pai. Esta é uma versão especializada do padrão geral de subagentes. Aqui, a pai é uma orquestradora de pesquisa e as filhas são trabalhadoras de pesquisa. Fluxo de pesquisa aprofundada -> a resposta pai planeja a pesquisa -> a pai chama spawn_subagent várias vezes -> seu app executa respostas filhas com web_search -> as filhas retornam memorandos de pesquisa concisos -> seu app envia todos os memorandos filhos de volta como function_call_output -> a pai é retomada, decide se deve fazer outra rodada e então responde

Por que usar subagentes para pesquisa aprofundada

Em um loop clássico de pesquisa aprofundada com um único agente, uma resposta continua chamando web_search. Isso funciona até que a resposta tenha visto resultados de busca demais e comece a ficar sem orçamento de contexto útil. Os subagentes resolvem isso dividindo o trabalho:
  • A pai mantém o plano global e a síntese final.
  • Cada filha lida com uma tarefa de pesquisa focada e pode realizar várias buscas próprias.
  • A pai vê apenas o memorando filho, não todos os resultados brutos de busca.
  • A pai pode delegar uma segunda ou terceira rodada se a primeira for fraca ou apresentar conflitos.

Projete a pai e as filhas de forma diferente

A pai não deve pesquisar diretamente. Seu trabalho é decompor a solicitação, iniciar vários subagentes em paralelo e decidir se outra rodada é necessária. As filhas devem pesquisar diretamente. Seu trabalho é realizar o trabalho focado, ir além de resultados iniciais fracos e retornar evidências concisas para a pai. Uma boa divisão é assim:
  • Pai: planejamento, decomposição de tarefas, resolução de conflitos, resposta final.
  • Filha: refinamento de consultas, busca repetida, avaliação de fontes, redação de memorandos.

Defina a ferramenta de delegação

Mantenha o esquema da ferramenta pequeno. Passe apenas a tarefa filha, instruções opcionais e uma substituição opcional de modelo.

Dê à pai um prompt de orquestração

O prompt da pai deve forçar decomposição e abrangência. Para pesquisa aprofundada, diga à pai para usar vários subagentes por padrão e iniciar outra rodada quando a primeira for fraca.

Dê à filha um prompt de pesquisa mais rigoroso

O prompt da filha deve restaurar a intensidade de busca que a pesquisa aprofundada com um único agente costuma ter naturalmente. Sem isso, uma filha pode parar após uma busca fraca e retornar um memorando dizendo o que faria em seguida.
Cada filha é apenas outra solicitação Responses. Forneça a ela a tarefa delegada como entrada e a ferramenta web_search.

Continue filhas fracas em vez de aceitá-las

Para pesquisa aprofundada, não aceite o resultado de uma filha apenas porque ela retornou texto. Se a filha buscou apenas uma vez, produziu um memorando curto ou disse coisas como “próximos passos” ou “preciso pesquisar mais”, continue essa mesma filha com previous_response_id.
O auxiliar exato countCompletedWebSearches depende de você estar usando eventos transmitidos ou itens de saída armazenados. A ideia importante é contar operações de busca concluídas de fato, não apenas turnos.

Execute uma rodada pai e depois reúna todos os memorandos filhos

A pai deve poder emitir várias chamadas spawn_subagent em um único turno. Trate essas chamadas de ferramenta como um lote. Inicie cada filha, aguarde a conclusão de todas e então retome a pai uma vez com todas as saídas filhas.
Este é o loop central de pesquisa aprofundada:
  1. A pai cria um plano de pesquisa.
  2. A pai emite um lote de chamadas spawn_subagent.
  3. Seu app executa todas as filhas em paralelo.
  4. Filhas fracas continuam para outra etapa.
  5. Seu app envia todos os memorandos finais das filhas juntos.
  6. A pai inicia outra rodada ou responde.

Transmita e registre o processo de pesquisa

A pesquisa aprofundada é muito mais fácil de depurar se você registrar o ciclo de vida de busca das filhas. Registros úteis incluem:
  • resposta pai criada
  • cada tarefa delegada
  • cada consulta de busca filha
  • cada lote de resultados de busca filha
  • prévia de cada memorando filho
  • quando uma filha fraca é continuada para outra etapa
  • retomada da pai com o lote final de filhas
Isso permite distinguir falhas de orquestração de falhas de qualidade da pesquisa. Por exemplo, se o sistema responde mal, mas os registros mostram apenas uma filha com uma busca, isso é um problema de prompt ou continuação, não um problema de transporte.

Regras práticas para pesquisa aprofundada

  • Use parallel_tool_calls: true na pai para que ela possa iniciar vários subagentes em um turno.
  • Mantenha as saídas das filhas concisas. A pai deve receber resumos de evidências, não despejos brutos de pesquisa.
  • Prefira várias tarefas filhas focadas em vez de uma tarefa filha vaga.
  • Se uma filha encontrar principalmente diretórios ou páginas de destino genéricas, continue pressionando essa filha em vez de aceitar o primeiro memorando.
  • Não retome a pai antecipadamente apenas com parte de um lote de filhas.
  • Mantenha store: true ativado durante o desenvolvimento para poder inspecionar respostas pais e filhas posteriormente.
  • Se você estiver agindo em nome de um usuário final, envie o mesmo valor X-On-Behalf-Of nas solicitações pai e filha.

Armadilhas comuns

  • Poucos subagentes: a pai sintetiza antes que a pesquisa tenha abrangência real.
  • Filhas fracas: uma filha retorna após uma busca fraca com “próximos passos” em vez de realizar mais trabalho.
  • Memorandos filhos grandes demais: a pai ganha pouco porque a filha repassa contexto bruto demais.
  • Reunião antecipada: retomar a pai antes de cada filha em um lote ter concluído torna o fluxo menos previsível.
  • Desvio na qualidade das fontes: as filhas podem usar excessivamente diretórios, sites de perfis e agregadores, a menos que o prompt diga explicitamente para priorizarem fontes primárias.

Veja também

Consulte gerar subagentes usando a API Responses para o padrão geral de delegação pai/filha. Consulte gerar uma resposta para a estrutura básica de solicitação Responses.