For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Múltiplos agentes

Permita que um agente delegue trabalho a subagentes independentes.

O recurso de múltiplos agentes permite que um agente delegue tarefas a subagentes. Cada subagente tem seu próprio contexto e pode trabalhar em paralelo com os demais. O agente principal coordena o trabalho deles e reúne seus resultados.

Quando usar subagentes

Use subagentes para tarefas independentes, como revisar documentos separados ou investigar diferentes causas de uma falha. Defina uma pergunta clara e um resultado esperado para cada tarefa.

Deixe as tarefas curtas e as etapas dependentes a cargo do agente principal. Agentes que editam os mesmos arquivos precisam coordenar suas alterações.

Habilite a orquestração de múltiplos agentes

Defina agent.multi_agent.enabled como true ao criar uma sessão. O harness fornece ferramentas para criar subagentes, enviar mensagens a eles, aguardar sua execução e interrompê-los. Você não precisa declarar essas ferramentas.

Este exemplo pede a dois subagentes que revisem notas de versão separadas e, em seguida, reúne suas conclusões. Ele não exige um ambiente nem ferramentas configuradas:

Compare notas de versão
from openai import OpenAI

client = OpenAI()

with client.beta.agents.sessions.create(
    agent={
        "model": "gpt-6-astra",
        "instructions": "Delegate each release to a separate subagent. Ask each to extract customer-visible changes and required migration steps using only its release notes. Wait for both results, then combine them into one release summary with release labels. Do not invent missing details.",
        "multi_agent": {"enabled": True, "max_concurrent_subagents": 2},
    },
    environment={"type": "none"},
    input="Release A: Search now supports filtering by date. Existing queries continue to work. Release B: The export endpoint now returns a download URL instead of file bytes. Update clients to fetch that URL.",
    stream=True,
) as events:
    for event in events:
        print(event.model_dump_json())

Com environment.type: "none", inclua o input inicial na solicitação de criação. Definir stream: true também transmite o primeiro turno por streaming. Consulte Eventos e itens da sessão para saber como lidar com o fluxo e realizar a recuperação.

Configurações de concorrência

max_concurrent_subagents limita quantos subagentes podem executar ao mesmo tempo. O padrão é 6, sem contar o coordenador. Defina um número inteiro positivo quando a delegação estiver habilitada.

Para desabilitar a delegação, omita multi_agent ou defina enabled como false e omita o limite. Essas configurações são aplicadas na criação da sessão. Alterações em um agente armazenado são aplicadas a novas sessões.

Use um ambiente

Quando os agentes precisarem de arquivos ou da execução de comandos, adicione um ambiente. O coordenador e os subagentes compartilham o sistema de arquivos desse ambiente. Criar um subagente não cria outro ambiente.

Este exemplo cria uma sessão para trabalhar no seu próprio ambiente:

Habilite a delegação com seu próprio ambiente
const result = await client.beta.agents.sessions.create({
  agent: {
    model: "gpt-6-astra",
    instructions:
      "Prepare release notes from the repository. Have one subagent identify customer-visible changes and another check migration guides and examples, then combine their findings.",
    multi_agent: {
      enabled: true,
      max_concurrent_subagents: 3,
    },
  },
  environment: {
    type: "self_hosted",
    workspace_directory: "/workspace",
  },
});

Armazene na sua aplicação os IDs de sessão e de ambiente retornados. Conecte o ambiente e, em seguida, envie dados de entrada para iniciar o trabalho.

Ferramentas disponíveis para subagentes

Os subagentes herdam as ferramentas MCP configuradas, suas credenciais e ferramentas permitidas, além das configurações de pesquisa na Web. Eles também podem usar os arquivos e as ferramentas de linha de comando do ambiente. Os subagentes não oferecem suporte a ferramentas de função.

Acompanhe a delegação

O fluxo de eventos da sessão informa a atividade dos subagentes:

  • agent.session.subagent.created fornece o ID do novo subagente.
  • agent.session.turn.item.added e agent.session.turn.item.done informam ações de coordenação. Seus tipos de item incluem create_subagent_call, send_subagent_input_call, wait_for_subagents_call e interrupt_subagent_call.

O harness executa essas ações. A conclusão de uma ação de criação ou espera não significa que o subagente terminou sua tarefa. Em um item de criação, agent_id identifica o agente que solicitou o subagente.

Os itens de coordenação podem omitir o conteúdo das mensagens. Um item agent_message contém o texto trocado entre agentes quando disponível, mas o fluxo não fornece uma transcrição completa da conversa.

Leia a resposta do agente principal para obter o resultado consolidado. Use os itens e turnos salvos para examinar o trabalho anterior, incluindo o histórico de cada subagente.

Identifique quem executou os comandos

A partir de um item de comando e do ID de sua sessão, recupere o turno do comando para identificar o agente que o executou. O campo subagent_id do turno é null para o agente principal.

Identifique o agente que executou um comando
// Use the saved session ID and command execution item from your application.
const turn = await client.beta.agents.sessions.turns.retrieve(
  command.turn_id,
  { session_id: sessionId }
);
console.log(turn.subagent_id);