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.
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.
{
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.
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):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}Example (coding profile, but deny exec/process everywhere):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}Example (global coding profile, messaging-only support agent):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}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):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}Example (provider/model-specific allowlist for a flaky endpoint):
{
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):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}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):
{
tools: {
allow: ["group:fs", "browser"],
},
}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).
Inventario de herramientas
#
`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).
#
`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''.
`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).