Skills

Création de skills

Skills apprend à l’agent comment et quand utiliser les outils. Chaque Skill est un répertoire contenant un fichier SKILL.md avec un frontmatter YAML et des instructions Markdown. OpenClaw charge les Skills depuis plusieurs racines selon un ordre de priorité défini.

Créer votre première Skill

  • Create the skill directory

    Les Skills se trouvent dans le dossier skills/ de votre espace de travail :

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

    Vous pouvez regrouper les Skills dans des sous-dossiers pour les organiser — la Skill reste nommée d’après le frontmatter de SKILL.md, et non d’après le chemin du dossier :

    bash
    mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-world
  • Write SKILL.md

    Le frontmatter définit les métadonnées ; le corps fournit les instructions à l’agent.

    markdown
    ---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!"
    Code
     Règles de nommage :- Utilisez des lettres minuscules, des chiffres et des traits d’union pour `name`.- Faites correspondre le nom du répertoire et la valeur `name` du frontmatter.- `description` est affiché à l’agent et dans la découverte des commandes slash —  conservez-la sur une seule ligne et limitez-la à 160 caractères.  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZnkgdGhlIHNraWxsIGxvYWRlZCI ```bashopenclaw skills list

    Par défaut, OpenClaw surveille les fichiers SKILL.md sous les racines des Skills. Si la surveillance est désactivée ou si vous poursuivez une session existante, démarrez-en une nouvelle afin que l’agent reçoive la liste actualisée :

    bash
    # From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restart
  • Test it

    bash
    openclaw agent --message "give me a greeting"

    Vous pouvez également ouvrir une conversation et interroger directement l’agent. Utilisez /skill hello-world pour l’invoquer explicitement par son nom.

  • Référence de SKILL.md

    Champs obligatoires

    Champ Description
    name Identifiant unique composé de lettres minuscules, de chiffres et de traits d’union
    description Description sur une ligne affichée à l’agent et dans la sortie de découverte

    Clés facultatives du frontmatter

    Champ Valeur par défaut Description
    user-invocable true Expose la Skill comme commande slash utilisateur
    disable-model-invocation false Exclut la Skill du prompt système de l’agent (elle reste exécutable via /skill)
    command-dispatch Définissez la valeur sur tool pour acheminer directement la commande slash vers un outil sans passer par le modèle
    command-tool Nom de l’outil à invoquer lorsque command-dispatch: tool est défini
    command-arg-mode raw Pour l’acheminement vers un outil, transmet à celui-ci la chaîne brute des arguments
    homepage URL affichée sous la forme « Website » dans l’interface Skills de macOS

    Pour les champs de filtrage (requires.bins, requires.env, etc.), consultez Skills — Filtrage.

    Utilisation de {baseDir}

    Référencez les fichiers situés dans le répertoire de la Skill sans coder les chemins en dur — l’ agent résout {baseDir} par rapport au propre répertoire de la Skill :

    markdown
    Run the helper script at `{baseDir}/scripts/run.sh`.

    Ajouter une activation conditionnelle

    Filtrez votre Skill afin qu’elle ne soit chargée que lorsque ses dépendances sont disponibles :

    markdown
    ---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---
    Gating options
    Clé Description
    requires.bins Tous les exécutables doivent exister dans PATH
    requires.anyBins Au moins un exécutable doit exister dans PATH
    requires.env Chaque variable d’environnement doit exister dans le processus ou la configuration
    requires.config Chaque chemin openclaw.json doit avoir une valeur vraie
    os Filtre de plateforme : ["darwin"], ["linux"], ["win32"]
    always Définissez sur true pour ignorer tous les filtres et toujours inclure la Skill

    Référence complète : Skills — Filtrage.

    Environment and API keys

    Associez une clé API à une entrée de Skill dans openclaw.json :

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

    La clé est injectée dans le processus hôte uniquement pendant ce tour de l’agent. Elle n’atteint pas le bac à sable — consultez les variables d’environnement dans le bac à sable.

    Proposer via Skill Workshop

    Pour les Skills rédigées par un agent, ou lorsque vous souhaitez qu’un opérateur les examine avant leur mise en service, utilisez les propositions de Skill Workshop au lieu d’écrire directement SKILL.md.

    bash
    # Propose a brand-new skillopenclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \  --proposal ./PROPOSAL.md \  --description "Updated greeting skill"

    Utilisez --proposal-dir lorsque la proposition comprend des fichiers complémentaires :

    bash
    openclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal-dir ./hello-world-proposal/

    Le répertoire doit contenir PROPOSAL.md à sa racine. Les fichiers complémentaires doivent être placés sous assets/, examples/, references/, scripts/ ou templates/.

    Après examen :

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

    Consultez Skill Workshop pour connaître le cycle de vie complet d’une proposition.

    Publier sur ClawHub

  • Ensure your SKILL.md is complete

    Vérifiez que name, description et tous les champs de filtrage metadata.openclaw sont définis. Ajoutez une URL homepage si vous disposez d’une page de projet.

  • Install the standalone ClawHub CLI and log in

    bash
    npm i -g clawhubclawhub login
  • Publish

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

    Ajoutez --version <version> ou --owner <owner> pour remplacer la version déduite ou publier sous un propriétaire précis. Consultez ClawHub — Publication et CLI ClawHub pour connaître le processus complet, la portée des propriétaires et les autres commandes de maintenance (clawhub sync, clawhub skill rename, ...).

  • Bonnes pratiques

    Voir aussi

    Was this useful?
    On this page

    On this page