Lección 17 de 27

Crear skills personalizadas

Las skills de ClawHub no cubren todas las necesidades. Crear tus propias skills te permite conectar OpenClaw con tus herramientas especificas, tus APIs y tus flujos de trabajo unicos. Veamos como construir una skill desde cero.

Estructura de una skill

Una skill es un archivo JavaScript/TypeScript que exporta un objeto con metadatos (nombre, descripcion, parametros) y una funcion de ejecucion. OpenClaw la carga automaticamente y la expone al LLM.

Skill basica: consultar el clima

Creamos una skill que consulta el clima de cualquier ciudad usando una API gratuita.

weather.js
// ~/.openclaw/skills/weather.js
module.exports = {
  name: "weather",
  description: "Consulta el clima actual de una ciudad",
  parameters: {
    city: {
      type: "string",
      description: "Nombre de la ciudad",
      required: true
    }
  },
  async execute({ city }) {
    const res = await fetch(
      `https://wttr.in/${encodeURIComponent(city)}?format=j1`
    );
    const data = await res.json();
    const current = data.current_condition[0];
    return {
      city,
      temp_c: current.temp_C,
      condition: current.weatherDesc[0].value,
      humidity: current.humidity,
      wind_kmph: current.windspeedKmph
    };
  }
};
  1. 1

    Crea el directorio de skills personalizadas: mkdir -p ~/.openclaw/skills

  2. 2

    Crea un archivo .js o .ts con el nombre de tu skill

  3. 3

    Exporta un objeto con: name, description, parameters y execute

  4. 4

    La funcion execute recibe los parametros y retorna un resultado

  5. 5

    Registra la skill con: openclaw skills register ~/.openclaw/skills/weather.js

  6. 6

    Reinicia el daemon: openclaw daemon restart

  7. 7

    Prueba: openclaw chat "Como esta el clima en Buenos Aires?"

Crear tu primera skill personalizada

  1. 1.Crear el directorio de skills
  2. 2.Crear el archivo de la skill
  3. 3.Registrar la skill
  4. 4.Reiniciar el daemon
  5. 5.Probar la skill
Comandos
mkdir -p ~/.openclaw/skills
# Crear el archivo weather.js con el codigo de ejemplo
openclaw skills register ~/.openclaw/skills/weather.js
openclaw daemon restart
openclaw chat "Cual es el clima en Madrid ahora?"

Parametros tipados

Los parametros definen que datos necesita tu skill. Cada parametro tiene: type (string, number, boolean, array), description (para que el LLM entienda cuando usarlo), required (si es obligatorio). El LLM extrae estos parametros automaticamente del mensaje del usuario.

Skill con multiples parametros

Una skill que busca productos en MercadoLibre.

mercadolibre.js
// ~/.openclaw/skills/mercadolibre.js
module.exports = {
  name: "mercadolibre_search",
  description: "Buscar productos en MercadoLibre Argentina",
  parameters: {
    query: {
      type: "string",
      description: "Que producto buscar",
      required: true
    },
    max_price: {
      type: "number",
      description: "Precio maximo en pesos",
      required: false
    },
    limit: {
      type: "number",
      description: "Cantidad de resultados",
      required: false,
      default: 5
    }
  },
  async execute({ query, max_price, limit = 5 }) {
    let url = `https://api.mercadolibre.com/sites/MLA/search?q=${encodeURIComponent(query)}&limit=${limit}`;
    if (max_price) url += `&price=*-${max_price}`;
    const res = await fetch(url);
    const data = await res.json();
    return data.results.map(item => ({
      title: item.title,
      price: item.price,
      link: item.permalink
    }));
  }
};
Desafio

Crea una skill personalizada que consulte una API que uses frecuentemente. Puede ser: dolar blue (api.bluelytics.com.ar), noticias (newsapi.org), GitHub (api.github.com), o cualquier API publica que te interese.

Que debe exportar un archivo de skill de OpenClaw?

Puntos clave

  • Las skills son archivos JS/TS en ~/.openclaw/skills/
  • Exportan un objeto con name, description, parameters y execute
  • Los parametros se extraen automaticamente del mensaje del usuario
  • Registrar con: openclaw skills register path/to/skill.js
  • Puedes conectar cualquier API o servicio como skill personalizada

Quiz Generado por IA

Evalua tu comprension de esta leccion con preguntas personalizadas.