Documentación

El editor visual

Diseña un pipeline con arrastrar y soltar, con validación de contratos lo antes posible.

Un pipeline de betool es un grafo de nodos que ensamblas en el editor visual. Cada tipo de nodo declara del lado del servidor su configuración y las claves que produce; el editor valida el grafo y la configuración antes de dejarte publicarlo.

Anatomía de un pipeline

[Start]──▶[agent]──▶[router]──┬──▶[agent]
                              └──▶[webhook_action]
  • El nodo Start se crea automáticamente con el modelo; lleva los receptores (canales de entrada) que disparan el pipeline. Un mismo Start puede declarar varios.
  • Cada nodo aguas abajo lee las claves producidas por los nodos aguas arriba en el contexto de ejecución.
  • Un router o unos filtros crean ramas; cada ejecución deja una traza consultable.

Conceptos esenciales

Clave de flujo

Una clave es un dato con nombre que circula entre los nodos. Ejemplo: un nodo agent puede escribir su salida bajo exchange.intent, y un nodo aguas abajo (filtro, router) evalúa esa clave.

Lo que un nodo produce lo declara su contrato, de dos formas:

  • Clave fija (fixed_key) — siempre la misma, definida por el tipo de nodo (p. ej. input.entry_kind para el Start).
  • Clave configurable (configurable_key) — elegida en la configuración del nodo (p. ej. la clave de salida de un agent).

Lo que un nodo lee se ajusta en su configuración (el campo evaluado por un filtro, las entradas de un agent…).

Contrato

Cada tipo de nodo expone un contrato declarado del lado del servidor: sus campos de configuración (tipo, valores permitidos, campos obligatorios, valores por defecto) y las claves que produce. El editor se basa en este contrato para construir el panel de configuración y validar lo que introduces.

Configuración

Un nodo también tiene parámetros estáticos (su configuración) — por ejemplo, para un nodo agent: su rol, su misión, sus tools y su modelo LLM.

Secretos

Los campos que el contrato de un nodo o de un receptor declara secretos (secreto HMAC de un webhook entrante, token o contraseña de una llamada HTTP, token de acceso de una Página, secreto de un subpipeline…) nunca se devuelven en claro una vez guardados: ni al editor, ni por la API, ni a las herramientas MCP y a los agentes que leen un pipeline, ni en las propuestas.

En el inspector, un campo así muestra « •••••• guardado — escribe para reemplazar »:

  • si se deja vacío, conserva el secreto guardado;
  • un valor nuevo lo reemplaza;
  • el botón Quitar lo borra (para un secreto HMAC, la verificación de firma queda entonces desactivada).

Copiar y pegar o duplicar un nodo no copia sus secretos: vuelve a introducirlos en la copia.

Crear un pipeline

  1. Modelos → Nuevo — en betool, un modelo contiene tu pipeline.
  2. El lienzo se abre con un nodo Start. Configúralo para elegir el canal o los canales de entrada.
  3. Añade nodos con el botón Añadir un nodo al pasar el ratón sobre un enlace, o con clic derecho sobre un nodo (Añadir un nodo antes / después), y elige su tipo en el catálogo de módulos (búsqueda por nombre).
  4. Conecta los nodos entre sí. El pipeline es un árbol: cada nodo tiene un solo padre.
  5. Haz clic en un nodo para abrir su configuración en el inspector.
  6. Ejecutar una prueba — ejecuta la versión publicada sobre una carga útil introducida libremente, en modo real o en Modo simulación (los nodos con efecto externo se omiten).
  7. Publicar — es obligatorio un mensaje de commit; el pipeline se valida y la nueva versión pasa a ser la que ejecuta el runtime.

Versionado

Cada publicación crea una versión. Desde Versiones, puedes:

  • Comparer una versión con el estado actual (nodos y enlaces añadidos, eliminados, modificados).
  • Recharger una versión en el editor (el borrador se reescribe, sin publicar).
  • Republier una versión anterior (rollback).

Desde el historial, una ejecución pasada procedente de un receptor también puede reproducirse sobre la versión publicada, con una carga útil eventualmente modificada y en modo simulación si hace falta.

Validación

Al publicar, un validador controla el grafo:

  • Bloqueante — ciclo en el grafo; nodo con varios padres; salida obligatoria sin cablear (el cuerpo de un bucle foreach, los hijos de un parallel, cada ruta declarada de un router); número incorrecto de Start; errores propios de un tipo de nodo (p. ej. rol o misión de agent inexistente).
  • Advertencia (no bloqueante) — nodo no alcanzable desde el Start; discrepancia de una configuración existente con el contrato de su nodo.

Al escribir una configuración (editor, propuestas, API), un valor fuera de los valores permitidos o un campo obligatorio ausente se rechazan, con la corrección esperada.

Consecuencia: un pipeline publicado ha superado estos controles estructurales. Los errores restantes corresponden a la ejecución (una llamada a una API de terceros que falla, un parsing inesperado).