Chaîner les conversations
Des conversations sans gestion d’historique
L’un des avantages majeurs de la Responses API est le chaînage de conversations via previous_response_id. Au lieu de renvoyer tout l’historique à chaque requête, vous passez simplement l’identifiant de la réponse précédente. Le serveur xAI se charge de reconstruire le contexte complet.

Première requête
Envoyez votre prompt initial. Récupérez l'id de la réponse (resp-xxx).
Requêtes suivantes
Passez previous_response_id avec votre nouveau message. Le serveur reconstruit le contexte.
Conversation complète
Chaînez autant de messages que nécessaire. Chaque réponse pointe vers la précédente.
Exemple complet en Python
from openai import OpenAI
client = OpenAI(
api_key="xai-...",
base_url="https://api.x.ai/v1"
)
# Tour 1 : présentation
response1 = client.responses.create(
model="grok-4.20-reasoning",
instructions="Tu es un professeur de mathématiques patient et pédagogue.",
input="Bonjour, je voudrais comprendre les dérivées."
)
print(response1.output[0].content[0].text)
# Tour 2 : le modèle se souvient du contexte
response2 = client.responses.create(
model="grok-4.20-reasoning",
input="Peux-tu me donner un exemple concret ?",
previous_response_id=response1.id
)
print(response2.output[0].content[0].text)
# Tour 3 : approfondissement
response3 = client.responses.create(
model="grok-4.20-reasoning",
input="Et comment calculer la dérivée de x² + 3x ?",
previous_response_id=response2.id
)
print(response3.output[0].content[0].text)
Remarquez que chaque requête après la première ne contient que le nouveau message et la référence à la réponse précédente. Le serveur xAI reconstitue automatiquement tout l’historique.
Équivalent curl
# Tour 1
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.20-reasoning",
"input": "Bonjour, explique-moi les bases de Python."
}'
# Récupérez l'id dans la réponse : "id": "resp-abc123"
# Tour 2
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.20-reasoning",
"input": "Comment faire une boucle for ?",
"previous_response_id": "resp-abc123"
}'
Chaînage et instructions
Les instructions (prompt système) définies dans la première requête sont conservées tout au long de la conversation chaînée. Vous n’avez pas besoin de les répéter.
Si vous modifiez les instructions dans une requête chaînée, les nouvelles instructions remplacent les précédentes pour cette requête et les suivantes.
Limites du chaînage
- La réponse référencée doit exister côté serveur (soit
store: true, soit requête récente) - Le chaînage accumule les tokens d’historique — chaque requête est facturée pour l’intégralité de la conversation
- Il n’y a pas de limite au nombre de tours, mais la fenêtre de contexte du modèle s’applique
Points clés à retenir
previous_response_idchaîne les conversations sans renvoyer l’historique- Le serveur reconstruit le contexte complet automatiquement
- Les instructions système persistent d’un tour à l’autre
- Chaque tour est facturé pour tout l’historique cumulé
- La réponse référencée doit avoir été stockée côté serveur