For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Démarrage rapide avec l’API Agents

Créez un agent qui écrit et exécute un script dans un bac à sable hébergé par OpenAI.

Créez un assistant de programmation qui écrit le script tree.py, l’exécute et affiche l’arborescence d’un répertoire. OpenAI gère l’agent, sa conversation et le bac à sable dans lequel il travaille.

Prérequis

Créez une clé API d’application dans votre projet sur la plateforme OpenAI. Accordez à cette clé les autorisations api.agents.read et api.agents.write pour les opérations sur les sessions, ainsi que api.responses.write pour l’inférence du modèle. Exportez ensuite la clé :

export OPENAI_API_KEY="your-api-key"

Conservez cette clé en dehors du bac à sable de l’agent. Pour connaître les options de configuration et les limites du bac à sable, consultez la page Bacs à sable hébergés par OpenAI.

Les requêtes doivent inclure l’en-tête OpenAI-Beta: agents=v1. Les SDK OpenAI l’ajoutent automatiquement. Avec cURL, ajoutez-le explicitement.

1. Exécutez une tâche

Choisissez un langage, installez le SDK OpenAI et exécutez l’exemple. Les exemples qui utilisent un SDK s’appuient sur l’espace de noms beta.agents. La requête crée une session, soumet une tâche et transmet les événements de progression en continu.

Installez ou mettez à jour le SDK Python :

pip install --upgrade openai

Enregistrez l’exemple dans quickstart.py :

Création et exécution de 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

Exécutez-le depuis votre terminal :

python quickstart.py

Vous n’avez pas besoin de bac à sable ? Définissez environment.type sur none pour les agents qui répondent à des questions ou appellent des outils externes sans exécuter de commandes ni manipuler de fichiers locaux. En savoir plus.

2. Suivez la progression

Le terminal affiche les événements à mesure qu’ils arrivent. Les exemples qui utilisent un SDK les affichent au format JSON. cURL affiche le flux d’événements brut. Si l’exécution réussit, l’agent crée le fichier tree.py, l’exécute et affiche une arborescence qui contient ce fichier. Les autres fichiers et le reste de la sortie dépendent du bac à sable.

Repérez l’événement agent.session.turn.completed, puis vérifiez le résultat d’exécution indiqué par l’agent. La fin d’un tour ne garantit pas que tous les appels d’outils ont réussi. Les événements dont le nom se termine par turn.failed, turn.cancelled ou session.failed signalent un échec ou une annulation. L’événement agent.session.idle ne suffit pas à confirmer la réussite de la tâche. Si le flux s’interrompt prématurément, récupérez la session et ses éléments enregistrés avant de réessayer.

3. Poursuivez la session

Enregistrez la valeur de session_id figurant dans les événements. Utilisez-la pour envoyer une nouvelle instruction, par exemple « Ajoutez une option permettant de limiter la profondeur de l’arborescence dans tree.py, puis exécutez le script et montrez-moi le résultat. » Ouvrez le flux d’événements avant d’envoyer cette instruction pour recevoir les événements dès le début.

4. Supprimez la session de test

Conservez la session pour d’autres tâches ou supprimez-la lorsque vous avez terminé. Avant de la supprimer, enregistrez les fichiers dont vous avez besoin.

Remplacez la valeur sess_123 de l’exemple par l’identifiant de session que vous avez enregistré.

Suppression de la session
# 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())

Étapes suivantes