Concepts

Exécutions

Un agent dans une microVM jetable, de la file d'attente au règlement.

Une exécution est un agent qui travaille sur une tâche dans sa propre microVM. Vous envoyez un prompt, une entrée JSON, ainsi que les fichiers et les connexions qu'il peut utiliser. Ephemeral la met en file d'attente, démarre une machine neuve, enregistre chaque étape et détruit la machine à la fin de l'exécution.

Ce qui compose une exécution

Chaque exécution a un prompt et, en option, une entrée. Le reste de la définition détermine le modèle utilisé, ce que l'agent peut lire et appeler, sa durée maximale et son budget. Vous pouvez envoyer toute la définition directement, ou désigner un workflow enregistré et n'envoyer que l'entrée.

POST /v1/runs
{
  "prompt": "Find out why this payment failed. Follow the playbook.",
  "input": { "payment_id": "pay_123" },
  "model": "anthropic/claude-haiku-5.5",
  "files": [{ "file": "playbook.md" }],
  "connections": { "payments": { "ref": "payments-api", "allowed_methods": ["GET"] } },
  "timeout_seconds": 120,
  "shell": false,
  "max_cost_micros": 500000
}

Dans la microVM, l'agent peut toujours lire les fichiers que vous avez montés. Avec shell activé, ce qui est le cas par défaut, il peut aussi exécuter des commandes shell et écrire des fichiers dans son répertoire de travail. Chaque connexion accordée ajoute des outils qu'il peut appeler et, avec l'accès web activé, il peut lire des pages, faire des recherches et appeler des API publiques. La machine elle-même n'a pas accès à Internet. Le répertoire de travail disparaît avec la machine : rien n'est transmis à l'exécution suivante.

Cycle de vie

Une exécution passe par les statuts suivants. Les cinq derniers sont finals : une fois l'un d'eux atteint, le statut ne change plus.

StatutSignification
reservingService hébergé uniquement. Les crédits correspondant au budget de l'exécution sont en cours de réservation.
queuedEn attente d'un emplacement de worker libre.
startingSortie de la file d'attente. La définition et les fichiers sont en cours de chargement.
runningLa microVM démarre ou l'agent travaille.
succeededL'agent a terminé et renvoyé une sortie.
failedLe worker a échoué, ou les crédits n'ont pas pu être réservés. Le champ error indique lequel des deux.
cancelledQuelqu'un a annulé l'exécution.
timed_outL'exécution a atteint son délai d'expiration avant de se terminer.
interruptedLe moteur a redémarré pendant l'exécution, ou l'admission ne s'est pas terminée.

Les exécutions sortent de la file d'attente dans l'ordre de leur création. Une installation auto-hébergée en exécute deux à la fois par défaut ; les autres restent en queued. Le délai d'expiration court à partir du moment où l'exécution quitte la file : le temps d'attente n'est donc pas décompté.

Limites

LimiteValeur
timeout_secondsDe 1 à 3 600. 300 par défaut.
Prompt128 Kio
Entrée1 Mio de JSON
Fichiers32 par exécution, 1 Mio chacun, 4 Mio au total
Connexions16 par exécution
Appels au modèle100 par exécution
Sortie par réponse du modèleLa limite propre au modèle, jusqu'à 32 000 jetons, réduite pour tenir dans ce qui reste du budget. Une réponse coupée à la limite est poursuivie automatiquement, deux fois au maximum.
Requêtes et recherches web50 par exécution, lorsque l'accès web est activé
SortieJusqu'à 1 Mio. Une réponse plus longue est coupée à cette limite, et l'exécution le consigne.
ÉvénementsL'historique conserve jusqu'à 256 Kio par événement, et 10 000 événements ou 16 Mio par exécution. Les résultats d'outils plus volumineux sont raccourcis dans l'historique et signalés comme tels ; l'agent, lui, les reçoit en entier. Quand l'historique est plein, les détails suivants sont ignorés et comptabilisés. Ni l'un ni l'autre ne fait jamais échouer l'exécution.
max_cost_microsDe 1 à 100 000 000 (jusqu'à $100)

Suivre une exécution

Il existe trois façons de savoir ce que fait une exécution et quand elle se termine.

  • Interroger GET /v1/runs/{id} jusqu'à ce que le statut soit final.
  • Suivre GET /v1/runs/{id}/events. C'est un flux d'événements serveur (SSE) qui rejoue tout ce qui a été enregistré jusqu'ici, puis continue en direct jusqu'à la fin de l'exécution.
  • Définir un callback sur l'exécution. Ephemeral envoie une requête signée à votre serveur lorsque l'exécution atteint un statut final.

Fermer le flux d'événements n'a aucun effet sur l'exécution. Vous pouvez vous reconnecter avec le dernier ID d'événement reçu et reprendre à partir de là.

Types d'événements

TypeEnregistré lorsque
statusL'exécution passe en cours d'exécution ou atteint un statut final.
microvm_startingEphemeral demande une microVM.
microvm_readyLa microVM est prête.
worker_startedLe processus de l'agent démarre. Indique si le shell est activé.
connection_readyUne connexion MCP est prête, avec les outils que l'exécution peut appeler.
tool_startL'agent appelle un outil. Inclut les arguments.
tool_endUn appel d'outil se termine. Inclut le résultat et indique s'il s'agit d'une erreur. Un résultat de plus de 256 Kio est raccourci ici et porte trimmed_from_bytes.
text_deltaLe modèle diffuse du texte, par lots environ dix fois par seconde.
model_usageUne réponse du modèle se termine. Utilisation de jetons telle que la rapporte le worker ; non utilisée pour la facturation.
usageEphemeral autorise ou rapproche le coût d'un appel au modèle.
connectionLe moteur effectue une requête HTTP ou un appel d'outil MCP au nom de l'exécution.
web_requestLe moteur envoie une requête web pour l'agent. Inclut l'URL, le statut, le coût et le contrôle de sécurité.
web_searchLe moteur lance une recherche web pour l'agent.
web_refusedUne requête web ou une recherche a été refusée avant son envoi. Inclut le motif.
resultL'agent renvoie sa sortie finale. Le champ output de l'exécution la contient en entier ; cet événement peut être raccourci.
model_call_refusedUn appel au modèle a été refusé, par exemple parce que son coût maximal dépasse ce qui reste du budget. Inclut le motif.
output_limitUne réponse a atteint la limite de sortie du modèle et l'agent a reçu la consigne de poursuivre.
output_truncatedLa sortie finale dépassait 1 Mio et a été coupée à cette limite.
events_skippedL'historique de l'exécution était plein : les événements suivants n'ont pas été stockés. Indique combien.
worker_errorLe worker s'arrête sur une erreur.
microvm_terminatedLa destruction de la microVM est confirmée.
microvm_cleanup_pendingL'arrêt n'a pas encore pu être confirmé et sera retenté.
doneDernier message du flux. Contient l'objet d'exécution final.

Ephemeral retire des événements et de la sortie les valeurs d'identifiants connues, comme les jetons de connexion, avant de les stocker. La référence de l'API détaille le format exact du flux.

Annuler une exécution

POST /v1/runs/{id}/cancel arrête une exécution en statut reserving, queued, starting ou running. Le worker est arrêté et la microVM est terminée. Annuler une exécution déjà terminée ne change rien.

L'annulation ne peut pas défaire les actions externes
Si l'agent a déjà appelé une API qui a modifié quelque chose, par exemple en émettant un remboursement, annuler l'exécution ne l'annule pas. Il en va de même pour les exécutions qui échouent, dépassent leur délai ou sont interrompues. Ephemeral ne relance jamais une exécution automatiquement : un effet de bord n'est donc pas répété non plus.

Rétention zéro des données

Définissez zero_data_retention sur true pour une exécution, ou dans un workflow enregistré, lorsque la tâche est sensible. Ephemeral n'enregistre alors rien du contenu de l'exécution : vous ne recevez que la sortie.

ConservéNon conservé
ID de l'exécution, organisation, statut, horodatages, planification, chiffres de coût et de consommation, et une catégorie d'erreur générique sans texte du worker.Les événements et la sortie une fois livrée, le texte d'erreur du worker et la définition de l'exécution : prompt, entrée, liste de fichiers et références de connexions. La définition d'une telle exécution ne peut ni être récupérée ni être relancée.
  • Les événements sont toujours diffusés pendant que l'exécution travaille, avec GET /v1/runs/{id}/events sur n'importe quel moteur. Ils sont conservés dans un stockage transitoire et supprimés quelques minutes après la fin de l'exécution.
  • La sortie est renvoyée une seule fois. Le premier GET /v1/runs/{id} après la fin de l'exécution l'inclut et la supprime. Avec un callback, c'est lui qui livre la sortie, et les lectures la laissent en place d'ici là. Dans tous les cas elle est supprimée au plus tard après une heure. output_available et output_expires_at indiquent si elle est encore conservée.
  • Les appels au modèle ne vont qu'à des fournisseurs qui ne conservent pas vos données et ne s'en servent pas pour l'entraînement. Un modèle sans fournisseur de ce type est refusé avec 400 avant toute réservation.
  • Sur le service hébergé, l'exécution coûte 10 % de plus : le supplément s'applique au calcul, aux appels au modèle et aux requêtes web, compte dans le budget et apparaît dans le détail du coût. Les installations auto-hébergées ne facturent rien en plus.
  • Les données transitoires se trouvent dans des tables que toutes les sauvegardes omettent ; une base restaurée ne les contient donc jamais.

Après une exécution

L'exécution conserve sa sortie, son message d'erreur, ses horodatages, ses événements et son coût. Considérez le coût comme définitif lorsque le statut est final et que billing_pending vaut false ; voir budgets et facturation.

Les exécutions terminées sont supprimées 30 jours après leur fin, avec leurs événements. Une exécution est conservée plus longtemps tant que sa facturation, l'envoi de son callback ou le nettoyage de sa microVM sont en attente. Les installations auto-hébergées peuvent modifier la durée de conservation.

Pour relancer la même tâche, récupérez GET /v1/runs/{id}/definition. Cet endpoint renvoie la définition réellement utilisée par l'exécution, sans les identifiants : vous pouvez la relire, fixer un nouveau budget et la soumettre.

Une définition d'exécution conserve le prompt, l'entrée et le contenu des fichiers en ligne que vous avez envoyés. N'y mettez pas de secrets ; utilisez plutôt une connexion enregistrée.
© 2026 EphemeralRéalisé par erni.works
esc

Aucun résultat pour « ».