Exécutions
Une exécution est une invocation unique d'un workflow. Chaque exécution possède un execution_id unique (généré automatiquement ou spécifié par l'appelant) et passe par une succession de statuts pendant son déroulement.
Déclencher une exécution
Vous pouvez démarrer une exécution de workflow depuis le code client avec le SDK Mistral. Le workflow_identifier doit correspondre au name que vous avez transmis à @workflows.workflow.define(). Si vous ne fournissez pas de execution_id, la plateforme en génère un automatiquement.
from mistralai.client import Mistral
client = Mistral(api_key="your_key")
execution = client.workflows.execute_workflow(
workflow_identifier="my_workflow",
input={"data": "hello"},
execution_id="my-run-2024-01-15", # optional custom ID
)
print(execution.model_dump_json(indent=2))L'objet execution renvoyé contient le execution_id et le status initial (généralement RUNNING). Vous pouvez également déclencher des exécutions depuis Studio, depuis Vibe Work ou via une planification.
Statuts d'exécution
Une exécution démarre avec le statut RUNNING, peut passer par des états transitoires et se termine dans l'un des états terminaux.
États terminaux (l'exécution est terminée et ne changera plus d'état) :
COMPLETED: terminée avec succèsFAILED: terminée en raison d'une erreur non géréeCANCELED: arrêtée proprementTERMINATED: arrêtée de forceTIMED_OUT: délaiexecution_timeoutdépasséCONTINUED_AS_NEW: historique réinitialisé via continue-as-new (un nouveau run prend le relais sous un nouveauexecution_id)
État transitoire :
RETRYING_AFTER_ERROR: a échoué et une nouvelle tentative est planifiée ; l'exécution reste dans cet état jusqu'à ce que cette tentative aboutisse à un statut terminal
Consulter l'état d'une exécution
Pour examiner une exécution après l'avoir déclenchée, récupérez-la par son ID :
execution = client.workflows.executions.get_workflow_execution(execution_id="my-run-2024-01-15")
print(execution.status, execution.result)Pour consulter le log complet des événements, utilisez l'endpoint d'historique (GET /v1/workflows/executions/{execution_id}/history). Pour suivre la progression en temps réel pendant l'exécution du workflow, consultez Streaming.
Exécutions et runs
Une exécution est une invocation d'un workflow dotée d'un execution_id stable qui persiste pendant toute sa durée de vie. Un run est une tentative unique au sein de cette exécution. Dans la plupart des cas, une exécution ne compte qu'un seul run. Mais si un workflow est réinitialisé à un point antérieur de son historique, un nouveau run démarre sous le même execution_id.
Un seul run peut être actif à la fois. Les points de terminaison API (/cancel, /terminate, /signals, /queries, /updates) ciblent toujours le dernier run d'une exécution.