Conceptos

Ejecuciones

Un agente en una microVM desechable, desde la cola hasta la liquidación.

Una ejecución es un agente que trabaja en una tarea en su propia microVM. Envías un prompt, una entrada JSON y los archivos y conexiones que puede usar. Ephemeral la pone en cola, inicia una máquina nueva, registra cada paso y destruye la máquina cuando termina la ejecución.

De qué se compone una ejecución

Toda ejecución tiene un prompt y una entrada opcional. El resto de la definición decide qué modelo usa, qué puede leer, a qué puede llamar, cuánto puede tardar y cuánto puede gastar. Puedes enviar toda la definición en línea, o indicar el nombre de un flujo de trabajo guardado y enviar solo la entrada.

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
}

Dentro de la microVM, el agente siempre puede leer los archivos que montaste. Con shell activado, que es lo predeterminado, también puede ejecutar comandos de shell y escribir archivos en su directorio de trabajo. Cada conexión que concedes añade herramientas a las que puede llamar, y con el acceso web activado puede leer páginas, buscar y llamar a API públicas. La máquina en sí no tiene internet. El directorio de trabajo se descarta junto con la máquina, así que nada pasa a la siguiente ejecución.

Ciclo de vida

Una ejecución pasa por estos estados. Los últimos cinco son finales; cuando una ejecución llega a uno de ellos, ya no vuelve a cambiar.

EstadoSignificado
reservingSolo en el servicio alojado. Se están reservando los créditos del presupuesto de la ejecución.
queuedEsperando un hueco libre de worker.
startingSacada de la cola. Se están cargando la definición y los archivos.
runningLa microVM se está iniciando o el agente está trabajando.
succeededEl agente terminó y devolvió un resultado.
failedEl worker falló, o no se pudieron reservar los créditos. El campo error indica cuál de los dos.
cancelledAlguien canceló la ejecución.
timed_outLa ejecución alcanzó su tiempo límite antes de terminar.
interruptedEl motor se reinició durante la ejecución, o la admisión no se completó.

Las ejecuciones salen de la cola en el orden en que se crearon. Una instalación autoalojada ejecuta dos a la vez por defecto; el resto espera en queued. El tiempo límite se cuenta desde el momento en que una ejecución sale de la cola, así que el tiempo de espera no lo consume.

Límites

LímiteValor
timeout_secondsDe 1 a 3600. Por defecto 300.
Prompt128 KiB
Entrada1 MiB de JSON
Archivos32 por ejecución, 1 MiB cada uno, 4 MiB en total
Conexiones16 por ejecución
Llamadas al modelo100 por ejecución
Salida por respuesta del modeloEl límite propio del modelo, hasta 32000 tokens, reducido para ajustarse a lo que queda del presupuesto. Una respuesta cortada en el límite se continúa automáticamente, como máximo dos veces.
Solicitudes y búsquedas web50 por ejecución, cuando el acceso web está activado
ResultadoHasta 1 MiB. Una respuesta más larga se corta ahí, y la ejecución registra que se cortó.
EventosEl registro conserva hasta 256 KiB por evento y 10000 eventos o 16 MiB por ejecución. Los resultados de herramientas más grandes se acortan en el registro y se marcan; el agente los sigue recibiendo completos. Cuando el registro se llena, el detalle posterior se omite y se cuenta. Ninguno de los dos casos hace fallar nunca la ejecución.
max_cost_microsDe 1 a 100000000 (hasta $100)

Seguir una ejecución

Hay tres formas de saber qué está haciendo una ejecución y cuándo termina.

  • Consulta GET /v1/runs/{id} repetidamente hasta que el estado sea final.
  • Transmite GET /v1/runs/{id}/events. Es un flujo de eventos enviados por el servidor que reproduce todo lo registrado hasta el momento y después continúa en vivo hasta que termina la ejecución.
  • Configura un callback en la ejecución. Ephemeral envía una solicitud firmada a tu servidor cuando la ejecución alcanza un estado final.

Cerrar el flujo de eventos no afecta a la ejecución. Puedes reconectarte con el último ID de evento que recibiste y continuar desde ahí.

Tipos de evento

TipoSe registra cuando
statusLa ejecución empieza a ejecutarse o alcanza un estado final.
microvm_startingEphemeral solicita una microVM.
microvm_readyLa microVM está en marcha.
worker_startedSe inicia el proceso del agente. Incluye si el shell está activado.
connection_readyUna conexión MCP está lista, con las herramientas a las que puede llamar la ejecución.
tool_startEl agente llama a una herramienta. Incluye los argumentos.
tool_endUna llamada a una herramienta devuelve un resultado. Incluye el resultado y si fue un error. Un resultado de más de 256 KiB se acorta aquí e incluye trimmed_from_bytes.
text_deltaEl modelo transmite texto, en lotes unas diez veces por segundo.
model_usageTermina una respuesta del modelo. Uso de tokens según informa el worker; no se usa para la facturación.
usageEphemeral autoriza o concilia el coste de una llamada al modelo.
connectionEl motor hace una solicitud HTTP o una llamada a una herramienta MCP en nombre de la ejecución.
web_requestEl motor envía una solicitud web para el agente. Incluye la URL, el estado, el coste y la comprobación de seguridad.
web_searchEl motor realiza una búsqueda web para el agente.
web_refusedUna solicitud o búsqueda web se rechazó antes de enviarse. Incluye el motivo.
resultEl agente devuelve su resultado final. El campo output de la ejecución lo contiene entero; este evento puede estar acortado.
model_call_refusedSe rechazó una llamada al modelo, por ejemplo porque su coste en el peor caso supera lo que queda del presupuesto. Incluye el motivo.
output_limitUna respuesta alcanzó el límite de salida del modelo y se pidió al agente que continuara.
output_truncatedEl resultado final superaba 1 MiB y se cortó ahí.
events_skippedEl registro de la ejecución se llenó, así que los eventos posteriores no se almacenaron. Incluye cuántos.
worker_errorEl worker se detiene con un error.
microvm_terminatedSe confirma que la microVM ha sido destruida.
microvm_cleanup_pendingAún no se pudo confirmar la terminación y se reintentará.
doneÚltimo mensaje del flujo. Lleva el objeto de ejecución final.

Ephemeral elimina los valores de credenciales conocidos, como los tokens de las conexiones, de los eventos y del resultado antes de almacenarlos. La referencia de la API muestra el formato exacto del flujo.

Cancelar una ejecución

POST /v1/runs/{id}/cancel detiene una ejecución que está en reserving, queued, starting o running. Se detiene el worker y se termina la microVM. Cancelar una ejecución que ya ha terminado no cambia nada.

La cancelación no puede deshacer acciones externas
Si el agente ya llamó a una API que cambió algo, como emitir un reembolso, cancelar la ejecución no lo revierte. Lo mismo se aplica a las ejecuciones que fallan, agotan el tiempo límite o se interrumpen. Ephemeral nunca reintenta una ejecución automáticamente, así que tampoco se repite un efecto secundario.

Retención cero de datos

Establece zero_data_retention en true en una ejecución, o en un flujo de trabajo guardado, cuando la tarea sea sensible. Ephemeral no registra entonces nada del contenido de la ejecución: solo recibes la salida.

Se conservaNo se conserva
ID de la ejecución, organización, estado, marcas de tiempo, programación, cifras de coste y uso, y una categoría de error genérica sin texto del worker.Los eventos y la salida una vez entregada, el texto de error del worker y la definición de la ejecución: prompt, entrada, lista de archivos y referencias a conexiones. La definición de una ejecución así no se puede consultar ni volver a ejecutar.
  • Los eventos siguen llegando en directo mientras la ejecución trabaja, con GET /v1/runs/{id}/events en cualquier motor. Se guardan en un almacén transitorio y se eliminan unos minutos después de que termine la ejecución.
  • La salida se devuelve una vez. El primer GET /v1/runs/{id} tras terminar la ejecución la incluye y la elimina. Si hay un callback, este entrega la salida y las lecturas la dejan en su sitio hasta entonces. En cualquier caso se elimina como máximo después de una hora. output_available y output_expires_at indican si todavía se conserva.
  • Las llamadas al modelo van solo a proveedores que no conservan tus datos ni entrenan con ellos. Un modelo sin un proveedor así se rechaza con 400 antes de reservar nada.
  • En el servicio alojado la ejecución cuesta un 10 % más: el recargo se aplica al cómputo, las llamadas al modelo y las solicitudes web, cuenta para el presupuesto y aparece en el desglose del coste. Las instalaciones autoalojadas no cobran nada extra.
  • Los datos transitorios viven en tablas que todas las copias de seguridad omiten, así que una base de datos restaurada nunca los contiene.

Después de una ejecución

La ejecución conserva su resultado, mensaje de error, marcas de tiempo, eventos y coste. Considera el coste como definitivo cuando el estado es final y billing_pending es false; consulta presupuestos y facturación.

Las ejecuciones terminadas se eliminan 30 días después de finalizar, junto con sus eventos. Una ejecución se conserva más tiempo mientras su facturación, la entrega del callback o la limpieza de la microVM siguen pendientes. Las instalaciones autoalojadas pueden cambiar el periodo de retención.

Para volver a ejecutar la misma tarea, obtén GET /v1/runs/{id}/definition. Devuelve la definición que la ejecución usó realmente, sin credenciales, para que puedas revisarla, fijar un nuevo presupuesto y enviarla.

La definición de una ejecución conserva el prompt, la entrada y el contenido de los archivos en línea que enviaste. No incluyas secretos en ellos; usa en su lugar una conexión guardada.
© 2026 EphemeralProducido por erni.works
esc

Nada coincide con “”.