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.
Crear skills
Cree y pruebe una skill personalizada desde cero.
Taller de skills
Revise y apruebe propuestas de skills redactadas por el agente.
Configuración de skills
Esquema de configuración completo de
skills.* y listas de permitidas del agente.ClawHub
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.
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):
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.
El directorio nativo
$CODEX_HOME/skills de Codex CLI no es una raíz de
skills de OpenClaw. Use openclaw migrate plan codex para inventariar esas skills y, después,
openclaw migrate codex para copiarlas en el espacio de trabajo de OpenClaw.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: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.Reglas de las listas de permitidas
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 directoriosskills 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 enSKILL.md. Debe revisarla y aprobarla
antes de que se produzca cualquier cambio.
Instalación desde ClawHub
ClawHub es el registro público de skills. Use los comandosopenclaw skills para instalar y actualizar, o la CLI clawhub para
publicar y sincronizar.
Detalles de la instalación
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
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
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
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
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
Á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.Formato de SKILL.md
Cada skill necesita como mínimo unname y un description en el frontmatter:
OpenClaw sigue la especificación AgentSkills. El frontmatter
se analiza primero como YAML; si esto falla, se recurre a un analizador que solo admite
una línea. Los bloques
metadata anidados (incluidas las asignaciones YAML de varias líneas) se
convierten en una cadena JSON y se vuelven a analizar como JSON5, por lo que funciona el formato de bloque mostrado
en Control de elegibilidad. Use {baseDir} en el cuerpo para hacer referencia a la
ruta de la carpeta de la skill.Claves opcionales del frontmatter
string
URL que aparece como “Website” en la interfaz de Skills de macOS. También se admite mediante
metadata.openclaw.homepage.boolean
predeterminado:"true"
Cuando
true, la skill se expone como un comando de barra diagonal invocable por el usuario.boolean
predeterminado:"false"
Cuando
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."tool"
Cuando se establece en
tool, el comando de barra diagonal omite el modelo y se despacha
directamente a una herramienta registrada.string
Nombre de la herramienta que se invocará cuando se establezca
command-dispatch: tool."raw"
predeterminado:"raw"
Para 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 mediantemetadata.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.
boolean
Cuando
true, incluye siempre la skill y omite todas las demás restricciones.string
Emoji opcional que se muestra en la interfaz de Skills de macOS.
string
URL opcional que se muestra como “Website” en la interfaz de Skills de macOS.
("darwin" | "linux" | "win32")[]
Filtro de plataforma. Cuando se establece, la skill solo es apta en uno de los sistemas operativos indicados.
string[]
Cada binario debe existir en
PATH.string[]
Al menos un binario debe existir en
PATH.string[]
Cada variable de entorno debe existir en el proceso o proporcionarse mediante la configuración.
string[]
Cada ruta
openclaw.json debe evaluarse como verdadera.string
Nombre de la variable de entorno asociada con
skills.entries.<name>.apiKey.object[]
Especificaciones opcionales del instalador que utiliza la interfaz de Skills de macOS (brew / node / go / uv / download).
Los bloques heredados
metadata.clawdbot se siguen aceptando cuando
metadata.openclaw está ausente, de modo que las skills instaladas más antiguas conservan sus
restricciones de dependencias y sugerencias del instalador. Las skills nuevas deben usar
metadata.openclaw.Especificaciones del instalador
Las especificaciones del instalador indican a la interfaz de Skills de macOS cómo instalar una dependencia:Reglas de selección del instalador
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
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
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 enskills.entries dentro de
~/.openclaw/openclaw.json:
boolean
false 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.string | { 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.Record<string, string>
Variables de entorno inyectadas para la ejecución del agente. Solo se inyectan cuando la
variable aún no está establecida en el proceso.
object
Contenedor opcional para campos de configuración personalizados por skill.
string[]
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.
De forma predeterminada, las claves de configuración coinciden con el nombre de la skill. Si una skill define
metadata.openclaw.skillKey, utilice esa clave en skills.entries.
Escriba entre comillas los nombres con guiones: JSON5 permite claves entre comillas.Inyección del entorno
Cuando se inicia una ejecución del agente, OpenClaw:1
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.
2
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.3
Crea el prompt del sistema
Las skills aptas se compilan en un bloque XML compacto y se inyectan en el
prompt del sistema.
4
Restaura el entorno
Cuando finaliza la ejecución, se restaura el entorno original.
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.
Observador de Skills
Observador de Skills
De forma predeterminada, OpenClaw observa las carpetas de skills y actualiza la instantánea cuando
cambian los archivos Los eventos del observador utilizan una estabilización integrada de 250 ms. Utilice
SKILL.md. Configúrelo en skills.load: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)
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.
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
Creación de Skills
Guía paso a paso para crear una Skill personalizada.
Taller de Skills
Cola de propuestas para Skills redactadas por agentes.
Configuración de Skills
Esquema completo de configuración de
skills.* y listas de agentes permitidos.Comandos de barra diagonal
Cómo se registran y enrutan los comandos de barra diagonal de las Skills.
ClawHub
Explore y publique Skills en el registro público.
Plugins
Los Plugins pueden incluir Skills junto con las herramientas que documentan.