Skills

Skills

Skills sont des fichiers d’instructions Markdown qui enseignent à l’agent comment et quand utiliser les outils. Chaque skill se trouve dans un répertoire contenant un fichier SKILL.md avec un frontmatter YAML et un corps Markdown. OpenClaw charge les Skills intégrés ainsi que toute surcharge locale, et les filtre au moment du chargement selon l’environnement, la configuration et la présence des binaires.

Ordre de chargement

OpenClaw charge depuis ces sources, par ordre de priorité décroissante. Lorsque le même nom de skill apparaît à plusieurs endroits, la source ayant la priorité la plus élevée l’emporte.

Priorité Source Chemin
1 — maximale Skills de l’espace de travail <workspace>/skills
2 Skills d’agent de projet <workspace>/.agents/skills
3 Skills d’agent personnelles ~/.agents/skills
4 Skills gérées / locales ~/.openclaw/skills
5 Skills intégrées livrées avec l’installation
6 — minimale Répertoires supplémentaires skills.load.extraDirs + Skills de plugin

Les racines de Skills prennent en charge les mises en page groupées. OpenClaw découvre une skill chaque fois que SKILL.md apparaît n’importe où sous une racine configurée :

text
<workspace>/skills/research/SKILL.md          ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"

Le chemin du dossier sert uniquement à l’organisation. Le nom de la skill, la commande slash et la clé de liste d’autorisation proviennent tous du champ frontmatter name (ou du nom du répertoire lorsque name est absent).

Skills par agent et Skills partagées

Dans les configurations multi-agents, chaque agent possède son propre espace de travail. Utilisez le chemin qui correspond à la visibilité souhaitée :

Portée Chemin Visible par
Par agent <workspace>/skills Uniquement cet agent
Agent de projet <workspace>/.agents/skills Uniquement l’agent de cet espace de travail
Agent personnel ~/.agents/skills Tous les agents sur cette machine
Géré partagé ~/.openclaw/skills Tous les agents sur cette machine
Répertoires supplémentaires skills.load.extraDirs Tous les agents sur cette machine

Listes d’autorisation des agents

L’emplacement d’une skill (priorité) et sa visibilité (quel agent peut l’utiliser) sont des contrôles distincts. Utilisez les listes d’autorisation pour restreindre les Skills qu’un agent voit, quel que soit l’endroit d’où elles sont chargées.

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    ],  },}
Règles de liste d’autorisation
  • Omettez agents.defaults.skills pour laisser toutes les Skills sans restriction par défaut.
  • Omettez agents.list[].skills pour hériter de agents.defaults.skills.
  • Définissez agents.list[].skills: [] pour n’exposer aucune skill à cet agent.
  • Une liste agents.list[].skills non vide constitue l’ensemble final : elle ne fusionne pas avec les valeurs par défaut.
  • La liste d’autorisation effective s’applique à la construction des prompts, à la découverte des commandes slash, à la synchronisation du sandbox et aux instantanés de skills.
  • Ce n’est pas une frontière d’autorisation du shell hôte. Si le même agent peut utiliser exec, restreignez ce shell séparément avec du sandboxing, l’isolation des utilisateurs OS, des listes d’interdiction/d’autorisation pour exec et des identifiants par ressource.

Plugins et Skills

Les plugins peuvent livrer leurs propres Skills en listant des répertoires skills dans openclaw.plugin.json (chemins relatifs à la racine du plugin). Les Skills de plugin se chargent lorsque le plugin est activé ; par exemple, le plugin navigateur fournit une skill browser-automation pour le contrôle du navigateur en plusieurs étapes.

Les répertoires de Skills de plugin fusionnent au même niveau de faible priorité que skills.load.extraDirs, donc une skill intégrée, gérée, d’agent ou d’espace de travail portant le même nom les remplace. Restreignez-les via metadata.openclaw.requires.config sur l’entrée de configuration du plugin.

Consultez Plugins et Outils pour le système de plugins complet.

Atelier Skills

Atelier Skills est une file de propositions entre l’agent et vos fichiers de skills actifs. Lorsque l’agent repère un travail réutilisable, il rédige une proposition au lieu d’écrire directement dans SKILL.md. Vous examinez et approuvez avant tout changement.

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

Consultez Atelier Skills pour le cycle de vie complet, la référence CLI et la configuration.

Installation depuis ClawHub

ClawHub est le registre public de Skills. Utilisez les commandes openclaw skills pour installer et mettre à jour, ou la CLI clawhub pour publier et synchroniser.

Action Commande
Installer une skill dans l’espace de travail openclaw skills install @owner/<slug>
Installer depuis un dépôt Git openclaw skills install git:owner/repo@ref
Installer un répertoire de skill local openclaw skills install ./path/to/skill --as my-tool
Installer pour tous les agents locaux openclaw skills install @owner/<slug> --global
Mettre à jour toutes les Skills de l’espace de travail openclaw skills update --all
Mettre à jour une skill gérée partagée openclaw skills update @owner/<slug> --global
Mettre à jour toutes les Skills gérées partagées openclaw skills update --all --global
Vérifier l’enveloppe de confiance d’une skill openclaw skills verify @owner/<slug>
Imprimer la Skill Card générée openclaw skills verify @owner/<slug> --card
Publier / synchroniser via la CLI ClawHub clawhub sync --all
Détails d’installation

openclaw skills install installe par défaut dans le répertoire skills/ de l’espace de travail actif. Ajoutez --global pour installer dans le répertoire partagé ~/.openclaw/skills, visible par tous les agents locaux sauf restriction par les listes d’autorisation d’agents.

Les installations Git et locales attendent SKILL.md à la racine de la source. Le slug provient du frontmatter name de SKILL.md lorsqu’il est valide, puis se rabat sur le nom du répertoire ou du dépôt. Utilisez --as <slug> pour le remplacer. openclaw skills update suit uniquement les installations ClawHub : réinstallez les sources Git ou locales pour les actualiser.

Vérification et analyse de sécurité

openclaw skills verify @owner/<slug> demande à ClawHub l’enveloppe de confiance clawhub.skill.verify.v1 de la skill. Les Skills ClawHub installées se vérifient par rapport à la version et au registre enregistrés dans .clawhub/origin.json. Les slugs nus restent acceptés pour les Skills existantes installées ou non ambiguës, mais les références qualifiées par propriétaire évitent l’ambiguïté de l’éditeur.

Les pages de skills ClawHub exposent le dernier état d’analyse de sécurité avant l’installation, avec des pages de détail pour VirusTotal, ClawScan et l’analyse statique. La commande se termine avec un code non nul lorsque ClawHub marque la vérification comme échouée. Les éditeurs corrigent les faux positifs via le tableau de bord ClawHub ou clawhub skill rescan @owner/<slug>.

Installations d’archives privées

Les clients Gateway qui ont besoin d’une distribution hors ClawHub peuvent préparer une archive zip de skill avec skills.upload.begin, skills.upload.chunk et skills.upload.commit, puis l’installer avec skills.install({ source: "upload", ... }). Ce chemin est désactivé par défaut et nécessite skills.install.allowUploadedArchives: true dans openclaw.json. Les installations ClawHub normales n’ont jamais besoin de ce paramètre.

Sécurité

Confinement des chemins

La découverte des Skills d’espace de travail, d’agent de projet et de répertoire supplémentaire n’accepte que les racines de skills dont le chemin réel résolu reste dans la racine configurée, sauf si skills.load.allowSymlinkTargets approuve explicitement une racine cible. Atelier Skills écrit via ces cibles approuvées uniquement lorsque skills.workshop.allowSymlinkTargetWrites est activé. Les répertoires gérés ~/.openclaw/skills et personnels ~/.agents/skills peuvent contenir des dossiers de skills liés symboliquement, mais chaque chemin réel de SKILL.md doit toujours rester dans son répertoire de skill résolu.

Politique d’installation de l’opérateur

Configurez security.installPolicy pour exécuter une commande de politique locale approuvée avant la poursuite des installations de skills. La politique reçoit les métadonnées et le chemin source préparé, s’applique aux chemins ClawHub, téléversé, Git, local, de mise à jour et d’installation de dépendances, et échoue de manière fermée lorsque la commande ne peut pas retourner une décision valide.

Portée de l’injection de secrets

skills.entries.*.env et skills.entries.*.apiKey injectent des secrets dans le processus hôte pour ce tour d’agent uniquement, pas dans le sandbox. Gardez les secrets hors des prompts et des journaux.

Pour le modèle de menace plus large et les listes de contrôle de sécurité, consultez Sécurité.

Format SKILL.md

Chaque skill nécessite au minimum un name et une description dans le 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...

Clés frontmatter facultatives

homepagestring

URL affichée comme "Site web" dans l’UI macOS Skills. Également prise en charge via metadata.openclaw.homepage.

user-invocablebooleandefault: true

Lorsque true, la skill est exposée comme commande slash invocable par l’utilisateur.

disable-model-invocationbooleandefault: false

Lorsque true, OpenClaw garde les instructions de la skill hors du prompt normal de l’agent. La skill reste disponible comme commande slash lorsque user-invocable vaut également true.

command-dispatch"tool"

Lorsqu’elle est définie sur tool, la commande slash contourne le modèle et est distribuée directement à un outil enregistré.

command-toolstring

Nom de l’outil à invoquer lorsque command-dispatch: tool est défini.

command-arg-mode"raw"default: raw

Pour la répartition des outils, transmet la chaîne d'arguments brute à l'outil sans analyse par le noyau. L'outil reçoit { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.

Contrôle d'éligibilité

OpenClaw filtre les Skills au moment du chargement avec metadata.openclaw (JSON sur une seule ligne dans le frontmatter). Un Skill sans bloc metadata.openclaw est toujours éligible sauf s'il est explicitement désactivé.

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

Quand true, inclut toujours le Skill et ignore tous les autres contrôles.

emojistring

Emoji facultatif affiché dans l'interface Skills de macOS.

homepagestring

URL facultative affichée comme « Site web » dans l'interface Skills de macOS.

os"darwin" | "linux" | "win32"

Filtre de plateforme. Quand il est défini, le Skill n'est éligible que sur les systèmes d'exploitation listés.

requires.binsstring[]

Chaque binaire doit exister sur PATH.

requires.anyBinsstring[]

Au moins un binaire doit exister sur PATH.

requires.envstring[]

Chaque variable d'environnement doit exister dans le processus ou être fournie via la configuration.

requires.configstring[]

Chaque chemin openclaw.json doit être truthy.

primaryEnvstring

Nom de variable d'environnement associé à skills.entries.<name>.apiKey.

installobject[]

Spécifications d'installation facultatives utilisées par l'interface Skills de macOS (brew / node / go / uv / download).

Spécifications d'installation

Les spécifications d'installation indiquent à l'interface Skills de macOS comment installer une dépendance :

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)",            },          ],      },  }---
Installer selection rules
  • Quand plusieurs programmes d'installation sont listés, le Gateway choisit une option préférée (brew si disponible, sinon node).
  • Si tous les programmes d'installation sont download, OpenClaw liste chaque entrée afin que vous puissiez voir tous les artefacts disponibles.
  • Les spécifications peuvent inclure os: ["darwin"|"linux"|"win32"] pour filtrer par plateforme.
  • Les installations Node respectent skills.install.nodeManager dans openclaw.json (valeur par défaut : npm ; options : npm / pnpm / yarn / bun). Cela n'affecte que les installations de Skills ; le runtime Gateway doit toujours être Node.
  • Préférence d'installation du Gateway : Homebrew → uv → gestionnaire node configuré → go → download.
Per-installer details
  • Homebrew : OpenClaw n'installe pas automatiquement Homebrew et ne traduit pas les formules brew en commandes de paquet système. Dans les conteneurs Linux sans brew, les programmes d'installation exclusivement brew sont masqués ; utilisez une image personnalisée ou installez la dépendance manuellement.
  • Go : OpenClaw nécessite Go 1.21 ou une version plus récente pour les installations automatiques de Skills et conserve les paramètres GOBIN, GOPATH et GOTOOLCHAIN existants. Si la chaîne d'outils configurée ne peut pas satisfaire la version Go requise par un module, l'onboarding groupe le Skill avec les prérequis Go manuels après la tentative d'installation. Si go est absent et que Homebrew est disponible, OpenClaw installe d'abord Go via Homebrew et définit GOBIN sur le répertoire bin de Homebrew. Sur Linux, OpenClaw peut plutôt utiliser apt-get en tant que root ou via sudo sans mot de passe lorsque le candidat golang-go actualisé satisfait la version minimale.
  • Download : url (obligatoire), archive (tar.gz | tar.bz2 | zip), extract (valeur par défaut : automatique lorsqu'une archive est détectée), stripComponents, targetDir (valeur par défaut : ~/.openclaw/tools/<skillKey>).
Sandboxing notes

requires.bins est vérifié sur l'hôte au moment du chargement du Skill. Si un agent s'exécute dans un bac à sable, le binaire doit aussi exister dans le conteneur. Installez-le via agents.defaults.sandbox.docker.setupCommand ou une image personnalisée. setupCommand s'exécute une fois après la création du conteneur et nécessite une sortie réseau, un système de fichiers racine inscriptible et un utilisateur root dans le bac à sable.

Remplacements de configuration

Activez/désactivez et configurez les Skills groupés ou gérés sous skills.entries dans ~/.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 désactive le Skill même lorsqu'il est groupé ou installé. Le Skill groupé coding-agent est opt-in — définissez skills.entries.coding-agent.enabled: true et assurez-vous que claude, codex, opencode ou une autre CLI prise en charge est installé et authentifié.

apiKeystring | { source, provider, id }

Champ de commodité pour les Skills qui déclarent metadata.openclaw.primaryEnv. Prend en charge une chaîne en texte clair ou un objet SecretRef.

env"Record<string,
configobject

Conteneur facultatif pour les champs de configuration personnalisés par Skill.

allowBundledstring[]

Liste d'autorisation facultative pour les Skills groupés uniquement. Quand elle est définie, seuls les Skills groupés dans la liste sont éligibles. Les Skills gérés et de l'espace de travail ne sont pas affectés.

Injection d'environnement

Quand une exécution d'agent démarre, OpenClaw :

  • Reads skill metadata

    OpenClaw résout la liste effective des Skills pour l'agent, en appliquant les règles de contrôle, les listes d'autorisation et les remplacements de configuration.

  • Injects env and API keys

    skills.entries.<key>.env et skills.entries.<key>.apiKey sont appliqués à process.env pendant la durée de l'exécution.

  • Builds the system prompt

    Les Skills éligibles sont compilés dans un bloc XML compact et injectés dans le prompt système.

  • Restores the environment

    Une fois l'exécution terminée, l'environnement d'origine est restauré.

  • Pour le backend groupé claude-cli, OpenClaw matérialise également le même instantané de Skills éligibles sous forme de Plugin Claude Code temporaire et le transmet via --plugin-dir. Les autres backends CLI utilisent uniquement le catalogue du prompt.

    Instantanés et actualisation

    OpenClaw prend un instantané des Skills éligibles au démarrage d'une session et réutilise cette liste pour tous les tours suivants de la session. Les modifications des Skills ou de la configuration prennent effet à la prochaine nouvelle session.

    Les Skills s'actualisent en milieu de session dans deux cas :

    • Le surveillant des Skills détecte une modification de SKILL.md.
    • Un nouveau nœud distant éligible se connecte.

    La liste actualisée est prise en compte au prochain tour d'agent. Si la liste d'autorisation effective de l'agent change, OpenClaw actualise l'instantané pour garder les Skills visibles alignés.

    Skills watcher

    Par défaut, OpenClaw surveille les dossiers de Skills et incrémente l'instantané lorsque les fichiers SKILL.md changent. Configurez sous skills.load :

    json5
    {  skills: {    load: {      extraDirs: ["~/Projects/agent-scripts/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],      watch: true,      watchDebounceMs: 250,    },  },}

    Utilisez allowSymlinkTargets pour les dispositions de liens symboliques intentionnelles où un lien symbolique racine de Skill pointe en dehors de la racine configurée, par exemple <workspace>/skills/manager -> ~/Projects/manager/skills. Activez skills.workshop.allowSymlinkTargetWrites uniquement lorsque Skill Workshop doit aussi appliquer les propositions via ces chemins symboliques approuvés.

    Remote macOS nodes (Linux gateway)

    Si le Gateway s'exécute sur Linux mais qu'un nœud macOS est connecté avec system.run autorisé, OpenClaw peut considérer les Skills réservés à macOS comme éligibles lorsque les binaires requis sont présents sur ce nœud. L'agent doit exécuter ces Skills via l'outil exec avec host=node.

    Les nœuds hors ligne ne rendent pas les Skills disponibles uniquement à distance visibles. Si un nœud cesse de répondre aux sondes de binaires, OpenClaw efface ses correspondances de binaires mises en cache.

    Impact sur les tokens

    Lorsque des Skills sont éligibles, OpenClaw injecte un bloc XML compact dans le prompt système. Le coût est déterministe :

    text
    total = 195 + Σ (97 + len(name) + len(description) + len(filepath))
    • Surcoût de base (uniquement quand ≥ 1 Skill) : ~195 caractères
    • Par Skill : ~97 caractères + les longueurs de vos champs name, description et location
    • L'échappement XML développe & < > " ' en entités, ajoutant quelques caractères par occurrence
    • À ~4 caractères/token, 97 caractères ≈ 24 tokens par Skill avant les longueurs des champs

    Gardez les descriptions courtes et explicites pour minimiser le surcoût du prompt.

    Connexe

    Was this useful?
    On this page

    On this page