Passer au contenu principal
WorkflowKit sélectionne le moteur de workflow et expose un cycle de vie unifié. Le moteur par défaut est legacy (le moteur en mémoire) ; world s’exécute sur le Vercel Workflow SDK avec un backend Postgres/MongoDB durable (nécessite le package optionnel @ai_kit/workflow-world).

WorkflowKitOptions

WorldConfig

Construction

Le constructeur valide la configuration :
  • engine: "world" sans config world lève une erreur.
  • Un world.type inconnu lève une erreur.
  • engine: "legacy" avec une config world est autorisé (permet de basculer entre les moteurs via une variable d’environnement sans réécrire la configuration).

Propriétés

Méthodes

start()

Démarre le worker world durable (charge @ai_kit/workflow-world à la demande et crée l’adaptateur). No-op quand engine === "legacy", donc le même code de cycle de vie fonctionne pour les deux moteurs. Lève une erreur claire si @ai_kit/workflow-world n’est pas installé.

stop()

Arrête proprement le worker world. No-op quand engine === "legacy" ou quand le world n’a jamais été démarré.

run(workflow, input, dispatch?)

Dispatche vers le moteur configuré (surchargeable par appel via dispatch.engine).
  • legacy → délègue à Workflow.run(options) et retourne un WorkflowRunResult.
  • world → délègue au start(fn, args) du SDK et retourne un WorldRunHandle (durable ; la sortie n’est pas retournée directement — voir runAndWait / returnValue).

runAndWait(workflow, input, dispatch?)

Exécute un workflow et se résout avec sa sortie, de manière synchrone, quel que soit le moteur — l’équivalent le plus proche du legacy await workflow.run() puis .result.
Lève une erreur en cas d’échec (encapsulez là où le code legacy lisait result.status) :
  • legacy → lève une erreur quand le statut du résultat n’est pas "success" (avec l’erreur du run) ;
  • world → rejette via le SDK (WorkflowRunFailedError / WorkflowRunCancelledError).

WorldRunHandle<TResult>

Le handle retourné par un run world (pass-through du Run SDK). Utilisez-le quand vous voulez démarrer maintenant et consommer plus tard : Reconstituez un handle plus tard à partir d’un identifiant stocké avec getRun(runId) depuis workflow/api.

Exemple

Consultez le guide du moteur world pour l’installation, les règles d’écriture et la migration.