Skills

Creación de Skills

Skills enseña al agente cómo y cuándo usar herramientas. Cada skill es un directorio que contiene un archivo SKILL.md con frontmatter YAML e instrucciones en Markdown. OpenClaw carga las skills desde varias raíces según un orden de precedencia definido.

Crear la primera skill

  • Crear el directorio de la skill

    Las skills se encuentran en la carpeta skills/ del espacio de trabajo:

    bash
    mkdir -p ~/.openclaw/workspace/skills/hello-world

    Las skills se pueden agrupar en subcarpetas para organizarlas; la skill sigue recibiendo el nombre del frontmatter SKILL.md, no de la ruta de la carpeta:

    bash
    mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# el nombre de la skill sigue siendo "hello-world" y se invoca como /hello-world
  • Escribir SKILL.md

    El frontmatter define los metadatos; el cuerpo proporciona instrucciones al agente.

    markdown
    ---name: hello-worlddescription: Una skill sencilla que muestra un saludo.--- # Hola, mundo Cuando el usuario solicite un saludo, usa la herramienta `exec` para ejecutar: ```bashecho "¡Hola desde tu skill personalizada!"
    Code
     Reglas de nomenclatura:- Usa letras minúsculas, dígitos y guiones para `name`.- Mantén alineados el nombre del directorio y el valor `name` del frontmatter.- `description` se muestra al agente y en la detección de comandos con barra;  debe ocupar una sola línea y tener menos de 160 caracteres.  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZmljYXIgcXVlIHNlIGhheWEgY2FyZ2FkbyBsYSBza2lsbCI ```bashopenclaw skills list

    De forma predeterminada, OpenClaw supervisa los archivos SKILL.md en las raíces de skills. Si el supervisor está deshabilitado o se continúa una sesión existente, se debe iniciar una nueva para que el agente reciba la lista actualizada:

    bash
    # Desde el chat: archiva la sesión actual e inicia una nueva/new # O reinicia el Gatewayopenclaw gateway restart
  • Probarla

    bash
    openclaw agent --message "dame un saludo"

    También se puede abrir un chat y pedírselo directamente al agente. Usa /skill hello-world para invocarla explícitamente por su nombre.

  • Referencia de SKILL.md

    Campos obligatorios

    Campo Descripción
    name Identificador único que usa letras minúsculas, dígitos y guiones
    description Descripción de una línea que se muestra al agente y en la salida de detección

    Claves opcionales del frontmatter

    Campo Valor predeterminado Descripción
    user-invocable true Expone la skill como comando con barra para el usuario
    disable-model-invocation false Mantiene la skill fuera del prompt del sistema del agente (aun así, se ejecuta mediante /skill)
    command-dispatch Se establece en tool para dirigir el comando con barra directamente a una herramienta, omitiendo el modelo
    command-tool Nombre de la herramienta que se invoca cuando se establece command-dispatch: tool
    command-arg-mode raw Para el despacho a herramientas, reenvía a la herramienta la cadena de argumentos sin procesar
    homepage URL que se muestra como "Website" en la interfaz de Skills de macOS

    Para consultar los campos de restricción (requires.bins, requires.env, etc.), véase Skills — Restricciones.

    Uso de {baseDir}

    Haz referencia a archivos dentro del directorio de la skill sin codificar las rutas de forma fija; el agente resuelve {baseDir} con respecto al directorio de la propia skill:

    markdown
    Ejecuta el script auxiliar ubicado en `{baseDir}/scripts/run.sh`.

    Añadir activación condicional

    Restringe la skill para que solo se cargue cuando sus dependencias estén disponibles:

    markdown
    ---name: gemini-searchdescription: Busca mediante la CLI de Gemini.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---
    Opciones de restricción
    Clave Descripción
    requires.bins Todos los binarios deben existir en PATH
    requires.anyBins Al menos un binario debe existir en PATH
    requires.env Cada variable de entorno debe existir en el proceso o en la configuración
    requires.config Cada ruta openclaw.json debe tener un valor verdadero
    os Filtro de plataforma: ["darwin"], ["linux"], ["win32"]
    always Establece true para omitir todas las restricciones e incluir siempre la skill

    Referencia completa: Skills — Restricciones.

    Entorno y claves de API

    Vincula una clave de API a una entrada de skill en openclaw.json:

    json5
    {  skills: {    entries: {      "gemini-search": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },      },    },  },}

    La clave se inyecta en el proceso host solo durante ese turno del agente. No llega al entorno aislado; véanse las variables de entorno en entornos aislados.

    Proponer mediante Skill Workshop

    Para skills redactadas por el agente, o cuando se desea que el operador las revise antes de que una skill entre en funcionamiento, utiliza propuestas de Skill Workshop en lugar de escribir SKILL.md directamente.

    bash
    # Propón una skill completamente nuevaopenclaw skills workshop propose-create \  --name "hello-world" \  --description "Una skill sencilla que muestra un saludo." \  --proposal ./PROPOSAL.md # Propón una actualización de una skill existenteopenclaw skills workshop propose-update hello-world \  --proposal ./PROPOSAL.md \  --description "Skill de saludo actualizada"

    Usa --proposal-dir cuando la propuesta incluya archivos auxiliares:

    bash
    openclaw skills workshop propose-create \  --name "hello-world" \  --description "Una skill sencilla que muestra un saludo." \  --proposal-dir ./hello-world-proposal/

    El directorio debe contener PROPOSAL.md en su raíz. Los archivos auxiliares se colocan en assets/, examples/, references/, scripts/ o templates/.

    Después de la revisión:

    bash
    openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>

    Consulta Skill Workshop para conocer el ciclo de vida completo de las propuestas.

    Publicar en ClawHub

  • Comprobar que SKILL.md esté completo

    Asegúrate de que estén definidos name, description y todos los campos de restricción metadata.openclaw necesarios. Añade una URL homepage si hay una página del proyecto.

  • Instalar la CLI independiente de ClawHub e iniciar sesión

    bash
    npm i -g clawhubclawhub login
  • Publicar

    bash
    clawhub skill publish ./path/to/hello-world

    Añade --version <version> o --owner <owner> para reemplazar la versión inferida o publicar bajo un propietario específico. Consulta ClawHub — Publicación y CLI de ClawHub para conocer el flujo completo, el ámbito de los propietarios y otros comandos de mantenimiento (clawhub sync, clawhub skill rename, ...).

  • Prácticas recomendadas

    Contenido relacionado

    Was this useful?
    On this page

    On this page