OpenClawSkills
GitHub
Herramientas y Habilidades • 5 min de lectura

Herramientas

Superficie de herramientas del agente para OpenClaw (browser, canvas, nodes, message, cron) reemplazando las habilidades legacy `openclaw-*`

OpenClaw expone herramientas de agente de primera clase para browser, canvas, nodes, y cron.

Estas reemplazan las viejas habilidades ''openclaw-*'': las herramientas están tipadas, sin shelling,

y el agente debe depender de ellas directamente.

Tutorial.step

Deshabilitar herramientas

Puedes permitir/denegar herramientas globalmente via ''tools.allow'' / ''tools.deny'' en ''openclaw.json''

(deny gana). Esto previene que herramientas no permitidas sean enviadas a proveedores de modelo.

Json5
{
  tools: { deny: ["browser"] },
}

Notas:

- La coincidencia es insensible a mayúsculas.

- Comodines ''*'' son soportados (''"*"'' significa todas las herramientas).

- Si ''tools.allow'' solo referencia nombres de herramientas de plugin desconocidos o no cargados, OpenClaw registra una advertencia e ignora la lista permitida para que las herramientas principales permanezcan disponibles.

Tutorial.step

Perfiles de herramientas (lista permitida base)

''tools.profile'' establece una ''lista permitida de herramientas base'' antes de ''tools.allow''/''tools.deny''.

Override por agente: ''agents.list[].tools.profile''.

Perfiles:

- ''minimal'': solo ''session_status''

- ''coding'': ''group:fs'', ''group:runtime'', ''group:sessions'', ''group:memory'', ''image''

- ''messaging'': ''group:messaging'', ''sessions_list'', ''sessions_history'', ''sessions_send'', ''session_status''

- ''full'': sin restricción (igual que no establecido)

Example (messaging-only by default, allow Slack + Discord tools too):

Json5
{
  tools: {
    profile: "messaging",
    allow: ["slack", "discord"],
  },
}

Example (coding profile, but deny exec/process everywhere):

Json5
{
  tools: {
    profile: "coding",
    deny: ["group:runtime"],
  },
}

Example (global coding profile, messaging-only support agent):

Json5
{
  tools: { profile: "coding" },
  agents: {
    list: [
      {
        id: "support",
        tools: { profile: "messaging", allow: ["slack"] },
      },
    ],
  },
}
Tutorial.step

Política de herramientas por proveedor

Usa ''tools.byProvider'' para ''restringir aún más'' herramientas para proveedores específicos

(o un único ''proveedor/modelo'') sin cambiar tus predeterminados globales.

Override por agente: ''agents.list[].tools.byProvider''.

Esto se aplica después del perfil de herramientas base y antes de las listas allow/deny,

así que solo puede reducir el conjunto de herramientas.

Example (keep global coding profile, but minimal tools for Google Antigravity):

Json5
{
  tools: {
    profile: "coding",
    byProvider: {
      "google-antigravity": { profile: "minimal" },
    },
  },
}

Example (provider/model-specific allowlist for a flaky endpoint):

Json5
{
  tools: {
    allow: ["group:fs", "group:runtime", "sessions_list"],
    byProvider: {
      "openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
    },
  },
}

Example (agent-specific override for a single provider):

Json5
{
  agents: {
    list: [
      {
        id: "support",
        tools: {
          byProvider: {
            "google-antigravity": { allow: ["message", "sessions_list"] },
          },
        },
      },
    ],
  },
}
Tutorial.step

Grupos de herramientas (abreviaturas)

Las políticas de herramientas (global, agente, sandbox) soportan entradas ''group:*'' que se expanden a múltiples herramientas.

Usa estos en ''tools.allow'' / ''tools.deny''.

Grupos disponibles:

- ''group:runtime'': ''exec'', ''bash'', ''process''

- ''group:fs'': ''read'', ''write'', ''edit'', ''apply_patch''

- ''group:sessions'': ''sessions_list'', ''sessions_history'', ''sessions_send'', ''sessions_spawn'', ''session_status''

- ''group:memory'': ''memory_search'', ''memory_get''

- ''group:web'': ''web_search'', ''web_fetch''

- ''group:ui'': ''browser'', ''canvas''

- ''group:automation'': ''cron'', ''gateway''

- ''group:messaging'': ''message''

- ''group:nodes'': ''nodes''

- ''group:openclaw'': todas las herramientas OpenClaw integradas (excluye plugins de proveedor)

Example (allow only file tools + browser):

Json5
{
  tools: {
    allow: ["group:fs", "browser"],
  },
}
Tutorial.step

Plugins + herramientas

Los plugins pueden registrar herramientas adicionales (y comandos CLI) más allá del conjunto principal.

Ver ''Plugins'' para instalación + configuración, y ''Habilidades'' para cómo

la guía de uso de herramientas se inyecta en prompts. Algunos plugins incluyen sus propias habilidades

junto con herramientas (por ejemplo, el plugin voice-call).

Herramientas de plugin opcionales:

- ''Lobster'': runtime de flujo de trabajo tipado con aprobaciones reanudables (requiere el CLI de Lobster en el host del gateway).

- ''LLM Task'': paso LLM solo JSON para salida de flujo de trabajo estructurado (validación de esquema opcional).

Tutorial.step

Inventario de herramientas

#

Tutorial.step

`apply_patch`

Aplica patches estructurados en uno o más archivos. Usa para ediciones multi-hunk.

Experimental: habilita via ''tools.exec.applyPatch.enabled'' (solo modelos OpenAI).

#

Tutorial.step

`exec`

Ejecuta comandos shell en el espacio de trabajo.

Parámetros principales:

- ''command'' (requerido)

- ''yieldMs'' (auto-background después del timeout, predeterminado 10000)

- ''background'' (background inmediato)

- ''timeout'' (segundos; mata el proceso si se excede, predeterminado 1800)

- ''elevated'' (bool; ejecuta en host si el modo elevado está habilitado/permitido; solo cambia comportamiento cuando el agente está en sandbox)

- ''host'' (''sandbox | gateway | node'')

- ''security'' (''deny | allowlist | full'')

- ''ask'' (''off | on-miss | always'')

- ''node'' (id/nombre del nodo para ''host=node'')

- ¿Necesitas un TTY real? Establece ''pty: true''.

Notas:

- Retorna ''status: "running"'' con un ''sessionId'' cuando está en background.

- Usa ''process'' para poll/log/write/kill/clear sesiones en background.

- Si ''process'' está deshabilitado, ''exec'' se ejecuta sincrónicamente e ignora ''yieldMs''/''background''.

Tutorial.step

`process`

Gestiona sesiones exec en background.

Acciones principales:

- ''list'', ''poll'', ''log'', ''write'', ''kill'', ''clear'', ''remove''

Notas:

- ''poll'' retorna nueva salida y estado de salida cuando está completo.

- ''log'' soporta ''offset''/''limit'' basado en líneas (omite ''offset'' para obtener las últimas N líneas).