Herramientas (OpenClaw)
OpenClaw expone herramientas de agente de primera clase para browser, canvas, nodes y cron. Estas reemplazan las skills antiguasopenclaw-*: las herramientas son tipadas, sin ejecutar shell,
y el agente debe apoyarse directamente en ellas.
Deshabilitar herramientas
Puede permitir/denegar herramientas globalmente mediantetools.allow / tools.deny en openclaw.json
(la denegación prevalece). Esto evita que herramientas no permitidas se envíen a los proveedores de modelos.
- La coincidencia no distingue mayúsculas/minúsculas.
- Se admiten comodines
*("*"significa todas las herramientas). - Si
tools.allowsolo hace referencia a nombres de herramientas de plugins desconocidos o no cargados, OpenClaw registra una advertencia e ignora la lista de permitidos para que las herramientas centrales sigan disponibles.
Perfiles de herramientas (lista de permitidos base)
tools.profile establece una lista de permitidos base de herramientas antes de tools.allow/tools.deny.
Anulación por agente: agents.list[].tools.profile.
Perfiles:
minimal: solosession_statuscoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: sin restricción (igual que no configurado)
Política de herramientas específica del proveedor
Usetools.byProvider para restringir aún más las herramientas para proveedores específicos
(o un solo provider/model) sin cambiar sus valores globales.
Anulación por agente: agents.list[].tools.byProvider.
Esto se aplica después del perfil base de herramientas y antes de las listas de permitir/denegar,
por lo que solo puede reducir el conjunto de herramientas.
Las claves de proveedor aceptan provider (p. ej., google-antigravity) o
provider/model (p. ej., openai/gpt-5.2).
Ejemplo (mantener el perfil global de programación, pero herramientas mínimas para Google Antigravity):
Grupos de herramientas (atajos)
Las políticas de herramientas (global, agente, sandbox) admiten entradasgroup:* que se expanden a múltiples herramientas.
Úselas en tools.allow / tools.deny.
Grupos disponibles:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: todas las herramientas integradas de OpenClaw (excluye plugins de proveedores)
Plugins + herramientas
Los plugins pueden registrar herramientas adicionales (y comandos de la CLI) más allá del conjunto central. Vea Plugins para instalación + configuración, y Skills para cómo se inyecta la guía de uso de herramientas en los prompts. Algunos plugins incluyen sus propias skills junto con herramientas (por ejemplo, el plugin de llamadas de voz). Herramientas opcionales de plugins:- Lobster: runtime de flujos de trabajo tipados con aprobaciones reanudables (requiere la CLI de Lobster en el host del Gateway).
- LLM Task: paso LLM solo JSON para salida estructurada de flujos de trabajo (validación de esquema opcional).
Inventario de herramientas
apply_patch
Aplique parches estructurados en uno o más archivos. Úselo para ediciones con múltiples hunks.
Experimental: habilítelo mediante tools.exec.applyPatch.enabled (solo modelos de OpenAI).
tools.exec.applyPatch.workspaceOnly tiene como valor predeterminado true (limitado al workspace). Establécelo en false solo si realmente quieres que apply_patch escriba o elimine fuera del directorio de workspace.
exec
Ejecute comandos de shell en el workspace.
Parámetros principales:
command(requerido)yieldMs(auto a segundo plano tras el tiempo de espera, predeterminado 10000)background(segundo plano inmediato)timeout(segundos; finaliza el proceso si se excede, predeterminado 1800)elevated(bool; ejecutar en el host si el modo elevado está habilitado/permitido; solo cambia el 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 parahost=node)- ¿Necesita un TTY real? Configure
pty: true.
- Devuelve
status: "running"con unsessionIdcuando se envía a segundo plano. - Use
processpara sondear/registrar/escribir/finalizar/limpiar sesiones en segundo plano. - Si
processno está permitido,execse ejecuta de forma sincrónica e ignorayieldMs/background. elevatedestá restringido portools.elevatedmás cualquier anulaciónagents.list[].tools.elevated(ambos deben permitir) y es un alias dehost=gateway+security=full.elevatedsolo cambia el comportamiento cuando el agente está en sandbox (de lo contrario no hace nada).host=nodepuede apuntar a una aplicación complementaria de macOS o a un host de nodo sin interfaz (openclaw node run).- aprobaciones y listas de permitidos de gateway/nodo: Aprobaciones de exec.
process
Gestione sesiones de exec en segundo plano.
Acciones principales:
list,poll,log,write,kill,clear,remove
polldevuelve nueva salida y estado de salida cuando se completa.logadmiteoffset/limitbasados en líneas (omitaoffsetpara obtener las últimas N líneas).processtiene alcance por agente; las sesiones de otros agentes no son visibles.
web_search
Busque en la web usando la API de Brave Search.
Parámetros principales:
query(requerido)count(1–10; valor predeterminado desdetools.web.search.maxResults)
- Requiere una clave de API de Brave (recomendado:
openclaw configure --section web, o configurarBRAVE_API_KEY). - Habilite mediante
tools.web.search.enabled. - Las respuestas se almacenan en caché (predeterminado 15 min).
- Consulte Herramientas web para la configuración.
web_fetch
Obtenga y extraiga contenido legible de una URL (HTML → markdown/texto).
Parámetros principales:
url(requerido)extractMode(markdown|text)maxChars(truncar páginas largas)
- Habilite mediante
tools.web.fetch.enabled. maxCharsestá limitado portools.web.fetch.maxCharsCap(predeterminado 50000).- Las respuestas se almacenan en caché (predeterminado 15 min).
- Para sitios con mucho JS, prefiera la herramienta de browser.
- Consulte Herramientas web para la configuración.
- Consulte Firecrawl para el respaldo anti-bot opcional.
browser
Controle el browser dedicado administrado por OpenClaw.
Acciones principales:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(devuelve bloque de imagen +MEDIA:<path>)act(acciones de UI: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
profiles— listar todos los perfiles de browser con estadocreate-profile— crear un perfil nuevo con puerto autoasignado (ocdpUrl)delete-profile— detener browser, borrar datos de usuario, eliminar de la configuración (solo local)reset-profile— finalizar proceso huérfano en el puerto del perfil (solo local)
profile(opcional; predeterminadobrowser.defaultProfile)target(sandbox|host|node)node(opcional; selecciona un id/nombre de nodo específico) Notas:- Requiere
browser.enabled=true(el valor predeterminado estrue; configurefalsepara deshabilitar). - Todas las acciones aceptan el parámetro opcional
profilepara soporte de múltiples instancias. - Cuando se omite
profile, usabrowser.defaultProfile(predeterminado “chrome”). - Nombres de perfil: solo alfanumérico en minúsculas + guiones (máx. 64 caracteres).
- Rango de puertos: 18800-18899 (~100 perfiles máx.).
- Los perfiles remotos son solo de adjunción (sin iniciar/detener/restablecer).
- Si hay un nodo con capacidad de browser conectado, la herramienta puede enrutar automáticamente hacia él (a menos que fije
target). snapshotusa por defectoaicuando Playwright está instalado; useariapara el árbol de accesibilidad.snapshottambién admite opciones de instantánea por rol (interactive,compact,depth,selector) que devuelven referencias comoe12.actrequiererefdesnapshot(numérico12de instantáneas de IA, oe12de instantáneas por rol); useevaluatepara casos raros de selectores CSS.- Evite
act→waitpor defecto; úselo solo en casos excepcionales (sin un estado de UI confiable en el que esperar). uploadpuede pasar opcionalmente unrefpara auto‑hacer clic tras armar.uploadtambién admiteinputRef(referencia aria) oelement(selector CSS) para establecer<input type="file">directamente.
canvas
Conduzca el Canvas del nodo (present, eval, snapshot, A2UI).
Acciones principales:
present,hide,navigate,evalsnapshot(devuelve bloque de imagen +MEDIA:<path>)a2ui_push,a2ui_reset
- Usa
node.invokedel Gateway internamente. - Si no se proporciona
node, la herramienta elige un valor predeterminado (un único nodo conectado o un nodo mac local). - A2UI es solo v0.8 (sin
createSurface); la CLI rechaza JSONL v0.9 con errores de línea. - Prueba rápida:
openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI".
nodes
Descubra y apunte a nodos emparejados; envíe notificaciones; capture cámara/pantalla.
Acciones principales:
status,describepending,approve,reject(emparejamiento)notify(macOSsystem.notify)run(macOSsystem.run)camera_snap,camera_clip,screen_recordlocation_get
- Los comandos de cámara/pantalla requieren que la app del nodo esté en primer plano.
- Las imágenes devuelven bloques de imagen +
MEDIA:<path>. - Los videos devuelven
FILE:<path>(mp4). - La ubicación devuelve una carga JSON (lat/lon/accuracy/timestamp).
- Parámetros de
run:commandarreglo argv;cwdopcional,env(KEY=VAL),commandTimeoutMs,invokeTimeoutMs,needsScreenRecording.
run):
image
Analice una imagen con el modelo de imágenes configurado.
Parámetros principales:
image(ruta o URL requerida)prompt(opcional; predeterminado “Describe the image.”)model(anulación opcional)maxBytesMb(límite de tamaño opcional)
- Solo disponible cuando
agents.defaults.imageModelestá configurado (principal o de respaldo), o cuando se puede inferir implícitamente un modelo de imágenes a partir de su modelo predeterminado + autenticación configurada (emparejamiento de mejor esfuerzo). - Usa el modelo de imágenes directamente (independiente del modelo principal de chat).
message
Envíe mensajes y acciones de canal en Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/iMessage/MS Teams.
Acciones principales:
send(texto + medios opcionales; MS Teams también admitecardpara tarjetas adaptativas)poll(encuestas de WhatsApp/Discord/MS Teams)react/reactions/read/edit/deletepin/unpin/list-pinspermissionsthread-create/thread-list/thread-replysearchstickermember-info/role-infoemoji-list/emoji-upload/sticker-uploadrole-add/role-removechannel-info/channel-listvoice-statusevent-list/event-createtimeout/kick/ban
sendenruta WhatsApp a través del Gateway; los demás canales van directos.pollusa el Gateway para WhatsApp y MS Teams; las encuestas de Discord van directas.- Cuando una llamada de herramienta de mensajería está vinculada a una sesión de chat activa, los envíos se restringen al destino de esa sesión para evitar fugas entre contextos.
cron
Gestione trabajos cron y activaciones del Gateway.
Acciones principales:
status,listadd,update,remove,run,runswake(encolar evento del sistema + latido inmediato opcional)
addespera un objeto completo de trabajo cron (el mismo esquema que el RPCcron.add).updateusa{ jobId, patch }(se aceptaidpor compatibilidad).
gateway
Reinicie o aplique actualizaciones al proceso del Gateway en ejecución (en sitio).
Acciones principales:
restart(autoriza + envíaSIGUSR1para reinicio en proceso;openclaw gatewayreinicio en sitio)config.get/config.schemaconfig.apply(validar + escribir configuración + reiniciar + activar)config.patch(fusionar actualización parcial + reiniciar + activar)update.run(ejecutar actualización + reiniciar + activar)
- Use
delayMs(predeterminado 2000) para evitar interrumpir una respuesta en curso. restartestá deshabilitado por defecto; habilítelo concommands.restart: true.
sessions_list / sessions_history / sessions_send / sessions_spawn / session_status
Liste sesiones, inspeccione el historial de transcripciones o envíe a otra sesión.
Parámetros principales:
sessions_list:kinds?,limit?,activeMinutes?,messageLimit?(0 = ninguno)sessions_history:sessionKey(osessionId),limit?,includeTools?sessions_send:sessionKey(osessionId),message,timeoutSeconds?(0 = fire-and-forget)sessions_spawn:task,label?,agentId?,model?,runTimeoutSeconds?,cleanup?session_status:sessionKey?(predeterminado actual; aceptasessionId),model?(defaultlimpia la anulación)
maines la clave canónica de chat directo; global/desconocido están ocultos.messageLimit > 0obtiene las últimas N mensajes por sesión (mensajes de herramientas filtrados).sessions_sendespera la finalización cuandotimeoutSeconds > 0.- La entrega/anuncio ocurre después de la finalización y es de mejor esfuerzo;
status: "ok"confirma que la ejecución del agente terminó, no que el anuncio se haya entregado. sessions_spawninicia una ejecución de sub‑agente y publica una respuesta de anuncio de vuelta al chat solicitante.sessions_spawnno bloquea y devuelvestatus: "accepted"de inmediato.sessions_sendejecuta un ping‑pong de respuesta (respondaREPLY_SKIPpara detener; máx. turnos víasession.agentToAgent.maxPingPongTurns, 0–5).- Tras el ping‑pong, el agente destino ejecuta un paso de anuncio; responda
ANNOUNCE_SKIPpara suprimir el anuncio.
agents_list
Liste los ids de agentes a los que la sesión actual puede apuntar con sessions_spawn.
Notas:
- El resultado se restringe a listas de permitidos por agente (
agents.list[].subagents.allowAgents). - Cuando
["*"]está configurado, la herramienta incluye todos los agentes configurados y marcaallowAny: true.
Parámetros (comunes)
Herramientas respaldadas por el Gateway (canvas, nodes, cron):
gatewayUrl(predeterminadows://127.0.0.1:18789)gatewayToken(si la autenticación está habilitada)timeoutMs
gatewayUrl, incluya gatewayToken explícitamente. Las herramientas no heredan la configuración
ni las credenciales del entorno para las anulaciones, y la falta de credenciales explícitas es un error.
Herramienta de browser:
profile(opcional; predeterminadobrowser.defaultProfile)target(sandbox|host|node)node(opcional; fijar un id/nombre de nodo específico)
Flujos recomendados del agente
Automatización del browser:browser→status/startsnapshot(ai o aria)act(click/type/press)screenshotsi necesita confirmación visual
canvas→presenta2ui_push(opcional)snapshot
nodes→statusdescribeen el nodo elegidonotify/run/camera_snap/screen_record
Seguridad
- Evite
system.rundirecto; usenodes→runsolo con consentimiento explícito del usuario. - Respete el consentimiento del usuario para la captura de cámara/pantalla.
- Use
status/describepara asegurar permisos antes de invocar comandos de medios.
Cómo se presentan las herramientas al agente
Las herramientas se exponen en dos canales paralelos:- Texto del prompt del sistema: una lista legible por humanos + guía.
- Esquema de herramientas: las definiciones de funciones estructuradas enviadas a la API del modelo.