Skills
Skills
Skills son archivos de instrucciones en Markdown que enseñan al agente cómo y cuándo usar
herramientas. Cada skill reside en un directorio que contiene un archivo SKILL.md con frontmatter
YAML y un cuerpo en Markdown. OpenClaw carga las skills incluidas junto con cualquier
sobrescritura local y las filtra durante la carga según el entorno, la configuración y
la presencia de binarios.
Cree y pruebe una skill personalizada desde cero.
Revise y apruebe propuestas de skills redactadas por el agente.
Esquema de configuración completo de skills.* y listas de permitidas del agente.
Explore e instale skills de la comunidad.
Orden de carga
OpenClaw carga desde estas fuentes, con la precedencia más alta primero. Cuando el mismo nombre de skill aparece en varios lugares, prevalece la fuente con mayor prioridad.
| Prioridad | Fuente | Ruta |
|---|---|---|
| 1 — máxima | Skills del espacio de trabajo | <workspace>/skills |
| 2 | Skills del agente del proyecto | <workspace>/.agents/skills |
| 3 | Skills personales del agente | ~/.agents/skills |
| 4 | Skills gestionadas/locales | ~/.openclaw/skills |
| 5 | Skills incluidas | incluidas con la instalación |
| 6 — mínima | Directorios adicionales | skills.load.extraDirs + skills de plugins |
Las raíces de skills admiten estructuras agrupadas. OpenClaw detecta una skill siempre que
SKILL.md aparezca en cualquier lugar bajo una raíz configurada (hasta 6 niveles de profundidad):
<workspace>/skills/research/SKILL.md ✓ encontrada como "research"<workspace>/skills/personal/research/SKILL.md ✓ también encontrada como "research"La ruta de la carpeta solo sirve para la organización. El nombre de la skill y el comando con barra
provienen del campo de frontmatter name (o del nombre del directorio cuando falta
name). Las listas de permitidas del agente (más abajo) también se comparan con este
name.
Skills alojadas en Node
Un Node sin interfaz conectado puede publicar las skills instaladas en su directorio activo de
skills de OpenClaw (~/.openclaw/skills de forma predeterminada; se aplican las sobrescrituras
del entorno del perfil). Aparecen en la lista normal de skills del agente mientras el Node está conectado
y desaparecen cuando se desconecta. Una skill local o del Gateway conserva su nombre en caso de
colisión; la skill del Node recibe un nombre determinista con prefijo del Node.
La versión v1 alojada en Node requiere que el nombre del directorio coincida con el campo de frontmatter
name de la skill.
La entrada de la skill incluye el localizador del Node. Sus archivos, referencias relativas y
binarios residen en el Node, por lo que debe cargarse y ejecutarse con
exec host=node node=<node-id>. Reinicie el host del Node después de cambiar sus archivos de
skills. Consulte Nodos para obtener información sobre el emparejamiento y los mecanismos de desactivación.
Skills por agente frente a compartidas
En configuraciones con varios agentes, cada agente tiene su propio espacio de trabajo. Use la ruta que corresponda a la visibilidad deseada:
| Ámbito | Ruta | Visible para |
|---|---|---|
| Por agente | <workspace>/skills |
Solo ese agente |
| Agente del proyecto | <workspace>/.agents/skills |
Solo el agente de ese espacio de trabajo |
| Agente personal | ~/.agents/skills |
Todos los agentes de esta máquina |
| Gestionadas compartidas | ~/.openclaw/skills |
Todos los agentes de esta máquina |
| Directorios adicionales | skills.load.extraDirs |
Todos los agentes de esta máquina |
Listas de skills permitidas por agente
La ubicación de la skill (precedencia) y su visibilidad (qué agente puede usarla) son controles independientes. Use listas de permitidas para restringir qué skills ve un agente, independientemente de dónde se carguen.
{ agents: { defaults: { skills: ["github", "weather"], // referencia compartida }, list: [ { id: "writer" }, // hereda github, weather { id: "docs", skills: ["docs-search"] }, // sustituye por completo los valores predeterminados { id: "locked-down", skills: [] }, // sin skills ], },}Reglas de las listas de permitidas
- Omita
agents.defaults.skillspara dejar todas las skills sin restricciones de forma predeterminada. - Omita
agents.entries.*.skillspara heredaragents.defaults.skills. - Establezca
agents.entries.*.skills: []para no exponer ninguna skill a ese agente. - Una lista no vacía de
agents.entries.*.skillses el conjunto definitivo; no se combina con los valores predeterminados. - La lista de permitidas efectiva se aplica a la creación de prompts, la detección de comandos con barra, la sincronización del entorno aislado y las instantáneas de skills.
- Esto no constituye un límite de autorización del shell del host. Si el mismo agente puede
usar
exec, restrinja ese shell por separado mediante aislamiento, separación por usuario del sistema operativo, listas de ejecución denegada/permitida y credenciales por recurso.
Plugins y skills
Los plugins pueden incluir sus propias skills mediante la enumeración de directorios skills en
openclaw.plugin.json (rutas relativas a la raíz del plugin). Las skills del plugin se cargan
cuando el plugin está habilitado; por ejemplo, el plugin del navegador incluye una
skill browser-automation para el control del navegador en varios pasos.
Los directorios de skills de plugins se combinan en el mismo nivel de precedencia baja que
skills.load.extraDirs, por lo que una skill incluida, gestionada, de agente o de espacio de trabajo
con el mismo nombre los sobrescribe. Controle la elegibilidad de una skill del plugin mediante
metadata.openclaw.requires en su frontmatter, como con cualquier otra skill.
Consulte Plugins y Herramientas para conocer el sistema completo de plugins.
Taller de skills
El Taller de skills es una cola de propuestas entre el agente
y los archivos de skills activos. Cuando el agente detecta trabajo reutilizable, redacta una
propuesta en lugar de escribir directamente en SKILL.md. Debe revisarla y aprobarla
antes de que se produzca cualquier cambio.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Consulte Taller de skills para conocer el ciclo de vida completo, la referencia de la CLI y la configuración.
Instalación desde ClawHub
ClawHub es el registro público de skills. Use los comandos
openclaw skills para instalar y actualizar, o la CLI clawhub para
publicar y sincronizar.
| Acción | Comando |
|---|---|
| Instalar una skill en el espacio de trabajo | openclaw skills install @owner/<slug> |
| Instalar desde un repositorio Git | openclaw skills install git:owner/repo@ref |
| Instalar un directorio local de skills | openclaw skills install ./path/to/skill --as my-tool |
| Instalar para todos los agentes locales | openclaw skills install @owner/<slug> --global |
| Actualizar todas las skills del espacio de trabajo | openclaw skills update --all |
| Actualizar una skill gestionada compartida | openclaw skills update @owner/<slug> --global |
| Actualizar todas las skills gestionadas compartidas | openclaw skills update --all --global |
| Verificar el perímetro de confianza de una skill | openclaw skills verify @owner/<slug> |
| Mostrar la tarjeta de skill generada | openclaw skills verify @owner/<slug> --card |
| Publicar/sincronizar mediante la CLI de ClawHub | clawhub sync --all |
Detalles de la instalación
openclaw skills install instala de forma predeterminada en el directorio skills/
del espacio de trabajo activo. Añada --global para instalar en el directorio compartido
~/.openclaw/skills, visible para todos los agentes locales salvo que las listas de
permitidas de los agentes lo restrinjan.
Las instalaciones desde Git y locales requieren SKILL.md en la raíz del origen. El identificador legible proviene
del name del frontmatter SKILL.md cuando es válido; de lo contrario, se usa el
nombre del directorio o repositorio. Use --as <slug> para sobrescribirlo.
openclaw skills update solo realiza el seguimiento de instalaciones de ClawHub; reinstale los orígenes
Git o locales para actualizarlos.
Verificación y análisis de seguridad
openclaw skills verify @owner/<slug> solicita a ClawHub el perímetro de confianza
clawhub.skill.verify.v1 de la skill. Las skills de ClawHub instaladas se verifican
con la versión y el registro guardados en .clawhub/origin.json.
Se siguen aceptando identificadores sin propietario para skills ya instaladas o no ambiguas, pero
las referencias calificadas por propietario evitan ambigüedades sobre el publicador.
Las páginas de skills de ClawHub muestran el estado del análisis de seguridad más reciente antes de la instalación,
con páginas detalladas para VirusTotal, ClawScan y el análisis estático. El
comando finaliza con un código distinto de cero cuando ClawHub marca la verificación como fallida. Los publicadores
pueden resolver falsos positivos mediante el panel de ClawHub o
clawhub skill rescan @owner/<slug>.
Instalaciones desde archivos privados
Los clientes del Gateway que necesiten un método de entrega distinto de ClawHub pueden preparar un archivo ZIP de una skill
con skills.upload.begin, skills.upload.chunk y skills.upload.commit,
y después instalarlo con skills.install({ source: "upload", ... }). Esta ruta está
desactivada de forma predeterminada y requiere skills.install.allowUploadedArchives: true en
openclaw.json. Las instalaciones normales desde ClawHub nunca necesitan esa opción.
Seguridad
Contención de rutas
La detección de skills del espacio de trabajo, del agente del proyecto y de directorios adicionales solo acepta
raíces de skills cuya ruta real resuelta permanezca dentro de la raíz configurada, salvo que
skills.load.allowSymlinkTargets confíe explícitamente en una raíz de destino.
El Taller de skills solo escribe a través de esos destinos de confianza cuando
skills.workshop.allowSymlinkTargetWrites está habilitado.
Los directorios gestionados ~/.openclaw/skills y personales ~/.agents/skills pueden contener
carpetas de skills con enlaces simbólicos, pero la ruta real de cada SKILL.md debe permanecer
dentro del directorio resuelto de la skill.
Política de instalación del operador
Configure security.installPolicy para ejecutar un comando de política local de confianza
antes de que continúen las instalaciones de skills. La política recibe metadatos y la ruta del
origen preparado, se aplica a las rutas de ClawHub, carga, Git, local, actualización e
instalador de dependencias, y aplica un cierre seguro cuando el comando no puede devolver
una decisión válida.
Ámbito de inyección de secretos
skills.entries.*.env y skills.entries.*.apiKey inyectan secretos en el proceso
host solo durante ese turno del agente, no en el entorno aislado. Mantenga los
secretos fuera de los prompts y registros.
Para consultar el modelo de amenazas más amplio y las listas de comprobación de seguridad, consulte Seguridad.
Formato de SKILL.md
Cada skill necesita como mínimo un name y un description en el frontmatter:
---name: image-labdescription: Generar o editar imágenes mediante un flujo de trabajo de imágenes respaldado por un proveedor--- Cuando el usuario solicite generar una imagen, use la herramienta `image_generate`...Claves opcionales del frontmatter
homepagestringURL que aparece como "Website" en la interfaz de Skills de macOS. También se admite mediante
metadata.openclaw.homepage.
user-invocablebooleandefault: trueCuando true, la skill se expone como un comando de barra diagonal invocable por el usuario.
disable-model-invocationbooleandefault: falseCuando true, OpenClaw mantiene las instrucciones de la skill fuera del prompt
normal del agente. La skill sigue estando disponible como comando de barra diagonal cuando user-invocable
también es true.
command-dispatch"tool"Cuando se establece en tool, el comando de barra diagonal omite el modelo y se despacha
directamente a una herramienta registrada.
command-toolstringNombre de la herramienta que se invocará cuando se establezca command-dispatch: tool.
command-arg-mode"raw"default: rawPara el despacho a herramientas, reenvía la cadena de argumentos sin procesar a la herramienta sin
análisis del núcleo. La herramienta recibe
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Restricciones
OpenClaw filtra las skills durante la carga mediante metadata.openclaw (objeto JSON5
incrustado en el frontmatter; consulte la nota sobre el análisis anterior). Una skill sin un bloque
metadata.openclaw siempre es apta, salvo que se deshabilite explícitamente.
---name: image-labdescription: Generar o editar imágenes mediante un flujo de trabajo de imágenes respaldado por un proveedormetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanCuando true, incluye siempre la skill y omite todas las demás restricciones.
emojistringEmoji opcional que se muestra en la interfaz de Skills de macOS.
homepagestringURL opcional que se muestra como "Website" en la interfaz de Skills de macOS.
os("darwin" | "linux" | "win32")[]Filtro de plataforma. Cuando se establece, la skill solo es apta en uno de los sistemas operativos indicados.
requires.binsstring[]Cada binario debe existir en PATH.
requires.anyBinsstring[]Al menos un binario debe existir en PATH.
requires.envstring[]Cada variable de entorno debe existir en el proceso o proporcionarse mediante la configuración.
requires.configstring[]Cada ruta openclaw.json debe evaluarse como verdadera.
primaryEnvstringNombre de la variable de entorno asociada con skills.entries.<name>.apiKey.
installobject[]Especificaciones opcionales del instalador que utiliza la interfaz de Skills de macOS (brew / node / go / uv / download).
Especificaciones del instalador
Las especificaciones del instalador indican a la interfaz de Skills de macOS cómo instalar una dependencia:
---name: geminidescription: Usar la CLI de Gemini para obtener asistencia de programación y realizar búsquedas en Google.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Instalar la CLI de Gemini (brew)", }, ], }, }---Reglas de selección del instalador
- Cuando se enumeran varios instaladores, el Gateway elige una opción preferida (brew cuando está disponible; de lo contrario, node).
- Si todos los instaladores son
download, OpenClaw enumera cada entrada para que se puedan ver todos los artefactos disponibles. - Las especificaciones pueden incluir
os: ["darwin"|"linux"|"win32"]para filtrar por plataforma. - Las instalaciones de Node respetan
skills.install.nodeManagerenopenclaw.json(valor predeterminado: npm; opciones: npm / pnpm / yarn / bun). Esto solo afecta a las instalaciones de skills; el entorno de ejecución del Gateway debe seguir siendo Node. - Preferencia de instaladores del Gateway: Homebrew → uv → gestor de node configurado → go → descarga.
Detalles por instalador
- Homebrew: OpenClaw no instala Homebrew automáticamente ni traduce las
fórmulas de brew a comandos de paquetes del sistema. En contenedores Linux sin
brew, los instaladores que solo usan brew se ocultan; utilice una imagen personalizada o instale la dependencia manualmente. - Go: OpenClaw requiere Go 1.21 o una versión posterior para las instalaciones automáticas de skills.
Si falta
goy Homebrew está disponible, OpenClaw instala primero Go mediante Homebrew; en Linux sin Homebrew, puede usar en su lugarapt-getcomo root o mediantesudosin contraseña cuando el candidato actualizado degolang-gocumple la versión mínima. Elgo installreal de la dependencia siempre apunta a un directorio de binarios dedicado y administrado por OpenClaw (binde Homebrew en una instalación nueva; de lo contrario,~/.local/bin), en lugar de suGOBINconfigurado; sus propias variables de entornoGOBIN,GOPATHyGOTOOLCHAINse leen, pero nunca se sobrescriben. - Descarga:
url(obligatorio),archive(tar.gz|tar.bz2|zip),extract(valor predeterminado: automático cuando se detecta un archivo),stripComponents,targetDir(valor predeterminado:~/.openclaw/tools/<skillKey>).
Notas sobre el aislamiento
requires.bins se comprueba en el host durante la carga de la skill. Si un agente
se ejecuta en un entorno aislado, el binario también debe existir dentro del contenedor.
Instálelo mediante agents.defaults.sandbox.docker.setupCommand o una imagen
personalizada. setupCommand se ejecuta una vez después de crear el contenedor y requiere
acceso de salida a la red, un sistema de archivos raíz con permisos de escritura y un usuario root en el entorno aislado.
Anulaciones de configuración
Active y configure las skills incluidas o administradas en skills.entries dentro de
~/.openclaw/openclaw.json:
{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}enabledbooleanfalse deshabilita la skill incluso cuando está incluida o instalada. La skill incluida
coding-agent es opcional: establezca skills.entries.coding-agent.enabled: true
y asegúrese de que claude, codex, opencode u otra CLI compatible
esté instalada y autenticada.
apiKeystring | { source, provider, id }Campo práctico para las skills que declaran metadata.openclaw.primaryEnv.
Admite una cadena de texto sin formato o un objeto SecretRef.
env"Record<string,configobjectContenedor opcional para campos de configuración personalizados por skill.
allowBundledstring[]Lista de permitidas opcional solo para las skills incluidas. Cuando se establece, únicamente son aptas las skills incluidas que aparecen en la lista. Las skills administradas y del espacio de trabajo no se ven afectadas.
Inyección del entorno
Cuando se inicia una ejecución del agente, OpenClaw:
Lee los metadatos de las skills
OpenClaw resuelve la lista efectiva de skills del agente y aplica reglas de restricción, listas de permitidas y anulaciones de configuración.
Inyecta variables de entorno y claves de API
skills.entries.<key>.env y skills.entries.<key>.apiKey se aplican a
process.env mientras dura la ejecución.
Crea el prompt del sistema
Las skills aptas se compilan en un bloque XML compacto y se inyectan en el prompt del sistema.
Restaura el entorno
Cuando finaliza la ejecución, se restaura el entorno original.
Para el backend incluido claude-cli, OpenClaw también materializa la misma
instantánea de skills aptas como Plugin temporal de Claude Code y la pasa mediante
--plugin-dir. Los demás backends de CLI solo utilizan el catálogo del prompt.
Instantáneas y actualización
OpenClaw crea una instantánea de las skills aptas cuando se inicia una sesión y reutiliza esa lista en todos los turnos posteriores de la sesión. Los cambios en las skills o en la configuración surten efecto en la siguiente sesión nueva.
Las skills se actualizan durante una sesión en dos casos:
- El observador de skills detecta un cambio en
SKILL.md. - Se conecta un nuevo nodo remoto apto.
La lista actualizada se utiliza en el siguiente turno del agente. Si cambia la lista de permitidas efectiva del agente, OpenClaw actualiza la instantánea para mantener alineadas las skills visibles.
Observador de Skills
De forma predeterminada, OpenClaw observa las carpetas de skills y actualiza la instantánea cuando
cambian los archivos SKILL.md. Configúrelo en skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, // valor predeterminado }, },}Los eventos del observador utilizan una estabilización integrada de 250 ms. Utilice allowSymlinkTargets
para estructuras intencionales con enlaces simbólicos en las que un enlace simbólico de la
raíz de una skill apunta fuera de la raíz configurada, por ejemplo,
<workspace>/skills/manager -> ~/Projects/manager/skills.
Habilite skills.workshop.allowSymlinkTargetWrites solo cuando Skill Workshop
también deba aplicar propuestas mediante esas rutas de enlaces simbólicos de confianza.
Nodos macOS remotos (Gateway Linux)
Si el Gateway se ejecuta en Linux, pero hay conectado un nodo macOS con
system.run permitido, OpenClaw puede considerar aptas las skills exclusivas de macOS cuando
los binarios necesarios están presentes en ese nodo. El agente debe ejecutar esas
skills mediante la herramienta exec con host=node.
Los nodos sin conexión no hacen visibles las skills exclusivas de acceso remoto. Si un nodo deja de responder a los sondeos de binarios, OpenClaw borra sus coincidencias de binarios almacenadas en caché.
Impacto en los tokens
Cuando hay skills aptas, OpenClaw inyecta un bloque XML compacto en el prompt del sistema. El coste es determinista y aumenta linealmente por skill:
- Sobrecarga base (solo cuando hay 1 o más skills aptas): un bloque fijo de texto
introductorio más el contenedor
<available_skills>. - Por skill: ~97 caracteres + las longitudes de los campos
name,descriptionylocation. - El escape de XML expande
& < > " 'en entidades, lo que añade algunos caracteres por aparición. - Con ~4 caracteres/token, 97 caracteres ≈ 24 tokens por skill antes de las longitudes de los campos.
Si el bloque renderizado superara el presupuesto configurado del prompt
(skills.limits.maxSkillsPromptChars), OpenClaw conserva primero tantas identidades de Skills
(nombre, ubicación y versión) como permita el formato compacto sin
descripciones. Después, utiliza el presupuesto restante para descripciones abreviadas. Si no
queda presupuesto para descripciones, estas se omiten. El prompt incluye una
nota que remite a openclaw skills check siempre que se requiera el formato compacto o el
truncamiento de la lista.
Mantenga las descripciones breves y descriptivas para minimizar la sobrecarga del prompt.
Contenido relacionado
Guía paso a paso para crear una Skill personalizada.
Cola de propuestas para Skills redactadas por agentes.
Esquema completo de configuración de skills.* y listas de agentes permitidos.
Cómo se registran y enrutan los comandos de barra diagonal de las Skills.
Explore y publique Skills en el registro público.
Los Plugins pueden incluir Skills junto con las herramientas que documentan.