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 chamandoweb_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.Execute a filha com web_search
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 comprevious_response_id.
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 chamadasspawn_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.
- A pai cria um plano de pesquisa.
- A pai emite um lote de chamadas
spawn_subagent. - Seu app executa todas as filhas em paralelo.
- Filhas fracas continuam para outra etapa.
- Seu app envia todos os memorandos finais das filhas juntos.
- 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
Regras práticas para pesquisa aprofundada
- Use
parallel_tool_calls: truena 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: trueativado 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-Ofnas 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.