Aller au contenu
English

defineAgentTask

import { defineAgentTask } from "@elie-laloum/outpost";

Déclare une tâche qui exécute sandbox.dispatch() dans une sandbox que vous avez ouverte et gardez ouverte ; request construit les options du dispatch à chaque tentative. La sortie est le résultat du dispatch avec ses méthodes resume() et fork() : une exécution avec checkpoint doit envelopper la tâche dans une defineTask() qui renvoie du JSON. L’usage s’ajoute au budget du workflow ; cache est refusé.

Exemple complet et règles détaillées.

  • optionsRequis
    Omit<TaskOptions<DispatchResult<T>>, "cache" | "perform"> & AgentTaskOptions<T>
    Réglages d’ordonnancement, sandbox existante et fabrique de requêtes de dispatch.
  • options.retryOptionnel
    Retry | undefined
    Politique de relance des tentatives échouées ; sans elle, la tâche s’exécute une fois. Une tentative relancée répète ses effets de bord.
  • options.gateOptionnel
    WorkflowGate | undefined
    Définition persistée d’approbation ou pause ; son exécution exige un checkpoint et une décision de confiance correspondante.
  • options.keyRequis
    string
    Clé unique dans le workflow, conforme à [A-Za-z0-9][A-Za-z0-9._-]*. Les enregistrements, événements et checkpoints identifient la tâche par elle.
  • options.afterOptionnel
    readonly Task<unknown>[] | undefined
    Tâches qui doivent être done avant que celle-ci démarre, aucune par défaut ; seules celles-ci se lisent avec context.value().
  • options.interactionOptionnel
    TaskInteraction | undefined
    Contrat optionnel de saisie humaine durable ; exige un checkpoint et ne peut pas être combiné avec une gate.
  • options.conditionOptionnel
    ((context: TaskContext) => boolean | Promise<boolean>) | undefined
    Évaluée avec attempt 0 avant l’exécution de la tâche, y compris quand un start() ultérieur la reprend ; false termine la tâche en skipped, ce qui ignore aussi ses dépendantes.
  • options.timeoutMsOptionnel
    number | undefined
    Délai en millisecondes de chaque tentative, entier positif jusqu’à 2147483647. À l’expiration, context.signal est annulé et la tentative échoue ; retry peut la répéter.
  • options.sandboxRequis
    Sandbox
    Sandbox existante appartenant à l’appelant et réutilisée par la tâche ; la tâche ne la ferme pas.
  • options.requestRequis
    (context: TaskContext) => DispatchOptions<T>
    Construit les options de dispatch depuis les dépendances pour la sandbox existante.
  • options.quotaResumeOptionnel
    QuotaResumePolicy | undefined
    Après une pause sur quota, poursuit la conversation capturée avec une consigne de reprise (continue, par défaut) ou renvoie la requête d’origine (restart). La requête d’origine est renvoyée quand l’agent ne peut pas reprendre ou est un agent de secours, ou quand la requête fixe continuation ou plusieurs passes.

Task<DispatchResult<T>>

export declare function defineAgentTask<T>(
  options: Omit<TaskOptions<DispatchResult<T>>, "perform" | "cache"> &
    AgentTaskOptions<T>,
): Task<DispatchResult<T>>;