
# Workflows y trabajos

Un **workflow** es una cadena de pasos que tus agentes ejecutan por ti: leer
cada mañana los mensajes nuevos de un contexto y publicar un resumen, leer
los documentos que llegan y extraer los datos, responder a un webhook de otro
sistema. Lo construyes una vez en SweetHive y funciona solo.

Los workflows se ejecutan **en tus propios ordenadores**, no en la nube: en
tu [SweetHive Agents Node](agents-node) o en el
[Agents Server](agents-server) de tu empresa. Los modelos de IA, los
documentos y los datos que procesan se quedan en esas máquinas.

Todo lo que se ejecuta por ti aparece en **My agents, Trabajos**: tus
workflows y las peticiones que llegan de las apps de SweetHive (por ejemplo
SweetTimetable leyendo tus tickets, o SweetReach creando un vídeo).

## Crear un workflow

1. Abre **My agents** y elige la pestaña **Workflows**.
2. Haz clic en **Nuevo workflow**. Se abre el editor con un lienzo:
   - a la izquierda, la lista de **pasos** que puedes añadir;
   - en el centro, el **lienzo** con tus pasos y las uniones entre ellos;
   - a la derecha, los **ajustes** del paso seleccionado.
3. Haz clic en un paso de la lista para añadirlo después del seleccionado.
   Para unir dos pasos, arrastra desde el punto a la derecha de un paso hasta
   otro paso.
4. Elige el **agente** con el que se ejecuta el workflow (barra superior).
   Los pasos que leen o publican en tus hives usan ese agente, así que el
   workflow nunca ve más de lo que puede ver el agente.
5. **Guarda**. Cada cambio en los pasos guarda una nueva versión; las
   ejecuciones ya iniciadas mantienen la versión con la que empezaron.
6. Pulsa **Ejecutar** para probarlo: cada paso del lienzo muestra su estado
   en vivo (en espera, en curso, hecho, fallido) y, al terminar, su
   resultado.

## Cuándo empieza un workflow

Selecciona el primer paso (el disparador) para elegir cómo empieza el
workflow:

- **Manual** - cuando pulsas Ejecutar, en el editor o en la lista de
  Workflows.
- **Programado** - a horas fijas: cada hora, todos los días a las 8:00, de
  lunes a viernes a las 9:00, o cualquier programación que escribas tú (cron)
  en tu zona horaria.
- **Evento de la hive** - cuando hay un nuevo mensaje, archivo, tarea, evento
  o correo en un hive (si quieres, solo en un contexto).
- **Webhook** - cuando otro sistema llama a la URL del workflow. El secreto
  se muestra una sola vez: cópialo al crearlo.
- **Evento de una app** - cuando una app conectada emite un evento (por
  ejemplo un nuevo lead en SweetCRM).

Puedes pausar un workflow en cualquier momento con su interruptor
**Activo**.

## Los pasos

| Grupo | Pasos |
|---|---|
| SweetHive | **Leer contexto** (mensajes, archivos, tareas de un contexto), **Publicar en el contexto** |
| IA en tu ordenador | **Generar texto**, **Extraer datos** (de texto a datos estructurados), **Leer documento** (de PDF, escaneos y fotos a texto y datos), **Crear vídeo** |
| Integraciones | **Petición HTTP** (solo https; las redes privadas están bloqueadas) |
| Datos | **Definir valores**, **Transformar lista**, **Filtrar lista** |
| Flujo | **Si** (dos ramas), **Repartir** (una rama por caso), **Esperar** |

Un paso puede usar los resultados de los anteriores. En cualquier campo de
texto, inserta una variable con los botones que hay bajo los ajustes, por
ejemplo `{{ $steps.summary.output.text }}` (el texto generado por el paso
llamado *summary*) o `{{ $trigger }}` (lo que inició el workflow). No hay
que escribir código.

## Dónde se ejecutan los pasos

Cada paso se ejecuta en uno de tus ordenadores:

- por defecto se queda en el **mismo ordenador que el paso anterior** (el
  modelo ya está cargado, los archivos ya están ahí);
- pasa a **otro ordenador** cuando necesita algo que el primero no tiene: un
  modelo que vea imágenes, un contexto más grande, un render worker. También
  puedes dejar que un paso se ejecute en **cualquier ordenador disponible**
  (*Dónde se ejecuta* en sus ajustes).

Si ahora mismo ninguno de tus ordenadores puede ejecutar un paso, el trabajo
espera y te dice por qué (por ejemplo *Esperando a uno de tus ordenadores:
abre SweetHive Agents Node y empieza solo*). Empieza solo en cuanto un
ordenador adecuado está en línea.

## Sigue tus trabajos

**My agents, Trabajos** muestra lo que se está ejecutando y lo que se
ejecutó, empezando por lo más reciente. Cada trabajo indica quién lo inició
(un workflow o una app), cuántos pasos están hechos, qué ordenador lo está
ejecutando y, cuando algo sale mal, el motivo en palabras sencillas: el
modelo no está instalado, el documento es demasiado largo para el modelo, el
enlace al archivo caducó, el ordenador dejó de responder.

- **Cancelar** detiene un trabajo en espera o en curso.
- **Reintentar** vuelve a ejecutar un trabajo fallido o cancelado.
- Abre un trabajo para ver cada paso, el ordenador y el modelo que usó,
  cuánto tardó y su resultado.

Cuando el problema está en el ordenador (un modelo que falta, un contexto
demasiado pequeño, el ordenador apagado), el trabajo no gasta sus intentos:
pasa a otro ordenador o espera. Cuando el problema está en los datos de
entrada (un documento ilegible, una respuesta a la que el modelo no supo dar
formato), se reintenta una vez y después se notifica.

El SweetHive Agents Node muestra la misma lista en su sección **Trabajos**:
lo que está haciendo ahora y lo que hizo recientemente.

## Privacidad

- Un workflow se ejecuta **como uno de tus agentes**: solo ve los hives y
  los contextos que ese agente puede ver, y solo puede publicar si ese
  agente puede publicar.
- Los pasos de IA se ejecutan **en tus ordenadores** con modelos locales.
- Los archivos que pasan de un paso a otro se guardan 7 días y después se
  eliminan. Los enlaces a los documentos enviados por las apps nunca se
  muestran en las listas de trabajos.
