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

Exécutez et poursuivez des sessions

Lancez le travail, suivez sa progression et poursuivez la conversation.

Une session conserve la configuration d’un agent, sa conversation et son travail enregistré au fil du temps. Réutilisez la même session pour envoyer de nouveaux messages et poursuivre le travail.

Sessions et tours

Un tour est un cycle de travail au sein d’une session. Un message envoyé à une session inactive lance un nouveau tour. Un message envoyé pendant un tour actif oriente ce tour.

Les tours s’exécutent de manière asynchrone. Votre application peut suivre la progression grâce à la diffusion en continu ou recevoir les changements d’état de la session via des webhooks.

Lancez le travail

Créez une session avec une configuration d’agent et des données initiales dans input. Définissez stream sur true pour recevoir les événements du premier tour dans la même requête.

Une fois votre clé API et votre SDK configurés, exécutez cet exemple pour créer et exécuter un script. OpenAI gère son environnement :

Créez une session et suivez son premier tour en continu
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,
    ) as events:
        for event in events:
            print(event.to_json(indent=None), flush=True)

Conservez le session_id avec l’état de la conversation de votre application. Utilisez-le pour envoyer de nouveaux messages et récupérer le travail enregistré pour cette conversation.

Consultez Configuration des agents pour les paramètres d’agent réutilisables et Architecture pour les choix d’environnement. Les sessions avec environment.type: "none" nécessitent des données d’entrée initiales. La référence de création de session répertorie les champs de la requête.

Suivez la progression et gérez les résultats

Les événements signalent les sorties et les changements à mesure que l’agent travaille. Vérifiez l’issue du tour : achèvement, échec ou annulation. Le simple fait qu’une session soit inactive ne signifie pas que le tour a réussi.

Recherchez agent.session.turn.completed, agent.session.turn.failed ou agent.session.turn.cancelled. Examinez également les sorties de l’agent : un tour terminé ne garantit pas que tous les outils ont réussi.

Si la session a besoin du résultat d’une fonction ou d’une connexion à un environnement, récupérez la session et examinez required_actions. Votre code doit traiter l’appel de fonction ou connecter l’environnement pour que le travail puisse se poursuivre.

Consultez Événements et éléments pour connaître les types d’événements et leurs données.

Poursuivez ou orientez le travail

Envoyez un autre agent.session.input.message à la même session. Si l’agent travaille, le message oriente le tour actif. Si la session est inactive, il lance un nouveau tour dans la conversation existante.

Les mises à jour d’un agent enregistré ne s’appliquent qu’aux nouvelles sessions. Pour modifier le modèle, l’effort de raisonnement ou l’offre pour les prochains tours de cette session, mettez à jour ses paramètres.

Utilisez l’identifiant de session de la conversation pour envoyer des données d’entrée. Abonnez-vous à son flux d’événements avant d’envoyer le message afin que votre application reçoive les premiers événements du tour.

Transmettez votre client API, l’identifiant de session et le message à une fonction de votre application :

Envoyez un message de suivi
# Pass your saved session ID and message to this helper.
def send_message(client: OpenAI, session_id: str, text: str) -> None:
    client.beta.agents.sessions.events.create(
        session_id,
        events=[
            {
                "type": "agent.session.input.message",
                "input": [
                    {
                        "role": "user",
                        "content": [
                            {
                                "type": "input_text",
                                "text": text,
                            }
                        ],
                    }
                ],
            }
        ],
    )

Pour un exemple combinant l’envoi d’un message et la réception d’événements en continu, consultez Événements et éléments.

Récupérez le travail enregistré

Les événements indiquent la progression en temps réel. Les éléments sont les messages et les appels d’outils enregistrés, y compris les réponses terminées. Récupérez-les pour afficher le travail précédent ou examiner les résultats après la fin d’un tour :

Récupérez les éléments de la session
# Pass your saved session ID to this helper.
def list_items(client: OpenAI, session_id: str):
    return client.beta.agents.sessions.items.list(session_id, order="asc", limit=100)

Consultez Gestion des sessions pour examiner l’état des sessions et l’issue des tours. Pour récupérer des fichiers, consultez Fichiers et artefacts.

Les flux ne retransmettent pas les événements manqués. Après une déconnexion, récupérez la session et ses éléments enregistrés pour retrouver le travail effectué. Consultez Rétablissez un flux déconnecté pour connaître la procédure de reconnexion.

Annulez un tour actif

Annulez le tour en cours lorsque vous souhaitez que l’agent s’arrête. La session et le travail effectué précédemment restent disponibles :

Annulez le tour actif
# Pass your saved session ID to this helper.
def cancel_turn(client: OpenAI, session_id: str) -> None:
    client.beta.agents.sessions.events.create(
        session_id, events=[{"type": "agent.session.input.cancel"}]
    )