Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Compétences

Les Skills sont des instructions réutilisables et des définitions d’outils optionnelles que ZeroClaw peut charger dans une session d’agent. Utilisez-les pour des workflows répétables tels que des checklists de revue de code, des runbooks de déploiement, des playbooks de support ou des wrappers d’outils spécifiques à un domaine.

Les Skills se trouvent dans l’un des trois emplacements :

  • Compétences d’espace de travail par agent sous <install>/agents/<alias>/workspace/skills/<name>/.
  • Bundles de compétences partagés sous <install>/shared/skills/<bundle>/<name>/. Les agents les chargent lorsque leur configuration liste le bundle dans agents.<alias>.skill_bundles.
  • Le répertoire global de skills sous <install>/data/skills/<name>/. Le CLI peut y installer en tant que solution de repli, mais les agents ne chargent pas automatiquement les skills globaux.

Utilisez les bundles pour les skills qu’un agent doit charger à l’exécution. Un bundle est configuré sous [skill_bundles.<alias>] ; lorsque son directory est omis, ZeroClaw le résout en <install>/shared/skills/<alias>/.

<install>/shared/skills/<bundle>/<name>/

Pour les compétences locales écrites à la main, utilisez SKILL.md ou SKILL.toml. Utilisez SKILL.md pour les instructions accompagnées de métadonnées simples. Utilisez SKILL.toml lorsque la compétence nécessite des prompts structurés ou des définitions d’outils. ZeroClaw comprend également manifest.toml pour les packages de compétences de type registre, mais SKILL.md et SKILL.toml sont les formats d’écriture locale recommandés.

Pour distribuer un ensemble de skills sous forme de package signé, versionné et installable, consultez Skill bundles. Notez que ceux-ci reposent sur le système de plugins, que les binaires de release précompilés n’incluent pas ; sur un binaire standard, les bundles partagés présentés sur cette page constituent le mécanisme pris en charge.

Créer une compétence Markdown

Créez un bundle, puis générez une compétence uniquement basée sur des instructions dans celui-ci :

sh

zeroclaw skills bundle add ops
zeroclaw skills add release-check \
  --bundle ops \
  --description "Check release readiness before tagging" \
  --edit

La commande skills add écrit SKILL.md dans le répertoire du bundle résolu et l’ouvre dans votre éditeur. Remplacez les instructions générées par le flux de travail que vous souhaitez que l’agent suive :

# Release check

Review the release notes, changelog, version tags, and migration notes before confirming that a release is ready.

Le nom du répertoire devient le nom de la compétence. ZeroClaw utilise le premier paragraphe hors titre comme description lorsqu’aucune description n’est présente dans le frontmatter.

SKILL.md prend également en charge un frontmatter simple pour les métadonnées :

---
name: release-check
description: Check release readiness before tagging
version: 0.1.0
author: zeroclaw_user
tags: [release, docs]
---

# Release check

Review the release notes, changelog, version tags, and migration notes before confirming that a release is ready.

Les champs de frontmatter pris en charge sont name, description, author, version, tags, always et slash_options.

La définition de always: true conserve les instructions complètes d’une compétence intégrées au prompt système, même lorsque l’agent s’exécute en mode compact pour les prompts de compétences (dans lequel les autres compétences sont résumées et leurs instructions chargées à la demande via read_skill). La valeur par défaut est false. Réservez cette option aux compétences liées aux politiques ou à la sécurité critique, qui doivent toujours être visibles par le modèle, et non aux compétences de workflow courantes comme la vérification de release ci-dessus :

---
name: security-policy
description: Non-negotiable safety rules the agent must follow every turn.
version: 0.1.0
author: zeroclaw_user
tags: [policy]
always: true
---

# Security policy

Never exfiltrate secrets, never disable audit logging, and always ask for approval before touching production credentials.

Créer une compétence TOML

Un skill peut également être un manifeste TOML structuré (SKILL.toml). La table [skill] requiert name et description ; version prend par défaut la valeur 0.1.0 lorsqu’elle est omise ; author, tags, prompts et always sont facultatifs (always prend par défaut la valeur false ; voir ci-dessus). Les entrées d’outils peuvent utiliser kind = "shell", kind = "http" ou kind = "script". Gardez les descriptions des outils précises et ciblées afin que le modèle sache quand les utiliser.

Les outils de compétence HTTP utilisent uniquement les URL http et https. Les arguments sont encodés en pourcentage avant leur insertion, les redirections et les proxys ambiants sont désactivés, et la destination résolue doit respecter la politique de sortie vers le réseau public de ZeroClaw. Les destinations privées ou de métadonnées sont rejetées, et les corps de réponse de plus d’un mégaoctet sont tronqués avant de pouvoir augmenter la mémoire d’exécution.

Options et localisations des commandes slash

Une compétence taggée slash est exposée en tant que commande slash dans un canal de discussion (par ex. Discord /search). Elle peut déclarer des [[skill.slash_options]] typés ; une compétence qui n’en déclare aucune utilise en repli une unique entrée de texte libre obligatoire. La description de la commande et la description de chaque option acceptent une map description_localizations optionnelle indexée par code de locale. Les codes de locale inconnus ou non pris en charge sont ignorés avec un avertissement plutôt que de faire échouer l’enregistrement, de sorte qu’une faute de frappe ne bloque jamais l’enregistrement de la commande.

[skill] name = “search” description = “Rechercher sur le web” tags = [“slash”]

Descriptions de commandes localisées, indexées par code de locale.

description_localizations = { fr = “Rechercher sur le web”, ja = “ウェブを検索” }

[[skill.slash_options]] name = “query” description = “La requête de recherche” type = “string” required = true

Descriptions d’options localisées, même forme.

description_localizations = { fr = “La requête de recherche” }## Gérer les compétences installées

Lister l’inventaire complet :

sh

zeroclaw skills list

Listez exactement ce qu’un agent charge à l’exécution :

sh

zeroclaw skills list --agent default

Lister un bundle directement :

sh

zeroclaw skills list --bundle ops

Auditer une compétence installée ou un répertoire de compétences local :

sh

zeroclaw skills audit release-check
zeroclaw skills audit ./release-check

Installez une compétence depuis un répertoire local, une URL Git ou un nom de registre :

sh

zeroclaw skills install ./release-check --bundle ops
zeroclaw skills install https://example.com/zeroclaw-release-check.git --bundle ops
zeroclaw skills install release-check --agent default

Installer une compétence par son nom depuis un dépôt de catalogue Git (un dépôt dont les compétences se trouvent sous skills/<name>/) :

sh

zeroclaw skills install https://github.com/vercel-labs/skills --skill find-skills

La priorité des destinations d’installation est :

  1. Spécifier --bundle <alias>.
  2. Le seul bundle assigné de l’agent cible. --agent <alias> choisit l’agent cible ; lorsqu’il est omis, ZeroClaw utilise l’agent d’exécution actif.
  3. Le répertoire global sous <install>/data/skills/.

Si l’agent cible dispose de plusieurs bundles, spécifiez --bundle afin que la destination soit non ambiguë. Si ZeroClaw retombe sur le répertoire global, le skill est installé et répertorié, mais aucun agent ne le charge automatiquement. Attachez-le à un bundle pour le rendre disponible lors de l’exécution.

Supprimer une compétence installée :

sh

zeroclaw skills remove release-check --bundle ops
zeroclaw skills remove release-check --agent default

La suppression d’un bundle archive le répertoire skill afin qu’il puisse être récupéré. La suppression du répertoire global supprime la copie globale une fois que les vérifications de confinement de chemin existantes ont réussi.

Exécutez la validation TEST.sh pour une compétence, ou omettez le nom pour tester toutes les compétences installées :

sh

zeroclaw skills test release-check
zeroclaw skills test --verbose

zeroclaw skills test exécute le fichier TEST.sh de la compétence lorsqu’il existe. Inspectez TEST.sh avant de lancer les tests à partir d’une source de compétence à laquelle vous ne faites pas déjà confiance.

Si zeroclaw skills list affiche une compétence mais que l’agent ne l’utilise pas, consultez la vue d’exécution :

sh

zeroclaw skills list --agent default

Lorsque la skill apparaît uniquement dans le groupe global, installez-la dans un bundle et assurez-vous que l’agent liste ce bundle dans agents.<alias>.skill_bundles.

Pour un exemple concret qui transforme un outil intégré en workflow d’opérateur réutilisable, consultez utilisation de la mémoire relationnelle depuis les compétences.

Suggestions de fonctionnalités déclenchées par invite

ZeroClaw peut éventuellement suggérer une capacité de skill installable lorsqu’un prompt soumis nomme clairement un élément qui existe dans les métadonnées de registre en cache, mais qui n’est pas installé. Le chemin côté serveur s’exécute après la soumission et avant le tour LLM normal. Il renvoie uniquement une suggestion ; il n’installe pas le skill, ne l’active pas, n’écrit pas en mémoire et ne traite pas le corps du skill comme des instructions globales.

Activez-la via la configuration skills (gateway, zerocode, ou zeroclaw config set). Le moteur de correspondance des suggestions utilise les noms des skills installées et les métadonnées du registre mises en cache, telles que les noms, les alias et le frontmatter. Il évite intentionnellement de faire correspondre les corps des skills non approuvées. La découverte au niveau plugin/package reste une évolution future jusqu’à ce que la surface de recherche/installation du registre de plugins soit disponible. Les suggestions exactes au moment de la composition, pendant que l’utilisateur est encore en train de saisir, nécessitent la prise en charge d’ACP, du gateway ou de l’interface utilisateur du client, et sortent du cadre de ce chemin côté serveur uniquement.

Sécurité des scripts

ZeroClaw audite les skills avant de les charger ou de les installer. Les fichiers de type script tels que .sh, .bash, .ps1, ainsi que les fichiers comportant un shebang shell sont bloqués par défaut.

Si vous utilisez intentionnellement des compétences contenant des scripts, activez skills.allow_scripts. Laissez cette option désactivée sauf si vous faites confiance à la source de la compétence et avez vérifié ce que font les scripts.

Pour les modèles d’exécution spécifiques à Python, la politique de l’interpréteur et les compromis entre exécution native et Docker, consultez Exécution des compétences Python.

Chargement des compétences de la communauté

Le chargement des open-skills communautaires est optionnel et s’active via la configuration skills. Lorsqu’il est activé, ZeroClaw charge les skills depuis le répertoire open_skills_dir configuré, ou depuis $HOME/open-skills si aucun répertoire n’est défini. Si ce répertoire n’existe pas, ZeroClaw peut cloner le dépôt communautaire open-skills ; s’il existe et qu’il s’agit d’un checkout git, ZeroClaw peut récupérer les mises à jour. N’activez cette option que pour les sources communautaires en lesquelles vous avez confiance, ou faites pointer open_skills_dir vers une copie locale vérifiée.

Configuration avancée

Le mode d’injection de prompt par défaut est full, qui inclut les instructions complètes des skills dans le prompt système. Définissez prompt_injection_mode = "compact" globalement ou dans un profil d’exécution pour conserver les métadonnées des skills ordinaires dans le contexte et charger les instructions à la demande via read_skill. Les skills marqués always: true conservent leurs instructions complètes en mode compact. Le mode compact réduit la taille du prompt ; il ne constitue pas une frontière d’isolation pour les sources de skills non fiables.

Création autonome de compétences

Après une tâche multi-étapes réussie (au moins deux appels d’outil), ZeroClaw peut enregistrer l’exécution sous forme de compétence réutilisable. Cette option est désactivée par défaut et activable manuellement :

[skills.skill_creation]
enabled = true              # off by default
max_skills = 500            # LRU cap: oldest auto-generated skill is evicted past this
similarity_threshold = 0.85 # embedding-dedup cutoff; near-duplicate tasks are skipped

Par défaut, chaque compétence créée est un SKILL.toml déterministe généré directement à partir de la trace des appels d’outils ; aucun appel de modèle n’est impliqué.

Réflexion (SKILL.md synthèse)

Avec la réflexion activée, ZeroClaw demande plutôt au fournisseur de modèle configuré de l’agent de synthétiser un SKILL.md canonique à partir d’une tranche bornée de l’exécution (la tâche, la trace d’appels d’outils et la réponse finale). Chaque entrée est tronquée indépendamment selon un budget de caractères configuré afin qu’une exécution volumineuse ne puisse jamais produire une requête de réflexion non bornée :

[skills.skill_creation]
enabled = true
reflection_enabled = true   # opt-in; requires enabled = true
max_task_chars = 1000           # task description budget
max_tool_trace_chars = 4000     # tool-call trace budget
max_final_answer_chars = 2000   # final assistant answer budget

Si l’appel de réflexion échoue (erreur du fournisseur, sortie malformée ou corps vide), ZeroClaw utilise le chemin déterministe SKILL.toml en repli, de sorte qu’activer la réflexion ne laisse jamais de compétence non créée. Les compétences issues de la réflexion sont marquées par l’auteur zeroclaw-auto et participent à la même déduplication et éviction LRU que les compétences SKILL.toml.

Parce que les appels de réflexion transmettent du contenu au fournisseur de modèles, la tâche, la trace des appels d’outil et la réponse finale sont chacune analysée à la recherche de valeurs de type identifiants (clés API, jetons, identifiants AWS, clés privées PEM, JWT, URL de connexion aux bases de données et secrets à haute entropie) et redactée avant que le prompt ne soit composé et envoyé, en utilisant le même garde-fou de contenu sortant que ZeroClaw applique aux réponses de canal. La redaction s’exécute en mémoire avant la requête, de sorte qu’un secret apparaissant dans un argument d’outil ou la réponse finale soit remplacé par un marqueur [REDACTED_…] au lieu d’atteindre le fournisseur.

Réflexion vs. amélioration de compétence. La réflexion ([skills.skill_creation] reflection_enabled) crée une nouvelle compétence à partir d’une trace d’exécution terminée. Le fork de revue en arrière-plan [skills.skill_improvement] est une fonctionnalité distincte qui met à jour les compétences existantes après leur utilisation. Ils peuvent être activés indépendamment.

Voir aussi