Cómo Crear Habilidades Personalizadas OpenClaw

Ashley Innocent

Ashley Innocent

26 February 2026

Cómo Crear Habilidades Personalizadas OpenClaw

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

TL;DR

El poder de OpenClaw reside en su extensibilidad a través de las habilidades (skills). Con más de 700 habilidades creadas por la comunidad disponibles a través de ClawHub y la capacidad de crear habilidades personalizadas usando archivos SKILL.md o TypeScript, puedes transformar tu asistente OpenClaw en una herramienta especializada para prácticamente cualquier tarea. Esta guía cubre todo, desde la instalación de habilidades existentes hasta la creación y publicación de las tuyas propias.

Introducción

OpenClaw ya ofrece potentes capacidades de serie, pero su verdadero potencial se desbloquea a través de las habilidades. Ya sea que necesites asistencia especializada en codificación, automatización de DevOps, herramientas de investigación o funcionalidad específica de la industria, es probable que exista una habilidad para ello, y si no, puedes crear una.

💡
Al crear habilidades personalizadas que interactúan con APIs externas, es fundamental contar con las herramientas adecuadas para probar esas integraciones. Apidog te ayuda a probar y depurar los puntos finales de API de los que dependen tus habilidades, garantizando integraciones fiables.
button

Con más de 700 habilidades creadas por la comunidad disponibles a través de ClawHub y la capacidad de crear habilidades personalizadas, OpenClaw se convierte en el asistente de IA que necesites.

En esta guía completa, cubriremos:

Comprendiendo las habilidades de OpenClaw

¿Qué son las habilidades?

Las habilidades son extensiones modulares que añaden capacidades específicas a OpenClaw. Piensa en ellas como plugins que le dan a tu asistente de IA nuevas habilidades, desde enviar tipos específicos de correos electrónicos hasta interactuar con APIs particulares.

Tipos de habilidades

1. Habilidades de lenguaje natural (SKILL.md)
La forma más simple: escrita en Markdown con un encabezado YAML. Estas definen los manuales operativos que OpenClaw sigue cuando se cumplen ciertas condiciones.

2. Habilidades de TypeScript
Habilidades completas construidas con TypeScript que pueden acceder a APIs, ejecutar lógica compleja e integrarse profundamente con servicios externos.

3. Habilidades basadas en CLI
Habilidades que envuelven herramientas de línea de comandos, permitiendo a OpenClaw usar cualquier herramienta disponible en tu sistema.

Cómo funcionan las habilidades

Las habilidades se cargan dinámicamente cuando son necesarias (carga just-in-time), lo que mantiene el uso de la memoria manejable. Cuando una solicitud de usuario coincide con los activadores de una habilidad, OpenClaw ejecuta las acciones definidas por la habilidad.

Categorías de habilidades

ClawHub alberga habilidades en numerosas categorías:

Sitio web oficial de ClawHub

Instalación de habilidades desde ClawHub

Encontrar habilidades

Explora el marketplace de ClawHub en clawhub.ai o busca directamente a través de OpenClaw:

# Buscar habilidades
openclaw skills search "github"

# Listar habilidades populares
openclaw skills popular

# Explorar una categoría
openclaw skills browse devops

Instalar una habilidad

Una vez que hayas encontrado una habilidad que quieras, instalarla es sencillo:

# Instalar una habilidad específica
openclaw skills install github-actions

# Instalar con una versión específica
openclaw skills install github-actions@1.2.0

# Instalar desde un editor específico
openclaw skills install @username/skill-name

Instalar todas las habilidades recomendadas

# Instalar habilidades populares para empezar
openclaw skills install-recommended

Verificar la instalación

# Listar todas las habilidades instaladas
openclaw skills list

# Comprobar detalles de la habilidad
openclaw skills info github-actions

Gestionando tus habilidades instaladas

Habilitar y deshabilitar habilidades

# Deshabilitar una habilidad (la mantiene instalada pero sin usar)
openclaw skills disable github-actions

# Habilitar una habilidad deshabilitada
openclaw skills enable github-actions

Actualizar habilidades

# Actualizar una habilidad específica
openclaw skills update github-actions

# Actualizar todas las habilidades
openclaw skills update-all

Eliminar habilidades

# Desinstalar una habilidad
openclaw skills uninstall github-actions

Configuración de habilidades

Muchas habilidades admiten la configuración personalizada:

# Configurar una habilidad
openclaw skills config github-actions --set token=tu-token-github

O edita el archivo de configuración de la habilidad directamente:

# ~/.openclaw/skills/github-actions/config.yaml
token: tu-token-github
default-branch: main
auto-merge: false

Creación de habilidades personalizadas

Cuándo crear habilidades personalizadas

Crea una habilidad personalizada cuando necesites:

Estructura de la habilidad

Una habilidad básica consta de:

mi-habilidad-personalizada/
├── SKILL.md          # Definición de la habilidad (para habilidades de lenguaje natural)
├── config.yaml       # Esquema de configuración
└── icon.svg          # Icono de la habilidad (opcional)

Para habilidades de TypeScript:

mi-habilidad-typescript/
├── src/
│   └── index.ts      # Código principal de la habilidad
├── package.json
├── tsconfig.json
├── config.schema.json
└── skill.yaml        # Manifiesto de la habilidad

Creación de habilidades SKILL.md

Estructura básica de SKILL.md

Aquí tienes un archivo SKILL.md mínimo:

---
name: alerta-clima
description: Obtener alertas meteorológicas para tu ubicación
triggers:
  - "clima"
  - "alerta clima"
  - "pronóstico"
requires:
  - location
actions:
  - name: obtener_clima
    api: https://api.weather.com/v3
    params:
      location: "{location}"
---

# Habilidad de alerta meteorológica

Esta habilidad proporciona alertas meteorológicas y pronósticos para tu ubicación.

## Configuración

Establece tu ubicación en la configuración de la habilidad:
- city: Nombre de tu ciudad
- units: metric o imperial

Ejemplo completo: Habilidad de resumen de correo electrónico

---
name: resumen-email-diario
description: Recibir un resumen diario de tus correos electrónicos importantes
triggers:
  - "resumen email"
  - "emails diarios"
  - "resumir mis emails"
requires:
  - email_access
  - api_key
actions:
  - name: buscar_emails
    method: gmail.users.messages.list
    params:
      q: "is:unread"
      maxResults: 10
  - name: resumir
    model: gpt-4
    prompt: "Resumir estos correos electrónicos en viñetas"
---

# Habilidad de resumen de correo electrónico diario

Mantente al tanto de tu bandeja de entrada con resúmenes diarios automatizados.

## Características

- Recupera correos electrónicos no leídos de Gmail
- Utiliza IA para resumir los puntos clave
- Envía el resumen a tu canal preferido

## Configuración

1. Configura el acceso a la API de Gmail en tus ajustes de OpenClaw
2. Establece tu hora preferida para el resumen
3. Elige tu canal de entrega (Telegram, Discord, etc.)

## Ejemplo de uso

Tú: Envíame mi resumen de correo electrónico
OpenClaw: Aquí tienes un resumen de tus 8 correos electrónicos no leídos:


### Activadores avanzados

Utiliza activadores más sofisticados:

```markdown
---
name: recordatorio-inteligente
triggers:
  # Frases exactas
  - "recuérdame {acción}"
  # Patrones
  - "recuérdame en {duración}"
  # Contextual
  context:
    - channel: trabajo
      patterns: ["reunión", "fecha límite", "proyecto"]
---

# Habilidad de recordatorio inteligente

Gestiona todas las solicitudes de recordatorio con análisis inteligente.

Creación de habilidades de TypeScript

Para integraciones más complejas, las habilidades de TypeScript proporcionan control total.

Configuración de tu entorno de desarrollo

# Crear un nuevo proyecto de habilidad
openclaw skills create mi-habilidad-genial

# Navegar al directorio de la habilidad
cd mi-habilidad-genial

# Instalar dependencias
npm install

# Iniciar servidor de desarrollo
npm run dev

Estructura de la habilidad de TypeScript

// src/index.ts
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';

export default class MyAwesomeSkill implements Skill {
  name = 'mi-habilidad-genial';
  description = 'Una habilidad que hace algo increíble';

  // Se llama cuando se carga la habilidad
  async onLoad(context: SkillContext): Promise<void> {
    console.log('¡Habilidad cargada!');
  }

  // Se llama cuando la habilidad coincide con un activador
  async execute(context: SkillContext): Promise<SkillResult> {
    const { userMessage, config } = context;

    // Tu lógica de habilidad aquí
    const result = await this.doSomethingAwesome(userMessage.content);

    return {
      message: result,
      actions: []
    };
  }

  private async doSomethingAwesome(input: string): Promise<string> {
    // Implementa tu lógica de habilidad
    return `Dijiste: ${input}`;
  }
}

Manifiesto de la habilidad (skill.yaml)

name: mi-habilidad-genial
version: 1.0.0
description: Una habilidad que hace algo increíble
author:
  name: Tu Nombre
  email: tu@ejemplo.com

triggers:
  - pattern: "hacer algo genial"
    type: exact

config:
  apiKey:
    type: string
    required: true
    description: Clave API para el servicio

permissions:
  - network
  - filesystem

runtime: nodejs18

Esquema de configuración (config.schema.json)

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Clave API para el servicio"
    },
    "enabled": {
      "type": "boolean",
      "default": true
    }
  },
  "required": ["apiKey"]
}

Compilación y prueba

# Compilar la habilidad
npm run build

# Ejecutar pruebas
npm test

# Empaquetar para distribución
npm run package

Ejemplo: Habilidad de integración con GitHub

Aquí tienes un ejemplo más completo que muestra la integración de API:

import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
import axios from 'axios';

export default class GitHubSkill implements Skill {
  name = 'github';
  description = 'Interactuar con repositorios de GitHub';

  async execute(context: SkillContext): Promise<SkillResult> {
    const { userMessage, config } = context;
    const message = userMessage.content.toLowerCase();

    if (message.includes('listar repos')) {
      return this.listRepositories(config);
    } else if (message.includes('crear incidencia')) {
      return this.createIssue(context);
    }

    return {
      message: 'Puedo ayudar con la lista de repositorios, la creación de incidencias y más.',
      actions: []
    };
  }

  private async listRepositories(config: any): Promise<SkillResult> {
    const response = await axios.get('https://api.github.com/user/repos', {
      headers: {
        Authorization: `token ${config.githubToken}`
      }
    });

    const repos = response.data.slice(0, 5).map((r: any) => r.name).join('\n');

    return {
      message: `Tus repositorios recientes:\n${repos}`,
      actions: []
    };
  }

  private async createIssue(context: SkillContext): Promise<SkillResult> {
    // Extraer detalles de la incidencia del mensaje del usuario
    return {
      message: 'Necesito más detalles para crear una incidencia. Por favor, especifica el repositorio, el título y la descripción.',
      actions: [
        {
          type: 'request_input',
          fields: ['repo', 'title', 'description']
        }
      ]
    };
  }
}

Publicar habilidades en ClawHub

Preparar tu habilidad para la publicación

  1. Probar a fondo: Asegúrate de que tu habilidad funciona en varios escenarios
  2. Añadir documentación: SKILL.md claro con ejemplos
  3. Establecer permisos adecuados: Solicita solo el acceso necesario
  4. Añadir un icono: Crea un icono SVG simple
  5. Versionado: Utiliza el versionado semántico (1.0.0, 1.1.0, etc.)

Proceso de publicación

# Iniciar sesión en ClawHub
openclaw skills login

# Comprobar que tu habilidad está lista
openclaw skills validate

# Publicar tu habilidad
openclaw skills publish

Requisitos de publicación

Gestión de versiones

# Aumentar versión
openclaw skills version patch  # 1.0.0 -> 1.0.1
openclaw skills version minor  # 1.0.0 -> 1.1.0
openclaw skills version major  # 1.0.0 -> 2.0.0

# Publicar nueva versión
openclaw skills publish

Mejores prácticas de seguridad

Instalar habilidades de terceros

Nota de seguridad importante: El incidente de ClawHavoc a principios de 2026 reveló habilidades maliciosas en ClawHub. Siempre sigue estas precauciones:

  1. Verifica los editores: Instala habilidades solo de editores de confianza y verificados
  2. Revisa los permisos: Comprueba qué permisos solicita la habilidad
  3. Audita el código: Para habilidades de TypeScript, revisa el código fuente
  4. Inicia de forma aislada: Prueba las habilidades en un entorno separado primero
# Comprobar permisos de la habilidad antes de instalar
openclaw skills inspect github-actions

Construcción de habilidades seguras

Al construir tus propias habilidades:

# Especifica siempre los permisos mínimos requeridos
permissions:
  - network  # Solo si es necesario
  - filesystem  # Solo si es necesario

# Nunca codifiques secretos
# MALO:
const apiKey = "sk-1234567890";

# BUENO:
const apiKey = process.env.API_KEY;

Configuración de seguridad recomendada

# ~/.openclaw/security.yaml
skill_security:
  require_virustotal: true
  require_verified_publisher: false  # Establecer en true para producción
  audit_permissions: true
  sandbox_mode: true

Desarrollo avanzado de habilidades

Dependencias de habilidades

Las habilidades pueden depender de otras habilidades:

# skill.yaml
dependencies:
  - name: github
    version: ">=1.0.0"
  - name: slack
    version: ">=2.0.0"

Habilidades impulsadas por eventos

Reacciona a los eventos de OpenClaw:

export default class EventSkill implements Skill {
  async onMessage(context: SkillContext): Promise<SkillResult> {
    // Se llama en cada mensaje
  }

  async onTimer(context: SkillContext): Promise<SkillResult> {
    // Se llama según el horario
  }

  async onStartup(context: SkillContext): Promise<void> {
    // Se llama cuando OpenClaw se inicia
  }

  async onShutdown(context: SkillContext): Promise<void> {
    // Se llama cuando OpenClaw se detiene
  }
}

Uso de MCP con habilidades

Combina habilidades con servidores MCP:

# skill.yaml
mcpServers:
  - name: filesystem
    command: npx @modelcontextprotocol/server-filesystem ./data
  - name: github
    command: npx @modelcontextprotocol/server-github

Resolución de problemas

La habilidad no se carga

# Comprobar el estado de la habilidad
openclaw skills status mi-habilidad

# Ver registros de la habilidad
openclaw logs --skill mi-habilidad

Causas comunes:

El activador no coincide

# Probar coincidencia de activadores
openclaw skills test-trigger "tu frase de activador"

Problemas de rendimiento

# Comprobar el uso de recursos de la habilidad
openclaw skills monitor

# Deshabilitar temporalmente habilidades que consumen muchos recursos
openclaw skills disable habilidad-pesada

Conclusión

El sistema de habilidades de OpenClaw lo transforma de un simple asistente de IA en una plataforma potente y extensible. Ya sea que instales habilidades creadas por la comunidad desde ClawHub o construyas tus propias soluciones personalizadas, las posibilidades son prácticamente ilimitadas.

El ecosistema de OpenClaw se fortalece con cada nueva habilidad. ¡Empieza a construir hoy mismo!

💡
¿Listo para construir aplicaciones de IA profesionales? Descarga Apidog gratis para probar y gestionar tus integraciones de servicios de IA con una interfaz visual diseñada para desarrolladores.
button
Ilustración de las especificaciones de diseño de Apidog

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs