La herramienta exec de OpenClaw
Una superficie de shell con capacidad de modificación, con resolución del host entre entorno aislado, gateway y nodo, los cinco modos de política de deny a full, el revisor automático, la evaluación en línea estricta, la gestión del PATH y las sobrescrituras por sesión
Exec es la herramienta que hace operativo a un agente y la que merece más cuidado. Es un shell, escribe archivos, y dónde se ejecuta es una cuestión de resolución y no una respuesta fija. Estos son la superficie de parámetros, las reglas de ubicación, los cinco modos de política con el revisor que vive dentro de uno de ellos y los comandos de sesión que pueden endurecer la política, pero nunca relajarla.
Parámetros y ubicación
- El comando es el único parámetro obligatorio; un directorio de trabajo, sobrescrituras de entorno, un retardo antes de pasar a segundo plano, un indicador de segundo plano inmediato, un tiempo de espera por llamada en segundos, un indicador de pseudoterminal para programas que solo funcionan en una terminal, un modo ask, un selector de nodo y un indicador de elevación completan la superficie, y un tiempo de espera de cero desactiva el tiempo de espera del proceso para esa llamada.
- El parámetro host solo admite auto, sandbox, gateway o node y no es un selector de nombre de host; auto hereda el host configurado, incluidas las sobrescrituras de agente y de sesión, y cuando ese también es auto, se resuelve al entorno aislado si hay un runtime de entorno aislado activo y al gateway en caso contrario, mientras que una sesión que requiere entorno aislado se queda en el entorno aislado pase lo que pase.
- Mientras hay un runtime de entorno aislado activo, auto mantiene exec en el entorno aislado y rechaza las sobrescrituras por llamada hacia gateway o node, así que forzar cualquiera de los dos implica establecer explícitamente el host configurado; ejecutar en un nodo requiere un nodo emparejado y conectado que admita el comando de ejecución, y con varios nodos elegibles conectados hay que seleccionar un destino en la configuración o por sesión.
- La ejecución en el host rechaza las sobrescrituras de entorno del PATH y del cargador para evitar el secuestro de binarios, normaliza una sobrescritura del paginador a un valor vacío en lugar de pasar un nombre de ejecutable, establece una variable marcadora para que los perfiles de shell puedan detectar el contexto de exec y, en el gateway, combina el PATH del shell de inicio de sesión mientras carga una instantánea de arranque capturada que excluye las variables con aspecto de secreto.
exec es una superficie de shell con capacidad de modificación: los comandos pueden crear, editar o eliminar archivos allí donde lo permita el sistema de archivos del host o del entorno aislado seleccionado.
Los cinco modos y el revisor
La clave mode es el control de política canónico y todo lo demás se deriva de ella. El modo deny bloquea exec por completo. El modo allowlist ejecuta solo comandos de la lista de permitidos o safe bins y no pregunta nada. El modo ask ejecuta directamente las coincidencias con la lista de permitidos y envía todo lo demás a una persona. El modo auto ejecuta directamente las coincidencias y pasa las no coincidencias elegibles a un revisor nativo que devuelve allow, deny o ask, donde allow ejecuta una vez un comando de riesgo bajo o medio, deny devuelve un motivo que el agente debe respetar en lugar de intentar sortearlo, y tres denegaciones consecutivas en una sesión escalan el tercer comando a una persona. El modo full se ejecuta sin las solicitudes de política ordinarias, y la ejecución en el host sin aprobación es el valor predeterminado para gateway y node por los valores predeterminados de la política del host, no por el host auto. En el gateway, los comandos deben superar las comprobaciones de vinculación de archivos mutables antes de la revisión: toda la cadena de despacho se vincula en el momento de la revisión y se vuelve a comprobar antes del lanzamiento, los ejecutables protegidos por su ruta real resuelta y los que tienen permiso de escritura también por hash de contenido, de modo que un ejecutable nuevo que aparezca antes en la ruta de búsqueda deniega la ejecución aprobada. Los envoltorios de comandos de shell, las asignaciones de entorno y otras cadenas que no se pueden vincular se saltan el revisor y toman en su lugar la vía de aprobación humana de un solo uso.
Evaluación en línea, rutas y sesiones
- La evaluación en línea estricta es una opción aparte, desactivada por defecto: cuando se ejecuta la evaluación ordinaria de aprobaciones del host, exige la aprobación del revisor o una aprobación explícita para las formas reconocidas de intérprete en línea incluso cuando la política permite full y off, cubre los indicadores de evaluación de los intérpretes e intermediarios habituales, y las formas de evaluación en línea nunca se convierten en reglas de permiso persistentes.
- La gestión del PATH varía según el host: el gateway combina el PATH del shell de inicio de sesión y antepone de forma segura los directorios configurados justo antes de la ejecución; el entorno aislado ejecuta un shell de inicio de sesión dentro del contenedor, así que el perfil puede restablecer el PATH, y las entradas configuradas se anteponen después de cargar el perfil; y los hosts de nodo ignoran por completo las sobrescrituras del PATH, así que las entradas adicionales deben ir en el entorno del servicio del nodo.
- Un comando de sesión establece valores predeterminados de ubicación por sesión, mientras que security y ask solo se aplican al mensaje actual; solo se respeta para remitentes autorizados, los remitentes externos pueden hacer persistentes los valores predeterminados de ubicación, mientras que los clientes internos necesitan un scope de administración, y cuando una sesión tiene un modo de permisos, la sobrescritura por turno solo puede endurecerlo, nunca relajarlo.
Las aprobaciones de exec en OpenClaw es el flujo de aprobación que alimentan estos modos, y las aprobaciones de exec avanzadas en OpenClaw, las reglas de safe bins y de vinculación que hay detrás.
Dos errores habituales
El primero es suponer que las herramientas de archivos son la superficie de escritura: desactivarlas no convierte exec en solo lectura, porque el shell escribe allí donde lo permita el host seleccionado. El segundo es suponer que el entorno aislado está activado: está desactivado por defecto, así que un host auto implícito se resuelve al gateway, mientras que una solicitud explícita de entorno aislado falla sin ejecutar nada en lugar de ejecutarse en silencio en el host. Por la misma razón conviene conocer la subherramienta de parches estructurados, ya que permitir la herramienta write la permite implícitamente, mientras que denegar write no la deniega. Desactivar exec por completo es una decisión de política de herramientas, y fuera de una sesión con acceso completo siguen aplicándose los mínimos de aprobación del host. El entorno aislado de OpenClaw, explicado explica el aislamiento, y las skills de OpenClaw, los archivos de instrucciones que suelen dirigir estos comandos.
En Diali
En Diali, cada asistente se ejecuta en su propio motor, con la configuración generada desde el panel y sustituida en cada versión, así que el shell al que llega un agente es el motor de ese cliente y nada más. OpenClaw alojado en Diali describe el asistente alojado, y la seguridad en Diali, el perímetro que lo rodea.
- Desactivar las herramientas de archivos no convierte el shell en solo lectura.
- El entorno aislado está desactivado por defecto; entonces, auto significa el gateway.
- Las sobrescrituras por turno endurecen la política, nunca la relajan.
Deja de leer sobre ello y crea el tuyo
Configura un agente, elige un canal y ponlo a trabajar dentro de la aplicación que ya tienes abierta.
