Skip to main content
Créez une session par conversation, pas une session par question. Elle garde l’état côté serveur et reste attachée à la version du domaine publiée au moment de sa création.

Le cycle avec le SDK

Les appels TypeScript utilisent await. Python propose aussi AsyncZelinqaClient avec async with et await. Voir le démarrage complet.

Reprendre après une coupure

Enregistrez session.id dans votre backend dès la création. Les exemples suivants supposent un client configuré et la variable saved_session_id ou savedSessionId relue depuis votre stockage.
Présentez la question en attente avant d’envoyer une nouvelle réponse. Après une coupure réseau, vérifiez si la réponse précédente a déjà été enregistrée ; ne la rejouez pas à l’aveugle. Le SDK conserve state_version, decision_id et question_id pour les appels métier. La version d’état évolue avec la session : ce n’est pas la version publiée du domaine.
Utilisez un handle séquentiellement. Deux écritures simultanées sur la même session peuvent produire un conflit ; relisez alors l’état et réconciliez la réponse. Les SDK ne masquent pas les conflits métier.

Continuer ou terminer

  • action: "ask" : une question est disponible.
  • warnings peut indiquer objective_achieved ou max_turns_reached : votre application décide de conclure ou de continuer.
  • action: "stop" : aucune question n’est disponible ; n’attendez pas de candidate.
Ne confondez pas progression calculée et résultat réel. Enregistrez un feedback de succès seulement si le résultat métier a réellement eu lieu.
Avec le MCP, les mêmes étapes passent par les outils de conversation. La référence API détaille la concurrence et l’idempotence pour les intégrations HTTP directes.