For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Multiagente

Permite que un agente delegue trabajo a subagentes independientes.

La función multiagente permite que un agente delegue tareas a subagentes. Cada subagente tiene su propio contexto y puede trabajar en paralelo con los demás. El agente principal coordina su trabajo y combina sus resultados.

Cuándo usar subagentes

Usa subagentes para tareas independientes, como revisar documentos por separado o investigar distintas causas de una falla. Define una pregunta clara y un resultado esperado para cada tarea.

Deja las tareas breves y los pasos que dependen unos de otros a cargo del agente principal. Los agentes que editan los mismos archivos deben coordinar sus cambios.

Habilitar la orquestación multiagente

Establece agent.multi_agent.enabled en true al crear una sesión. El arnés de ejecución proporciona herramientas para crear subagentes, enviarles mensajes, esperar a que respondan e interrumpirlos. No tienes que declarar estas herramientas por tu cuenta.

Este ejemplo pide a dos subagentes que revisen notas de versión por separado y luego combina sus hallazgos. No requiere un entorno ni herramientas configuradas:

Comparar notas de versión
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())

Con environment.type: "none", incluye el input inicial en la solicitud de creación. Al establecer stream: true, también se transmite el primer turno. Consulta Eventos y elementos de la sesión para conocer cómo manejar el flujo y recuperarlo.

Configuración de concurrencia

max_concurrent_subagents limita cuántos subagentes pueden ejecutarse al mismo tiempo. El valor predeterminado es 6, sin contar al coordinador. Establece un número entero positivo cuando la delegación esté habilitada.

Para deshabilitar la delegación, omite multi_agent o establece enabled en false y omite el límite. Esta configuración se aplica al crear la sesión. Los cambios en un agente almacenado se aplican a las sesiones nuevas.

Usar un entorno

Cuando los agentes necesiten archivos o ejecutar comandos, agrega un entorno. El coordinador y los subagentes comparten el sistema de archivos de ese entorno. Crear un subagente no crea otro entorno.

Este ejemplo crea una sesión para trabajar en tu propio entorno:

Habilitar la delegación con tu propio entorno
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",
  },
});

Guarda en tu aplicación los ID de sesión y de entorno que se devuelven. Conecta el entorno y luego envía la entrada para comenzar a trabajar.

Herramientas disponibles para los subagentes

Los subagentes heredan las herramientas MCP configuradas, sus credenciales y herramientas permitidas, y la configuración de búsqueda web. También pueden usar los archivos y las herramientas de línea de comandos del entorno. Los subagentes no admiten herramientas de funciones.

Observar la delegación

El flujo de eventos de la sesión informa sobre la actividad de los subagentes:

  • agent.session.subagent.created proporciona el ID del nuevo subagente.
  • agent.session.turn.item.added y agent.session.turn.item.done informan sobre las acciones de coordinación. Sus tipos de elementos incluyen create_subagent_call, send_subagent_input_call, wait_for_subagents_call y interrupt_subagent_call.

El arnés de ejecución ejecuta estas acciones. Que una acción de creación o espera se haya completado no significa que el subagente haya terminado su tarea. En un elemento de creación, agent_id identifica al agente que solicitó el subagente.

Los elementos de coordinación pueden omitir el contenido de los mensajes. Un elemento agent_message contiene el texto intercambiado entre agentes cuando está disponible, pero el flujo no proporciona una transcripción completa de la conversación.

Lee la respuesta del agente principal para obtener el resultado combinado. Usa los elementos y turnos guardados para inspeccionar el trabajo previo, incluido el historial de cada subagente.

Atribuir comandos

A partir de un elemento de comando y su ID de sesión, recupera el turno del comando para identificar al agente que lo ejecutó. El valor de subagent_id del turno es null para el agente principal.

Identificar al agente que ejecutó un 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);