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.

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:

text
<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.

json5
{  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.skills para dejar todas las skills sin restricciones de forma predeterminada.
  • Omite agents.list[].skills para heredar agents.defaults.skills.
  • Establece agents.list[].skills: [] para no exponer skills para ese agente.
  • Una lista no vacía agents.list[].skills es 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.

bash
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:

markdown
---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

homepagestring

URL que se muestra como "Sitio web" en la UI de Skills de macOS. También se admite mediante metadata.openclaw.homepage.

user-invocablebooleandefault: true

Cuando es true, la skill se expone como un comando slash invocable por el usuario.

disable-model-invocationbooleandefault: false

Cuando 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-toolstring

Nombre de la herramienta que se invocará cuando command-dispatch: tool esté establecido.

command-arg-mode"raw"default: raw

Para 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.

markdown
---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",      },  }---
alwaysboolean

Cuando es true, siempre incluye la Skill y omite todos los demás controles.

emojistring

Emoji opcional que se muestra en la interfaz de Skills de macOS.

homepagestring

URL 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.

primaryEnvstring

Nombre 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:

markdown
---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.nodeManager en openclaw.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, GOPATH y GOTOOLCHAIN. 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 falta go y Homebrew está disponible, OpenClaw instala Go primero mediante Homebrew y define GOBIN en el bin de Homebrew. En Linux, OpenClaw puede usar en su lugar apt-get como root o mediante sudo sin contraseña cuando el candidato golang-go actualizado 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:

json5
{  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 },    },  },}
enabledboolean

false 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,
configobject

Bolsa 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:

    json5
    {  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:

    text
    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, description y location
    • 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

    Was this useful?
    On this page

    On this page