Habilidades (OpenClaw)
OpenClaw usa carpetas de skills compatibles con AgentSkills para enseñar al agente a usar herramientas. Cada skill es un directorio que contiene unSKILL.md con frontmatter YAML e instrucciones. OpenClaw carga skills incluidas más anulaciones locales opcionales, y las filtra en tiempo de carga según el entorno, la configuración y la presencia de binarios.
Ubicaciones y precedencia
Las skills se cargan desde tres lugares:- Skills incluidas: se envían con la instalación (paquete npm o OpenClaw.app)
- Skills gestionadas/locales:
~/.openclaw/skills - Skills del espacio de trabajo:
<workspace>/skills
<workspace>/skills (más alta) → ~/.openclaw/skills → skills incluidas (más baja)
Además, puede configurar carpetas de skills adicionales (precedencia más baja) mediante
skills.load.extraDirs en ~/.openclaw/openclaw.json.
Skills por agente vs compartidas
En configuraciones multiagente, cada agente tiene su propio espacio de trabajo. Eso significa:- Las skills por agente viven en
<workspace>/skillssolo para ese agente. - Las skills compartidas viven en
~/.openclaw/skills(gestionadas/locales) y son visibles para todos los agentes en la misma máquina. - Las carpetas compartidas también pueden agregarse mediante
skills.load.extraDirs(precedencia más baja) si desea un paquete común de skills usado por múltiples agentes.
Complementos + habilidades
Los plugins pueden incluir sus propias skills listando directoriosskills en
openclaw.plugin.json (rutas relativas a la raíz del plugin). Las skills del plugin se cargan
cuando el plugin está habilitado y participan en las reglas normales de precedencia.
Puede controlarlas mediante metadata.openclaw.requires.config en la entrada de configuración del plugin. Vea Plugins para descubrimiento/configuración y Tools para la
superficie de herramientas que esas skills enseñan.
ClawHub (instalación + sincronización)
ClawHub es el registro público de skills para OpenClaw. Explore en https://clawhub.com. Úselo para descubrir, instalar, actualizar y respaldar skills. Guía completa: ClawHub. Flujos comunes:- Instalar una skill en su espacio de trabajo:
clawhub install <skill-slug>
- Actualizar todas las skills instaladas:
clawhub update --all
- Sincronizar (escaneo + publicación de actualizaciones):
clawhub sync --all
clawhub instala en ./skills bajo su directorio de
trabajo actual (o recurre al espacio de trabajo de OpenClaw configurado). OpenClaw recoge
eso como <workspace>/skills en la siguiente sesión.
Notas de seguridad
- Trate las skills de terceros como código no confiable. Léalo antes de habilitarlo.
- Prefiera ejecuciones en sandbox para entradas no confiables y herramientas riesgosas. Vea Sandboxing.
skills.entries.*.envyskills.entries.*.apiKeyinyectan secretos en el proceso del host para ese turno del agente (no en el sandbox). Mantenga los secretos fuera de prompts y registros.- Para un modelo de amenazas más amplio y listas de verificación, vea Security.
Formato (AgentSkills + compatible con Pi)
SKILL.md debe incluir al menos:
- Seguimos la especificación AgentSkills para el diseño/propósito.
- El analizador usado por el agente integrado admite solo claves de frontmatter de una sola línea.
metadatadebe ser un objeto JSON de una sola línea.- Use
{baseDir}en las instrucciones para referenciar la ruta de la carpeta de la skill. - Claves opcionales de frontmatter:
-
homepage— URL mostrada como “Website” en la UI de Skills de macOS (también compatible mediantemetadata.openclaw.homepage). -
user-invocable—true|false(predeterminado:true). Cuandotrue, la skill se expone como un comando de barra para el usuario. -
disable-model-invocation—true|false(predeterminado:false). Cuandotrue, la skill se excluye del prompt del modelo (sigue disponible mediante invocación del usuario). -
command-dispatch—tool(opcional). Cuando se establece entool, el comando de barra omite el modelo y se despacha directamente a una herramienta. -
command-tool— nombre de la herramienta a invocar cuando se establececommand-dispatch: tool. -
command-arg-mode—raw(predeterminado). Para el despacho de herramientas, reenvía la cadena de argumentos sin procesar a la herramienta (sin análisis del núcleo). La herramienta se invoca con parámetros:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Control (filtros en tiempo de carga)
OpenClaw filtra las skills en tiempo de carga usandometadata (JSON de una sola línea):
metadata.openclaw:
always: true— incluir siempre la skill (omitir otros controles).emoji— emoji opcional usado por la UI de Skills de macOS.homepage— URL opcional mostrada como “Website” en la UI de Skills de macOS.os— lista opcional de plataformas (darwin,linux,win32). Si se establece, la skill solo es elegible en esos SO.requires.bins— lista; cada uno debe existir enPATH.requires.anyBins— lista; al menos uno debe existir enPATH.requires.env— lista; la variable de entorno debe existir o proporcionarse en la configuración.requires.config— lista de rutasopenclaw.jsonque deben ser verdaderas.primaryEnv— nombre de la variable de entorno asociada conskills.entries.<name>.apiKey.install— arreglo opcional de especificaciones de instaladores usadas por la UI de Skills de macOS (brew/node/go/uv/download).
requires.binsse verifica en el host en el momento de carga de la skill.- Si un agente está en sandbox, el binario también debe existir dentro del contenedor.
Instálelo mediante
agents.defaults.sandbox.docker.setupCommand(o una imagen personalizada).setupCommandse ejecuta una vez después de que se crea el contenedor. Las instalaciones de paquetes también requieren salida de red, un FS raíz escribible y un usuario root en el sandbox. Ejemplo: la skillsummarize(skills/summarize/SKILL.md) necesita la CLIsummarizeen el contenedor del sandbox para ejecutarse allí.
- Si se enumeran múltiples instaladores, el gateway elige una sola opción preferida (brew cuando está disponible; de lo contrario, node).
- Si todos los instaladores son
download, OpenClaw enumera cada entrada para que pueda ver los artefactos disponibles. - Las especificaciones del instalador pueden incluir
os: ["darwin"|"linux"|"win32"]para filtrar opciones por plataforma. - Las instalaciones de Node respetan
skills.install.nodeManagerenopenclaw.json(predeterminado: npm; opciones: npm/pnpm/yarn/bun). Esto solo afecta a las instalaciones de skills; el runtime del Gateway debería seguir siendo Node (Bun no se recomienda para WhatsApp/Telegram). - Instalaciones Go: si falta
goybrewestá disponible, el gateway instala Go mediante Homebrew primero y estableceGOBINen elbinde Homebrew cuando es posible. - Instalaciones por descarga:
url(requerido),archive(tar.gz|tar.bz2|zip),extract(predeterminado: auto cuando se detecta un archivo),stripComponents,targetDir(predeterminado:~/.openclaw/tools/<skillKey>).
metadata.openclaw, la skill siempre es elegible (a menos que esté
deshabilitada en la configuración o bloqueada por skills.allowBundled para skills incluidas).
Anulaciones de configuración (~/.openclaw/openclaw.json)
Las skills incluidas/gestionadas pueden activarse o desactivarse y recibir valores de entorno:
metadata.openclaw.skillKey, use esa clave bajo skills.entries.
Reglas:
enabled: falsedeshabilita la skill incluso si está incluida/instalada.env: se inyecta solo si la variable no está ya establecida en el proceso.apiKey: conveniencia para skills que declaranmetadata.openclaw.primaryEnv.config: bolsa opcional para campos personalizados por skill; las claves personalizadas deben vivir aquí.allowBundled: lista de permitidos opcional solo para skills incluidas. Si se establece, solo las skills incluidas en la lista son elegibles (las skills gestionadas/del espacio de trabajo no se ven afectadas).
Inyección de entorno (por ejecución del agente)
Cuando comienza una ejecución del agente, OpenClaw:- Lee los metadatos de las skills.
- Aplica cualquier
skills.entries.<key>.envoskills.entries.<key>.apiKeyaprocess.env. - Construye el prompt del sistema con skills elegibles.
- Restaura el entorno original después de que termina la ejecución.
Instantánea de sesión (rendimiento)
OpenClaw toma una instantánea de las skills elegibles cuando comienza una sesión y reutiliza esa lista para los turnos posteriores en la misma sesión. Los cambios en skills o configuración entran en vigor en la siguiente sesión nueva. Las skills también pueden actualizarse a mitad de la sesión cuando el observador de skills está habilitado o cuando aparece un nuevo nodo remoto elegible (ver abajo). Piense en esto como una recarga en caliente: la lista actualizada se recoge en el siguiente turno del agente.Nodos macOS remotos (Gateway en Linux)
Si el Gateway se ejecuta en Linux pero un nodo macOS está conectado consystem.run
permitido (la seguridad de aprobaciones de Exec no está configurada como deny),
OpenClaw puede tratar las skills solo para macOS como elegibles cuando los binarios requeridos
están presentes en ese nodo. El agente debería ejecutar esas skills mediante la herramienta
nodes (típicamente nodes.run).
Esto depende de que el nodo informe su compatibilidad de comandos y de una sonda de binarios
mediante system.run. Si el nodo macOS se desconecta más tarde, las skills permanecen
visibles; las invocaciones pueden fallar hasta que el nodo se reconecte.
Observador de skills (actualización automática)
De forma predeterminada, OpenClaw observa las carpetas de skills y incrementa la instantánea de skills cuando cambian archivosSKILL.md. Configure esto en skills.load:
Impacto en tokens (lista de skills)
Cuando las skills son elegibles, OpenClaw inyecta una lista XML compacta de las skills disponibles en el prompt del sistema (medianteformatSkillsForPrompt en pi-coding-agent). El costo
es determinista:
- Sobrecarga base (solo cuando ≥1 skill): 195 caracteres.
- Por skill: 97 caracteres + la longitud de los valores XML-escapados
<name>,<description>y<location>.
- El escape XML expande
& < > " 'en entidades (&,<, etc.), aumentando la longitud. - Los recuentos de tokens varían según el tokenizador del modelo. Una estimación aproximada al estilo OpenAI es ~4 caracteres/token, por lo que 97 caracteres ≈ 24 tokens por skill más las longitudes reales de sus campos.
Ciclo de vida de skills gestionadas
OpenClaw envía un conjunto base de skills como skills incluidas como parte de la instalación (paquete npm u OpenClaw.app).~/.openclaw/skills existe para anulaciones locales
(por ejemplo, fijar/parchear una skill sin cambiar la copia incluida). Las skills del espacio
de trabajo son propiedad del usuario y anulan a ambas cuando hay conflictos de nombre.