Enregistrez l’identifiant de chaque session dans le système de stockage de votre application. Utilisez cet identifiant pour récupérer l’état actuel de la session, traiter les demandes de l’agent ou supprimer la session.
Listez les sessions de votre projet pour consulter les travaux précédents. Utilisez les fonctions de pagination du SDK pour récupérer les pages suivantes :
1
2
3
4
5
6
7
8
9import OpenAI from "openai";
const client = new OpenAI();
let page = await client.beta.agents.sessions.list({ limit: 20 });
console.log(page.data);
if (page.hasNextPage()) {
page = await page.getNextPage();
console.log(page.data);
}
1
2
3
4
5
6
7
8from openai import OpenAI
client = OpenAI()
page = client.beta.agents.sessions.list(limit=20)
print(page.to_json())
if page.has_next_page():
page = page.get_next_page()
print(page.to_json())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
)
ctx := context.Background()
client := openai.NewClient()
result, err := client.Beta.Agents.Sessions.List(ctx,
openai.BetaAgentSessionListParams{Limit: openai.Int(20)})
if err != nil {
panic(err)
}
fmt.Println(result.Data)
if result.HasMore {
result, err = result.GetNextPage()
if err != nil {
panic(err)
}
fmt.Println(result.Data)
}
1
2
3
4
5
6
7
8
9
10
11
12import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.beta.agents.sessions.SessionListParams;
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
var result =
client.beta().agents().sessions().list(SessionListParams.builder().limit(20L).build());
System.out.println(result.items());
if (result.hasNextPage()) {
result = result.nextPage();
System.out.println(result.items());
}
1
2
3
4
5
6
7
8
9require "openai"
client = OpenAI::Client.new
result = client.beta.agents.sessions.list(limit: 20)
puts result.data
if result.next_page?
result = result.next_page
puts result.data
end
1
2
3
4
5
6
7
8
9
10
11
12page=$(curl -sS --fail-with-body "https://api.openai.com/v1/agents/sessions?limit=20&order=desc" \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY")
after=$(printf '%s' "$page" | jq -r 'select(.has_more) | .last_id // empty')
if [ -n "$after" ]; then
curl --get "https://api.openai.com/v1/agents/sessions" \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
--data-urlencode "after=$after" \
--data-urlencode "limit=20"
fi
Récupérez une session pour consulter son statut, la configuration de l’agent, l’environnement et le champ required_actions. Passez en arguments votre client API et l’identifiant de session associé à la conversation :
1
2
3
4// Pass your saved session ID to this helper.
async function retrieveSession(client, sessionId) {
return client.beta.agents.sessions.retrieve(sessionId);
}
1
2
3# Pass your saved session ID to this helper.
def retrieve_session(client: OpenAI, session_id: str):
return client.beta.agents.sessions.retrieve(session_id)
1
2
3
4// Pass your saved session ID to this helper.
func retrieveSession(ctx context.Context, client *openai.Client, sessionID string) (*openai.AgentSession, error) {
return client.Beta.Agents.Sessions.Get(ctx, sessionID)
}
1
2
3
4
5
6
7
8// Pass your saved session ID to this helper.
public static AgentSession retrieveSession(OpenAIClient client, String sessionId) {
return client
.beta()
.agents()
.sessions()
.retrieve(SessionRetrieveParams.builder().sessionId(sessionId).build());
}
1
2
3
4# Pass your saved session ID to this helper.
def retrieve_session(client, session_id)
client.beta.agents.sessions.retrieve(session_id)
end
1
2
3
4curl \
"https://api.openai.com/v1/agents/sessions/$session_id" \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY"
Consultez la référence de l’API de récupération d’une session pour connaître le schéma complet de la réponse.
Lorsqu’une session a le statut requires_action, votre application doit intervenir pour que le travail puisse reprendre. À la réception de l’événement agent.session.requires_action, récupérez la session et examinez chaque entrée de required_actions :
function_call : Exécutez la fonction indiquée par name avec les arguments fournis dans arguments. Renvoyez le résultat dans la même session en utilisant les champs turn_id et call_id de l’action. Consultez le guide sur les outils de type fonction.
environment_connection : Connectez l’environnement identifié par environment_id. Consultez la section Connecter un environnement.
L’événement indique à votre application quand vérifier si des actions sont requises. La session récupérée précise les actions à effectuer. Après un redémarrage ou une interruption du flux, récupérez la session pour identifier les actions en attente. Une fois ces actions traitées, continuez à suivre les événements pour connaître l’issue du tour.
Pour consulter les messages, les appels d’outils et les résultats des tours enregistrés, reportez-vous à la section Récupérer les éléments et les tours. Pour savoir quel agent a exécuté une commande, consultez la section Observer la délégation.
Supprimez une session lorsque votre application n’en a plus besoin. La session n’est alors plus accessible via l’API. L’effacement physique des données peut se poursuivre de manière asynchrone.
1
2
3
4
5
6
7
8
9// Replace the illustrative IDs and URLs below with your own resource values.
import OpenAI from "openai";
async function deleteSession(client, sessionId) {
return client.beta.agents.sessions.delete(sessionId);
}
const result = await deleteSession(new OpenAI(), "sess_123");
console.log(result);
1
2
3
4
5
6
7
8
9
10
11
12# 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())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22// Replace the illustrative IDs and URLs below with your own resource values.
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
)
func deleteSession(ctx context.Context, client *openai.Client, sessionID string) (*openai.AgentSessionDeleted, error) {
return client.Beta.Agents.Sessions.Delete(ctx, sessionID)
}
func main() {
client := openai.NewClient()
result, err := deleteSession(context.Background(), &client, "sess_123")
if err != nil {
panic(err)
}
fmt.Println(result)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// Replace the illustrative IDs and URLs below with your own resource values.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.beta.agents.AgentSessionDeleted;
import com.openai.models.beta.agents.sessions.SessionDeleteParams;
public final class AgentsApiSessionsDeleteSessionExample {
public static AgentSessionDeleted deleteSession(OpenAIClient client, String sessionId) {
return client
.beta()
.agents()
.sessions()
.delete(SessionDeleteParams.builder().sessionId(sessionId).build());
}
public static void main(String[] args) {
var result = deleteSession(OpenAIOkHttpClient.fromEnv(), "sess_123");
System.out.println(result);
}
}
1
2
3
4
5
6
7
8# Replace the illustrative IDs and URLs below with your own resource values.
require "openai"
def delete_session(client, session_id)
client.beta.agents.sessions.delete(session_id)
end
puts delete_session(OpenAI::Client.new, "sess_123")
1
2
3
4curl -X DELETE \
"https://api.openai.com/v1/agents/sessions/$session_id" \
-H "OpenAI-Beta: agents=v1" \
-H "Authorization: Bearer $OPENAI_API_KEY"
Pour arrêter le travail en cours et conserver la conversation, annulez le tour actif. Consultez la référence de l’API de suppression d’une session pour connaître la réponse renvoyée lors de la suppression.