Skills
Skills
Skills son archivos de instrucciones en markdown que enseñan al agente cómo y cuándo usar
herramientas. Cada skill vive en un directorio que contiene un archivo SKILL.md con
frontmatter YAML y un cuerpo en markdown. OpenClaw carga skills incluidas junto con cualquier
anulación local, y las filtra en el momento de carga según el entorno, la configuración y la
presencia de binarios.
Crea y prueba una skill personalizada desde cero.
Revisa y aprueba propuestas de skills redactadas por el agente.
Esquema de configuración completo de skills.* y listas de permitidos de agentes.
Explora e instala skills de la comunidad.
Orden de carga
OpenClaw carga desde estas fuentes, de mayor a menor precedencia. Cuando el mismo nombre de skill aparece en varios lugares, gana la fuente de mayor prioridad.
| Prioridad | Fuente | Ruta |
|---|---|---|
| 1 — máxima | Skills del espacio de trabajo | <workspace>/skills |
| 2 | Skills de agente del proyecto | <workspace>/.agents/skills |
| 3 | Skills de agente personales | ~/.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 diseños agrupados. OpenClaw descubre una skill siempre que
SKILL.md aparece en cualquier lugar bajo una raíz configurada:
<workspace>/skills/research/SKILL.md ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"La ruta de carpeta es solo para organización. El nombre de la skill, el comando slash y
la clave de lista de permitidos provienen todos del campo de frontmatter name (o del nombre del directorio
cuando falta name).
Skills por agente frente a compartidas
En configuraciones multiagente, cada agente tiene su propio espacio de trabajo. Usa la ruta que coincida con la visibilidad deseada:
| Ámbito | Ruta | Visible para |
|---|---|---|
| Por agente | <workspace>/skills |
Solo ese agente |
| Agente de proyecto | <workspace>/.agents/skills |
Solo el agente de ese espacio de trabajo |
| Agente personal | ~/.agents/skills |
Todos los agentes en esta máquina |
| Gestionada compartida | ~/.openclaw/skills |
Todos los agentes en esta máquina |
| Directorios adicionales | skills.load.extraDirs |
Todos los agentes en esta máquina |
Listas de permitidos de agentes
La ubicación de una skill (precedencia) y la visibilidad de una skill (qué agente puede usarla) son controles separados. Usa listas de permitidos para restringir qué skills ve un agente, independientemente de desde dónde se carguen.
{ agents: { defaults: { skills: ["github", "weather"], // shared baseline }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely { id: "locked-down", skills: [] }, // no skills ], },}Reglas de listas de permitidos
- Omite
agents.defaults.skillspara dejar todas las skills sin restricciones de forma predeterminada. - Omite
agents.list[].skillspara heredaragents.defaults.skills. - Establece
agents.list[].skills: []para no exponer skills para ese agente. - Una lista no vacía
agents.list[].skillses el conjunto final: no se fusiona con los valores predeterminados. - La lista de permitidos efectiva se aplica a la construcción de prompts, el descubrimiento de comandos slash, la sincronización de sandbox y las instantáneas de skills.
- Esto no es un límite de autorización del shell del host. Si el mismo agente puede
usar
exec, restringe ese shell por separado con sandboxing, aislamiento de usuario del SO, listas de denegación/permitidos de exec y credenciales por recurso.
Plugins y skills
Los plugins pueden incluir sus propias skills enumerando directorios skills en
openclaw.plugin.json (rutas relativas a la raíz del plugin). Las skills de plugin se cargan
cuando el plugin está habilitado; por ejemplo, el plugin de navegador incluye una skill
browser-automation para control de navegador en varios pasos.
Los directorios de skills de plugin se fusionan en el mismo nivel de baja precedencia que
skills.load.extraDirs, por lo que una skill incluida, gestionada, de agente o de espacio de trabajo
con el mismo nombre los anula. Contrólalas mediante metadata.openclaw.requires.config en la
entrada de configuración del plugin.
Consulta Plugins y Herramientas para ver el sistema completo de plugins.
Skill Workshop
Skill Workshop es una cola de propuestas entre el agente
y tus archivos de skills activos. Cuando el agente detecta trabajo reutilizable, redacta una
propuesta en lugar de escribir directamente en SKILL.md. Tú revisas y apruebas
antes de que cambie nada.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Consulta Skill Workshop para ver el ciclo de vida completo, la referencia de CLI y la configuración.
Instalar desde ClawHub
ClawHub es el registro público de skills. Usa 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 de skill local | 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 sobre de confianza de una skill | openclaw skills verify @owner/<slug> |
| Imprimir la Skill Card generada | openclaw skills verify @owner/<slug> --card |
| Publicar / sincronizar mediante ClawHub CLI | clawhub sync --all |
Detalles de instalación
openclaw skills install instala en el directorio skills/ del espacio de trabajo activo
de forma predeterminada. Añade --global para instalar en el directorio compartido
~/.openclaw/skills, visible para todos los agentes locales a menos que las listas de permitidos
de agentes lo restrinjan.
Las instalaciones desde Git y locales esperan SKILL.md en la raíz de origen. El slug proviene
del frontmatter name de SKILL.md cuando es válido, y luego recurre al
nombre del directorio o repositorio. Usa --as <slug> para anularlo.
openclaw skills update rastrea solo instalaciones de ClawHub: reinstala fuentes Git o
locales para actualizarlas.
Verificación y escaneo de seguridad
openclaw skills verify @owner/<slug> pide a ClawHub el sobre de confianza
clawhub.skill.verify.v1 de la skill. Las skills de ClawHub instaladas se verifican
contra la versión y el registro guardados en .clawhub/origin.json.
Los slugs simples siguen aceptándose para skills existentes instaladas o inequívocas, pero
las referencias calificadas por propietario evitan ambigüedad de publicador.
Las páginas de skills de ClawHub muestran el estado del escaneo de seguridad más reciente antes de instalar,
con páginas de detalle para VirusTotal, ClawScan y análisis estático. El
comando sale con código distinto de cero cuando ClawHub marca la verificación como fallida. Los publicadores
recuperan falsos positivos mediante el panel de ClawHub o
clawhub skill rescan @owner/<slug>.
Instalaciones de archivos privados
Los clientes de Gateway que necesitan entrega fuera de ClawHub pueden preparar un archivo zip de skill
con skills.upload.begin, skills.upload.chunk y skills.upload.commit,
y luego instalar con skills.install({ source: "upload", ... }). Esta ruta está
desactivada de forma predeterminada y requiere skills.install.allowUploadedArchives: true en
openclaw.json. Las instalaciones normales de ClawHub nunca necesitan esa opción.
Seguridad
Contención de rutas
El descubrimiento de skills de espacio de trabajo, agente de proyecto y directorio adicional solo acepta raíces de skills
cuyo realpath resuelto permanezca dentro de la raíz configurada, a menos que
skills.load.allowSymlinkTargets confíe explícitamente en una raíz de destino.
Skill Workshop escribe mediante esos destinos confiables solo cuando
skills.workshop.allowSymlinkTargetWrites está habilitado.
Las skills gestionadas ~/.openclaw/skills y personales ~/.agents/skills pueden contener
carpetas de skills con enlaces simbólicos, pero cada realpath de SKILL.md debe seguir permaneciendo
dentro de su directorio de skill resuelto.
Política de instalación del operador
Configura security.installPolicy para ejecutar un comando de política local confiable
antes de que continúen las instalaciones de skills. La política recibe metadatos y la ruta de origen
preparada, se aplica a rutas de ClawHub, subidas, Git, locales, de actualización y de
instalador de dependencias, y falla de forma cerrada 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 para ese turno del agente, no en el sandbox. Mantén los
secretos fuera de prompts y logs.
Para el modelo de amenazas más amplio y las listas de comprobación de seguridad, consulta Seguridad.
Formato de SKILL.md
Toda skill necesita como mínimo un name y una description en el frontmatter:
---name: image-labdescription: Generate or edit images via a provider-backed image workflow--- When the user asks to generate an image, use the `image_generate` tool...Claves opcionales de frontmatter
homepagestringURL que se muestra como "Sitio web" en la UI de Skills de macOS. También se admite mediante
metadata.openclaw.homepage.
user-invocablebooleandefault: trueCuando es true, la skill se expone como un comando slash invocable por el usuario.
disable-model-invocationbooleandefault: falseCuando es true, OpenClaw deja las instrucciones de la skill fuera del prompt normal
del agente. La skill sigue disponible como comando slash cuando user-invocable
también es true.
command-dispatch"tool"Cuando se establece en tool, el comando slash evita el modelo y despacha
directamente a una herramienta registrada.
command-toolstringNombre de la herramienta que se invocará cuando command-dispatch: tool esté establecido.
command-arg-mode"raw"default: rawPara el despacho de 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>" }.
Control de acceso
OpenClaw filtra las Skills en el momento de la carga usando metadata.openclaw (JSON de una sola línea
en el frontmatter). Una Skill sin bloque metadata.openclaw siempre es
elegible salvo que esté deshabilitada explícitamente.
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanCuando es true, siempre incluye la Skill y omite todos los demás controles.
emojistringEmoji opcional que se muestra en la interfaz de Skills de macOS.
homepagestringURL opcional que se muestra como "Sitio web" en la interfaz de Skills de macOS.
os"darwin" | "linux" | "win32"Filtro de plataforma. Cuando se define, la Skill solo es elegible en 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 configuración.
requires.configstring[]Cada ruta de openclaw.json debe ser verdadera.
primaryEnvstringNombre de variable de entorno asociado con skills.entries.<name>.apiKey.
installobject[]Especificaciones de instalador opcionales usadas por la interfaz de Skills de macOS (brew / node / go / uv / download).
Especificaciones de instalador
Las especificaciones de instalador indican a la interfaz de Skills de macOS cómo instalar una dependencia:
---name: geminidescription: Use Gemini CLI for coding assistance and Google search lookups.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Install Gemini CLI (brew)", }, ], }, }---Reglas de selección de instalador
- Cuando se listan varios instaladores, el Gateway elige una opción preferida (brew cuando está disponible; de lo contrario, node).
- Si todos los instaladores son
download, OpenClaw lista cada entrada para que puedas 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 runtime del Gateway debe seguir siendo Node. - Preferencia de instalador del Gateway: Homebrew → uv → gestor de node configurado → go → download.
Detalles por instalador
- Homebrew: OpenClaw no instala Homebrew automáticamente ni traduce fórmulas de brew
a comandos de paquetes del sistema. En contenedores Linux sin
brew, los instaladores solo de brew se ocultan; usa una imagen personalizada o instala la dependencia manualmente. - Go: OpenClaw requiere Go 1.21 o posterior para instalaciones automáticas de Skills y
conserva la configuración existente de
GOBIN,GOPATHyGOTOOLCHAIN. Si la cadena de herramientas configurada no puede satisfacer la versión de Go requerida por un módulo, el onboarding agrupa la Skill con los prerrequisitos manuales de Go después del intento de instalación. Si faltagoy Homebrew está disponible, OpenClaw instala Go primero mediante Homebrew y defineGOBINen elbinde Homebrew. En Linux, OpenClaw puede usar en su lugarapt-getcomo root o mediantesudosin contraseña cuando el candidatogolang-goactualizado cumple la versión mínima. - Download:
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 de aislamiento
requires.bins se comprueba en el host durante la carga de Skills. Si un agente
se ejecuta en un sandbox, el binario también debe existir dentro del contenedor.
Instálalo mediante agents.defaults.sandbox.docker.setupCommand o una imagen
personalizada. setupCommand se ejecuta una vez después de crear el contenedor y requiere
salida de red, un sistema de archivos raíz escribible y un usuario root en el sandbox.
Sobrescrituras de configuración
Activa y configura Skills incluidas o gestionadas bajo skills.entries en
~/.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: define skills.entries.coding-agent.enabled: true
y asegúrate de que claude, codex, opencode u otra CLI compatible
esté instalada y autenticada.
apiKeystring | { source, provider, id }Campo de conveniencia para Skills que declaran metadata.openclaw.primaryEnv.
Admite una cadena de texto plano o un objeto SecretRef.
env"Record<string,configobjectBolsa opcional para campos de configuración personalizados por Skill.
allowBundledstring[]Lista de permitidos opcional solo para Skills incluidas. Cuando se define, solo las Skills incluidas en la lista son elegibles. Las Skills gestionadas y del workspace no se ven afectadas.
Inyección de entorno
Cuando comienza la ejecución de un agente, OpenClaw:
Lee los metadatos de Skills
OpenClaw resuelve la lista efectiva de Skills para el agente, aplicando reglas de control, listas de permitidos y sobrescrituras de configuración.
Inyecta env y claves de API
skills.entries.<key>.env y skills.entries.<key>.apiKey se aplican a
process.env durante la ejecución.
Construye el prompt del sistema
Las Skills elegibles se compilan en un bloque XML compacto y se inyectan en el prompt del sistema.
Restaura el entorno
Cuando termina la ejecución, se restaura el entorno original.
Para el backend incluido claude-cli, OpenClaw también materializa la misma
instantánea de Skills elegibles como un Plugin temporal de Claude Code y la pasa mediante
--plugin-dir. Otros backends de CLI usan solo el catálogo del prompt.
Instantáneas y actualización
OpenClaw captura instantáneas de las Skills elegibles cuando comienza una sesión y reutiliza esa lista en todos los turnos posteriores de la sesión. Los cambios en Skills o configuración tienen efecto en la siguiente sesión nueva.
Las Skills se actualizan a mitad de sesión en dos casos:
- El observador de Skills detecta un cambio en
SKILL.md. - Se conecta un nuevo nodo remoto elegible.
La lista actualizada se recoge en el siguiente turno del agente. Si cambia la lista de permitidos 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 e incrementa la instantánea cuando
cambian los archivos SKILL.md. Configúralo bajo skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, },}Usa allowSymlinkTargets para diseños intencionales con enlaces simbólicos donde un enlace simbólico de raíz
de Skill apunta fuera de la raíz configurada, por ejemplo
<workspace>/skills/manager -> ~/Projects/manager/skills.
Habilita skills.workshop.allowSymlinkTargetWrites solo cuando Skill Workshop
también deba aplicar propuestas a través de esas rutas enlazadas de confianza.
Nodos macOS remotos (Gateway Linux)
Si el Gateway se ejecuta en Linux pero hay un nodo macOS conectado con
system.run permitido, OpenClaw puede tratar las Skills solo para macOS como elegibles cuando
los binarios requeridos 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 solo remotas. Si un nodo deja de responder a sondeos de binarios, OpenClaw borra sus coincidencias de binarios en caché.
Impacto en tokens
Cuando las Skills son elegibles, OpenClaw inyecta un bloque XML compacto en el prompt del sistema. El coste es determinista:
total = 195 + Σ (97 + len(name) + len(description) + len(filepath))- Sobrecarga base (solo cuando hay ≥ 1 Skill): ~195 caracteres
- Por Skill: ~97 caracteres + las longitudes de los campos
name,descriptionylocation - El escapado 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 campo
Mantén las descripciones breves y descriptivas para minimizar la sobrecarga del prompt.
Relacionado
Guía paso a paso para crear una Skill personalizada.
Cola de propuestas para Skills redactadas por agentes.
Esquema completo de configuración skills.* y listas de permitidos de agentes.
Cómo se registran y enrutan los comandos slash de Skills.
Explora y publica Skills en el registro público.
Los Plugins pueden incluir Skills junto con las herramientas que documentan.