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
Theme

Guía de inicio rápido de la API de agentes

Crea un agente que escriba y ejecute un script en un sandbox alojado por OpenAI.

Crea un asistente de programación que escriba tree.py, lo ejecute y muestre un árbol de directorios. OpenAI administra el agente, su conversación y el sandbox donde trabaja.

Requisitos previos

Crea una clave de API para tu aplicación en tu proyecto de la plataforma de OpenAI. Asígnale los permisos api.agents.read y api.agents.write para las operaciones de sesión, además de api.responses.write para la inferencia del modelo. Luego exporta la clave:

export OPENAI_API_KEY="your-api-key"

Mantén esta clave fuera del sandbox del agente. Consulta Sandboxes alojados por OpenAI para conocer la configuración y los límites del sandbox.

Las solicitudes requieren el encabezado OpenAI-Beta: agents=v1. Los SDK de OpenAI lo agregan automáticamente. Si usas cURL, inclúyelo explícitamente.

1. Ejecuta una tarea

Elige un lenguaje, instala el SDK de OpenAI y ejecuta el ejemplo. Los ejemplos con el SDK usan el espacio de nombres beta.agents. La solicitud crea una sesión, envía una tarea y transmite eventos de progreso durante la ejecución.

Instala o actualiza el SDK de Python:

pip install --upgrade openai

Guarda el ejemplo como quickstart.py:

Crea y ejecuta tree.py
from openai import OpenAI

with OpenAI() as client:
    with client.beta.agents.sessions.create(
        agent={
            "model": "gpt-6-astra",
            "instructions": "Write clean code, run it, and report the actual output.",
        },
        environment={"type": "openai_hosted"},
        input="Create tree.py, a Python script that prints a readable tree of the files in the current directory. Run it and show me the output.",
        stream=True,
    ).with_result_collection() as stream:
        for event in stream:
            print(event.to_json(indent=None), flush=True)
        result = stream.get_final_result()
    print(result.output_text)
    session_id = result.session_id

Ejecútalo desde la terminal:

python quickstart.py

¿No necesitas un sandbox? Establece environment.type en none para los agentes que responden preguntas o llaman a herramientas externas sin ejecutar comandos ni trabajar con archivos locales. Más información.

2. Sigue el progreso

La terminal muestra los eventos a medida que llegan. Los ejemplos con el SDK imprimen los eventos en formato JSON. cURL muestra el flujo de eventos sin procesar. Si la ejecución tiene éxito, el agente crea tree.py, lo ejecuta y muestra un árbol de directorios que incluye ese archivo. Los demás archivos y la salida dependen del sandbox.

Busca agent.session.turn.completed y luego revisa el resultado de la ejecución que comunicó el agente. Que el turno se complete no garantiza que todas las herramientas se hayan ejecutado correctamente. Los eventos que terminan en turn.failed, turn.cancelled o session.failed indican un error o una cancelación. El evento agent.session.idle por sí solo no indica que la ejecución haya tenido éxito. Si el flujo se interrumpe antes de tiempo, recupera la sesión y sus elementos guardados antes de volver a intentarlo.

3. Continúa la sesión

Guarda el session_id que aparece en los eventos. Úsalo para enviar otro mensaje, por ejemplo, “Agrega una opción para configurar la profundidad máxima en tree.py, ejecútalo y muéstrame la salida”. Abre el flujo de eventos antes de enviar el mensaje para no perderte los primeros eventos.

4. Conserva o elimina la sesión

Conserva la sesión para otras tareas o elimínala cuando termines. Antes de eliminarla, guarda los archivos que necesites.

Reemplaza el valor sess_123 del ejemplo por el ID de sesión que guardaste.

Elimina la sesión
# Replace the illustrative IDs and URLs below with your own resource values.

from openai import OpenAI


def delete_session(client: OpenAI, session_id: str):
    return client.beta.agents.sessions.delete(session_id)


if __name__ == "__main__":
    result = delete_session(OpenAI(), "sess_123")
    print(result.to_json())

Próximos pasos