#Agent without shell access

1 messages · Page 1 of 1 (latest)

uneven solar
#

Mi agente perdió completa capacidad para almacenar datos en memorias o ejecutar comandos en shell. El VPS es completamente suyo para hacer lo que desee y con las últimas actualizaciones, su capacidad agéntica se vio completamente capada.

wind bloomBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

agile tartanBOT
#

Esto casi siempre es política de tools (te estás quedando sin exec/write/edit) y/o exec approvals bloqueando el host. Con las versiones recientes es muy fácil “capar” sin querer al agente con tools.profile + tools.allow.

1) Primero: ¿te pasa en DM o solo en canales/grupos?

Ojo que en contextos de grupo OpenClaw intenta ser más conservador, y además MEMORY.md está pensado para cargarse solo en sesión privada (DM), no en canales. Docs: https://docs.openclaw.ai/concepts/memory

2) Check rápido (pásame el output)

En el VPS:

openclaw --version
openclaw status --all
openclaw gateway status

openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny
#

Y si puedes, pega el bloque tools: { ... } y el agent que usas desde tu openclaw.json (sin tokens).

3) Causa más común: tools.profile quedó en “minimal/messaging”

Si tools.profile está en minimal o messaging, el modelo ni siquiera ve herramientas de runtime/fs, así que:

  • no puede ejecutar shell (exec/process)
  • no puede escribir archivos (y por ende “memoria” no persiste)

Solución típica: dejarlo en coding o full:

{
  tools: { profile: "coding" }
  // o: tools: { profile: "full" }
}

Docs de perfiles/grupos (group:fs, group:runtime, etc.): https://docs.openclaw.ai/tools

#

4) Si exec existe pero “se niega”: exec approvals

Aun con exec habilitado, puede bloquearse por approvals (default puede ser deny). Mira:

  • ~/.openclaw/exec-approvals.json
  • o Control UI → Nodes → Exec approvals (si lo usas)

Docs: https://docs.openclaw.ai/tools/exec-approvals

Importante: si habilitas exec “full” en un canal donde otros pueden hablarle al bot, es literalmente “shell al internet”. Asegúrate de que el acceso esté limitado solo a ti.

Pega esos outputs y te digo exactamente qué clave/config te está limitando.

uneven solar
#
  1. El agente no tiene acceso a canales ni grupos. Solo estamos en privado vía Discord y Telegram.
  2. Versión: OpenClaw 2026.3.8 (3caab92)
  3. Confirmado. Se encuentra en "messaging"
    Cómo puedo modificarlo para acceder full al VPS como venía haciéndolo hasta ahora? Porque he modificado el archivo "exec-approvals.json" con los siguientes parámetros, pero sigue sin funcionar:
    { "service": { "baseURL": "http://localhost:3333", "token": "AQUI_VA_EL_TOKEN" }, "defaults": { "exec": "full" }, "agents": { "main": { "exec": "full" } } }
agile tartanBOT
#

Perfecto: si tools.profile está en "messaging", el modelo no recibe herramientas de filesystem/runtime, así que aunque tengas approvals “full”, el agente no puede ni escribir memoria ni hacer exec (porque esas tools ni existen para él en ese perfil).

A) Volver a “full” (o “coding”) como antes

En el VPS:

openclaw config set tools.profile "full"
openclaw config validate
openclaw gateway restart

Si prefieres algo menos “Dios-mode” pero con shell + archivos + memoria, usa:

openclaw config set tools.profile "coding"
openclaw config validate
#
openclaw gateway restart

Luego confirma:

openclaw config get tools.profile

Docs de tool profiles/grupos: https://docs.openclaw.ai/tools

Si sigue sin aparecer exec

Revisa si lo estás capando por otro lado:

#
openclaw config get tools.allow
openclaw config get tools.deny
openclaw config get tools.byProvider
openclaw config get agents.list

(Especialmente tools.byProvider o un override en agents.list[i].tools.profile, que puede volver a “minimal/messaging” solo para tu provider/model.)


B) Tu exec-approvals.json no tiene el schema actual

Ese formato con service.baseURL/token no corresponde al sistema actual de approvals, por eso “no hace nada” (y además: con tools.profile="messaging" tampoco importaría).

Lo más fiable es inspeccionarlo con la CLI:

#
  • openclaw config get tools.byProvider

te digo exactamente cuál de esos te está recortando exec después de poner tools.profile en full/coding.

uneven solar
#

Fantástico. Funcionó a la perfección con la "Opción A". Muchísimas gracias, Krill. Mi agente y yo te lo agradecemos.

agile tartanBOT
#

Buenísimo — entonces era exactamente el recorte por tools.profile: "messaging".

Si quieres un punto medio más seguro que full pero con shell + archivos + memoria, prueba tools.profile: "coding" (y deja full solo si de verdad necesitas “todo”).

Si esto ya lo dejó resuelto, ¿puedes marcar la solución en el post del foro/hilo? En Discord suele ser clic derecho en el mensaje → Apps → Mark Solution (así queda indexado y le sirve al siguiente que le pase lo mismo).