En este artículo
SmythOS Studio en tu servidor: Docker, costes y límites
Un constructor visual de agentes resulta mucho más interesante cuando tanto el editor como su entorno de ejecución pueden quedarse en una infraestructura que controlas. Ese es el atractivo de SmythOS Studio: conectar modelos de lenguaje, API y lógica en un lienzo, inspeccionar el flujo durante su construcción y ejecutarlo mediante SmythOS Runtime Environment, o SRE. El repositorio describe despliegues como chatbot y API, no solamente un editor de diagramas. Consulta el repositorio y la organización de sus paquetes.
La distinción importante es entre software gratuito, una aplicación local y un servicio preparado para producción. Studio ofrece lo primero y una vía hacia lo segundo. Lo tercero sigue necesitando un plan de operación.
Fuentes revisadas el . Los detalles del repositorio se refieren al commit 3e1ea87e6718fdfdb24365b2184fbd1daa9f94f8. Este artículo analiza documentación y código fuente; no es una prueba práctica de despliegue. La configuración propuesta y los criterios de aceptación no se han ejecutado contra una instancia de Studio en funcionamiento.
¿SmythOS Studio es realmente gratuito y de código abierto?
El repositorio de Studio revisado tiene licencia MIT. Permite utilizar, modificar y distribuir el software, también comercialmente, conservando los avisos de derechos de autor y permisos exigidos. No incluye garantía. Esta afirmación se refiere a la licencia del software, no a que todos los modelos, dependencias, integraciones o servicios alojados de SmythOS tengan las mismas condiciones. Revisa el texto de la licencia MIT.
Para un despliegue autoalojado, separa cuatro partidas: inferencia, infraestructura, herramientas externas y trabajo de operación. Un editor gratuito no convierte en gratuita una llamada a un modelo de pago. Ejecutar un modelo local traslada el coste a tu hardware y su operación, en lugar de eliminarlo.
Nuestra fórmula presupuestaria propuesta es: coste operativo mensual = cómputo y almacenamiento + uso de modelos + API de pago + trabajo operativo. Calcula la implementación por separado. Para una metodología más amplia, utiliza nuestra guía de coste por acción de agentes de IA y no confundas el precio del repositorio con el coste del flujo completo.
¿Qué puedes construir en el lienzo visual?
La documentación de componentes incluye llamadas a API, transformaciones JSON, pasos con modelos de lenguaje, bucles y ramas paralelas. Por eso merece la pena evaluar Studio para procesos acotados: clasificar una solicitud, consultar un servicio interno y redactar una respuesta. Son componentes documentados, no pruebas de que cualquier proceso empresarial esté listo sin configuración. Explora los componentes de flujo documentados.
También hay una salida cuando los bloques predefinidos no bastan. El componente Code admite JavaScript para transformar datos, validar entradas y ejecutar lógica ligera. Su interfaz documentada utiliza _output para resultados y _error para información de errores estructurada. Así, un desarrollador puede expresar una regla determinista en código en vez de pedir al modelo que la interprete. Consulta el contrato de entradas y salidas del componente Code.
Nuestra opinión: el valor del lienzo no consiste en eliminar la ingeniería, sino en hacer visible la secuencia prevista a quienes conocen el proceso. Aun así, hay que definir qué sucede cuando una API agota el tiempo de espera, falta un resultado o una acción no está autorizada.
¿Cómo se instala SmythOS Studio con Docker?
Para una evaluación, utiliza la instalación con Docker, no las instrucciones separadas del entorno de desarrollo local. La guía del repositorio revisada especifica Docker Compose v2, al menos 8 GB de RAM y 10 GB de disco libre. Son requisitos de instalación de esa guía, no estimaciones de capacidad para tus agentes o modelos locales. Lee la guía de Docker del repositorio.
Empieza por clonar el repositorio y crear el archivo de entorno:
git clone https://github.com/SmythOS/smythos-studio.git
cd smythos-studio
git checkout --detach 3e1ea87e6718fdfdb24365b2184fbd1daa9f94f8
cp .env.compose.example .env
chmod 600 .env
El checkout fija la revisión de las fuentes de configuración, no la imagen de la aplicación. Compose sigue utilizando una etiqueta de imagen mutable, como explicamos más adelante.
Antes de arrancar, edita .env. Sustituye los secretos de ejemplo de base de datos, Redis y sesiones, y configura las credenciales de tu proveedor. Genera un valor fuerte y diferente para cada secreto, por ejemplo con openssl rand -hex 32, y evita incluir el archivo en el control de versiones o en registros compartidos. La plantilla contiene credenciales de ejemplo, LOG_LEVEL="debug", una URL HTTP y ENABLE_TLS=false. Inspecciona la plantilla exacta de entorno de Compose.
Para evaluar únicamente desde tu portátil, proponemos estas modificaciones de los valores existentes en .env, no un perfil adicional de despliegue. Añade la variable del dashboard porque no figura en la plantilla:
EXPOSE_TRAEFIK_PORT=127.0.0.1:6060
EXPOSE_HTTPS_TRAEFIK_PORT=127.0.0.1:6062
EXPOSE_TRAEFIK_DASHBOARD_PORT=127.0.0.1:8089
LOG_LEVEL=info
Estos valores utilizan el campo de dirección del host en los mapeos de puertos de Compose revisados. Sin una dirección explícita, Docker suele publicar los puertos en todas las interfaces del host. Abrir una aplicación mediante localhost no la hace automáticamente inaccesible desde la red. Usa una versión actual de Docker y comprueba los enlaces efectivos; Docker documenta una limitación de los puertos publicados en localhost en versiones anteriores a 28.0.0. Comprueba cómo publica Docker los puertos.
Tras revisar el entorno, inicia el conjunto de servicios:
docker compose config --quiet && docker compose up -d
docker compose ps
docker compose logs --tail=100 smythos
Abre http://localhost:6060 cuando los servicios estén disponibles. Mantén esta configuración local separada de cualquier despliegue público posterior. No expongas la instancia de evaluación a internet solamente para facilitar una demostración.
¿Qué ejecuta realmente el conjunto de Docker?
El archivo Compose revisado define cinco servicios. Es un pequeño sistema de aplicaciones, no una única aplicación de navegador. Su topología, datos montados y etiquetas de imagen están disponibles en el código fuente. Inspecciona los cinco servicios y sus valores predeterminados.
| Servicio | Función en la configuración revisada |
|---|---|
traefik | Enruta tráfico de aplicación y runtime; incluye configuración TLS y un dashboard. |
smythos | Ejecuta los servidores de aplicación y runtime en los puertos internos 5050 y 5053. |
mysql | Conserva el estado de la base de datos en el volumen mysql_data. |
redis | Proporciona el servicio Redis configurado con almacenamiento persistente. |
git-sync | Sincroniza periódicamente un repositorio público de configuraciones de modelos en el directorio montado correspondiente. |
git-sync introduce un matiz importante en la frase «sin una plataforma intermediaria». Su repositorio predeterminado es SmythOS/sre-models-pub y el intervalo configurado por defecto es 600s. Sincroniza contenido del repositorio, no proporciona un servicio local de inferencia. Su presencia no hace que los modelos funcionen sin conexión. Consulta la sincronización y los montajes.
La imagen de aplicación de esta revisión es smythos/smythos-studio:alpha. Fijar Git no fija esa imagen. Para un piloto reproducible, registra el digest de la imagen realmente utilizada y la exportación del agente. Antes de actualizar, prueba la nueva versión con las mismas entradas y una copia restaurable del estado necesario.
¿Por qué podrían fallar localhost:6060 o la URL de un agente?
Primero comprueba la vía de instalación. La guía web de autoalojamiento muestra http://localhost y utiliza APP_BASE_URL, mientras que la plantilla Compose fijada utiliza APP_URL con el puerto 6060. No mezcles variables de distintas guías sin contrastarlas con las fuentes de la revisión elegida. Compara la guía web con las instrucciones del repositorio.
Después comprueba los tres valores relacionados con los puertos. EXPOSE_TRAEFIK_PORT controla el mapeo del host. APP_URL describe la dirección de la aplicación en el navegador. AGENT_DOMAIN_PORT aparece por separado con valor 6060. Cambiar únicamente el puerto publicado puede dejar las URL generadas apuntando a otro sitio.
Que funcione el editor no demuestra que funcione la ruta del runtime. La plantilla utiliza dev.agent.oss.smyth.ai para el runtime y los agentes de desarrollo, y prod.agent.oss.smyth.ai para producción. Verifica la resolución en los equipos que necesitan esos nombres, el destino resultante y el enrutamiento por host de Traefik. Un hostname facilitado por el proveedor no demuestra que el runtime esté alojado por ese proveedor. Revisa las variables exactas de dominio y URL.
Ante un 502 o un servicio no disponible, inspecciona la infraestructura antes de editar el flujo. Empieza con docker compose ps y registros limitados. El healthcheck de la aplicación comprueba ambos servidores HTTP internos. Las credenciales de base de datos, los permisos de directorios montados y el arranque del runtime son puntos de fallo distintos; un cambio en el lienzo no los resuelve.
¿Qué debes cambiar antes de un despliegue público?
La siguiente tabla recoge nuestros criterios de revisión. No afirma que la distribución predeterminada ya los cumpla.
| Comprobación | Evidencia exigible antes de publicar |
|---|---|
| Exposición pública | Solo son accesibles los puntos de entrada previstos. El dashboard de evaluación y los servicios internos no están expuestos públicamente. |
| Credenciales y acceso | Se han cambiado los secretos de ejemplo; login, autorización del endpoint del agente y solicitudes rechazadas se prueban por separado. |
| Reproducibilidad | Se registran revisión de Studio, digest real de imagen, exportación del agente y configuración relevante de modelos. |
| Recuperación | Base de datos, almacenamiento de aplicación y material necesario del vault se restauran en un entorno limpio. |
| Llamadas externas | Los destinos de modelos, API, sincronización y ejecución de código se conocen y restringen cuando corresponde. |
| Gestión de fallos | Errores del proveedor, salidas inválidas y reintentos se gestionan de forma segura sin duplicar acciones externas. |
Elimina la ruta insegura del dashboard
El Compose fijado activa --api.insecure=true y publica el dashboard en el puerto 8089 del host por defecto. También define un router api@internal. Desactivar únicamente el indicador inseguro no completa la revisión de exposición: elimina el puerto y el router no deseados o protege una ruta administrativa intencionada mediante autenticación y restricciones de red. Traefik advierte expresamente contra ese modo inseguro en producción. Lee la advertencia de Traefik sobre el dashboard.
Separa hostnames de URL y verifica TLS
La guía de producción del repositorio incluye https:// en los ejemplos de APP_DOMAIN y RUNTIME_DOMAIN, pero Compose interpola esos valores en reglas Host(...) de Traefik. Nuestra recomendación basada en el código es usar hostnames sin esquema en los campos de dominio y URL completas en los campos de URL:
APP_DOMAIN=studio.example.com
APP_URL=https://studio.example.com
RUNTIME_DOMAIN=runtime.example.com
RUNTIME_URL=https://runtime.example.com
Es un ejemplo de nomenclatura, no una configuración completa de producción. Configura los demás dominios de agentes, DNS, puertos de entrada, redirecciones y TLS según tu entorno. Prueba por separado editor, runtime y rutas de agentes publicados. Compara las reglas Host con la configuración anterior.
El resolver incluido utiliza un desafío HTTP. Eso no proporciona automáticamente un certificado wildcard para cualquier subdominio de agente. Traefik documenta DNS-01 para certificados wildcard: configura esa vía o utiliza hostnames cubiertos individualmente y comprueba el certificado realmente servido. Consulta los requisitos ACME y wildcard de Traefik.
Inventaría lo que sale del equipo
El alojamiento local indica dónde se ejecuta parte del sistema, no dónde se procesa cada dato. Un LLM en la nube, un conector de API o un componente de ejecución remota pueden seguir recibiendo datos del flujo.
Por ejemplo, la documentación de NodeJS (Serverless) de SmythOS describe ejecución en AWS Lambda. No confundas ese componente con el bloque Code ligero ni supongas que todas las funciones documentadas para el producto se ejecutan localmente en Community. Comprueba el componente elegido, la edición y el backend configurado. Lee la ruta de ejecución documentada con Lambda.
El montaje .smyth contiene más que el directorio de modelos sincronizados: los comentarios de Compose identifican configuración del vault y almacenamiento del runtime. Copia los directorios realmente utilizados, controla el acceso a las copias y prueba la recuperación. Una copia de la base de datos por sí sola no demuestra que puedas restaurar el despliegue completo del agente. Revisa los montajes de la aplicación.
Un primer flujo útil: redactar una respuesta de soporte sin enviarla
Nuestro piloto propuesto está deliberadamente acotado: recibir una solicitud sintética, validar sus campos, consultar información autorizada, redactar una respuesta y devolverla a una persona revisora. No concedas permisos para enviar mensajes, emitir reembolsos o modificar cuentas en la primera iteración.
Asigna cada paso a una parte visible del flujo. Usa validación determinista para campos obligatorios, un paso de API para acceso permitido, un paso de modelo para redactar y un tratamiento explícito de la falta de evidencia. Es un diseño propuesto, no una plantilla incluida en Studio que hayamos probado.
La pregunta de aceptación no es «¿todos los bloques terminaron en verde?». Es si la información recuperada respalda la respuesta y si el sistema se detiene de manera segura cuando esa información falta. Incluye un registro no autorizado, un timeout del proveedor, datos malformados y una instrucción dentro del contenido recuperado que pida saltarse las reglas. Cualquier autorización posterior de escritura debe quedar fuera de la discreción del modelo.
Para decidir la arquitectura, utiliza nuestra guía de patrones de diseño de agentes. Este artículo evalúa Studio como entorno visual y autoalojado, no sustituye todo el proceso de diseño del agente.
¿Puedes ejecutar un agente de Studio sin el editor visual?
Existe una vía de exportación documentada. SmythOS describe cómo exportar un archivo .smyth desde Studio y ejecutarlo con la CLI de SRE. Tras instalar y configurar una CLI compatible, el comando documentado es:
sre run ./my-agent.smyth
Es una forma práctica de comprobar si el flujo puede salir de su entorno de creación. Lee el flujo de trabajo de Studio a la CLI.
No consideres la exportación una copia de seguridad completa ni un despliegue automáticamente portable. Identifica las credenciales, configuración de modelos, almacenamiento, código personalizado y conectores necesarios. Ejecuta el archivo en un entorno limpio y compara sus resultados y fallos con la versión del editor. Acceder al código reduce un tipo de dependencia; no elimina el trabajo de migración.
Para distinguir editor, runtime y controles de fiabilidad, consulta nuestra guía de ingeniería del harness de agentes.
¿Cuándo merece la pena evaluar SmythOS Studio?
Nuestra valoración: considera Studio cuando necesites un flujo visual que los especialistas de negocio puedan inspeccionar, los desarrolladores ampliar y tu equipo operar en la infraestructura elegida. Empieza con un proceso útil y una prueba de aceptación explícita, no con la promesa de automatizar un departamento entero.
Un servicio gestionado puede resultar más práctico cuando nadie asume actualizaciones, recuperación y resolución de incidentes. Una implementación centrada en código puede encajar mejor cuando gran parte del flujo ya es personalizado o necesitas principalmente integrar una biblioteca. Son decisiones sobre el modelo operativo, no afirmaciones de superioridad universal de una interfaz.
Los servicios de ingeniería de IA de Wavect abarcan implementación y preparación para producción. Nuestro caso de Twinsoft AI muestra experiencia de implementación relacionada, no un despliegue de referencia de SmythOS Studio. Define las evidencias con la lista de comprobación de QA previa al lanzamiento o consulta con Wavect sobre un piloto de agentes autoalojados.
Preguntas frecuentes sobre el autoalojamiento de SmythOS Studio
¿SmythOS Studio es gratuito para uso comercial?
El repositorio de Studio revisado utiliza la licencia MIT, que permite el uso comercial respetando sus requisitos de atribución. Las API de modelos, la infraestructura, las dependencias y los servicios alojados pueden tener otros costes y condiciones. El código gratuito no equivale a una operación sin costes.
¿SmythOS Studio autoalojado mantiene todas las solicitudes en local?
No de forma automática. El editor y el runtime pueden ejecutarse en tu infraestructura, mientras que modelos, API y componentes configurados pueden enviar datos a otros sistemas. El Compose revisado también sincroniza un repositorio externo de configuraciones de modelos. Revisa el flujo real y sus destinos de red.
¿Qué archivo de entorno debo usar para Docker Compose?
Para la revisión analizada, copia .env.compose.example a .env. El archivo .env.example corresponde a otra vía de instalación. Sustituye las credenciales de ejemplo antes de arrancar y verifica las variables en la revisión elegida, sin mezclar instrucciones de guías distintas.
¿Por qué la aplicación local usa el puerto 6060?
La plantilla de Compose establece EXPOSE_TRAEFIK_PORT en 6060 y APP_URL como una URL HTTP con ese puerto. El runtime y las URL de agentes tienen otras variables relacionadas. Cambiar solo el puerto publicado no actualiza necesariamente todas las direcciones generadas.
¿En qué se diferencian SmythOS Studio y SRE?
Studio es el entorno visual de creación y administración. Su paquete de runtime ejecuta agentes mediante SmythOS Runtime Environment, o SRE. La vía documentada de la CLI permite ejecutar un agente .smyth exportado sin el editor completo, pero las credenciales y las integraciones siguen necesitando configuración.
¿Puedo añadir código a un agente visual de SmythOS?
Sí. El componente Code documentado admite JavaScript para lógica ligera y transformaciones. Otros componentes tienen requisitos de despliegue distintos. En particular, la documentación de NodeJS (Serverless) describe AWS Lambda; no asumas que toda ejecución personalizada es local.
¿El Docker Compose predeterminado está listo para producción pública?
Un arranque correcto no es una aprobación para publicar. La configuración revisada incluye secretos de ejemplo, una ruta de dashboard insegura y una imagen alpha mutable. Revisa exposición, autorización, TLS, fijación de imágenes, llamadas externas, copias y gestión de fallos, y prueba el despliegue antes de hacerlo público.
Reflexiones finales
SmythOS Studio merece una evaluación acotada cuando importan la creación visual y el control del despliegue. Empieza con un flujo limitado que solo genere borradores. Registra las revisiones del código y de la imagen, conserva la primera instancia en local y exige pruebas de acceso, errores y recuperación antes de convertir el prototipo en un servicio.
