Skip to main content
Característica en Beta
La ejecución de código permite al asistente ejecutar comandos bash y crear, editar y presentar archivos dentro de un sandbox aislado. Cada hilo de chat (o container de la API) tiene su propio sandbox, que crea bajo demanda el servicio OpenSandbox incluido en el mismo clúster de Kubernetes. Los usuarios la ven en el Workspace cuando trabajan con Skills o generan archivos. Los desarrolladores pueden usarla a través de la API; ver Herramienta de ejecución de código. La ejecución de código está habilitada por defecto en los despliegues estándar de Zylon 1.58. Los operadores pueden controlar su disponibilidad en el chat del Workspace con la siguiente configuración.

Configuración

Ejemplo

Para desactivar las herramientas de ejecución de código en el chat del Workspace:

Cuando está desactivada

Después de configurar features.codeExecution.enabled: false, ejecuta sudo zylon-cli sync para aplicar el cambio. El chat del Workspace elimina las herramientas de ejecución de código antes de enviar las solicitudes al modelo, incluso cuando una Skill las añadiría. El chat normal y las demás herramientas disponibles siguen funcionando; los pasos de una Skill que requieren ejecutar código no pueden ejecutarse a través de ese flujo de chat.
En Zylon 1.58, este flag no desactiva globalmente la ejecución de código a través de la API de ZylonGPT ni elimina el servicio OpenSandbox. El proveedor de GPT se configura por separado y usa OpenSandbox por defecto. Este flag controla el Workspace; la ejecución de código por API puede seguir disponible.

Cómo funciona

  • Un sandbox por hilo. Cada sandbox es un pod en el namespace opensandbox-runtimes, que se crea cuando el asistente ejecuta código por primera vez en un hilo y se apaga tras sessionTTLSeconds de inactividad.
  • Archivos persistentes. Los archivos subidos, las salidas y los archivos del espacio de trabajo se almacenan en el bucket sessions del almacenamiento de objetos de la plataforma, por lo que sobreviven a los reinicios del sandbox y a las actualizaciones de la plataforma.
  • Imágenes descargadas previamente. Las imágenes del sandbox se descargan durante la instalación y la actualización, así que no se necesita acceso al registro cuando arranca un sandbox. Esto también funciona en instalaciones airgapped.

Acceso a la red

Los sandboxes no tienen acceso a internet. Por defecto, un sandbox de ejecución de código solo puede acceder a:
  • DNS.
  • La API de Zylon, para que el código del sandbox pueda llamar al modelo con los permisos del usuario que envió la solicitud.
Para que los sandboxes puedan acceder a otros servicios dentro del clúster, como una base de datos o una API internas, añádelos a external.opensandbox.codeExecution.internal.services. Cada entrada es un peer de NetworkPolicy de Kubernetes:
El código del sandbox lo escribe el modelo de IA. Permite únicamente servicios que no te importe exponer a cualquier usuario que pueda chatear con el asistente.

Recursos

Por defecto, los sandboxes no tienen límites de CPU ni de memoria. Para limitar el total de recursos que pueden usar los sandboxes, habilita la cuota y el rango de límites para el namespace de los sandboxes:

Imágenes del sandbox

La imagen incluye Python 3 con las librerías de datos más habituales (pandas, numpy, matplotlib, openpyxl, python-docx, pypdf, entre otras) y herramientas de línea de comandos como unzip, rg y sqlite3.

Resolución de problemas

Comprueba los sandboxes que están en ejecución:
Revisa los logs del servidor de OpenSandbox:
Si la ejecución de código no está disponible en el chat del Workspace, comprueba features.codeExecution.enabled y ejecuta sudo zylon-cli sync después de cambiarlo. El error code_execution provider is not configured. significa que falta el proveedor de ejecución de código de GPT. Comprueba la configuración del proveedor de GPT y el servicio OpenSandbox; este error no es el resultado esperado de desactivar únicamente el flag del Workspace.