Skills
pi peut créer des compétences. Demandez-lui d'en créer un pour votre cas d'utilisation.
Skills sont des packages de fonctionnalités autonomes que l'agent charge à la demande. Une compétence fournit des flux de travail spécialisés, des instructions de configuration, des scripts d'assistance et une documentation de référence pour des tâches spécifiques.
Pi implémente le Agent Skills standard, avertissant de la plupart des violations mais restant indulgent. Pi permet aux noms de compétences de différer de leur répertoire parent même si la norme l'interdit; cette règle n'est pas optimale pour les répertoires de compétences partagés utilisés dans plusieurs harnais d'agents.
Table des matières
- Locations
- How Skills Work
- Skill Commands
- Skill Structure
- Frontmatter
- Validation
- Example
- Skill Repositories
Emplacements
Sécurité: Skills peut demander au modèle d'effectuer n'importe quelle action et peut inclure du code exécutable invoqué par le modèle. Examinez le contenu des compétences avant utilisation.
Pi charge les compétences de:
- Mondial:
~/.pi/agent/skills/~/.agents/skills/
- Projet (uniquement une fois que le projet est approuvé):
.pi/skills/.agents/skills/danscwdet les répertoires ancêtres (jusqu'à la racine du dépôt git ou la racine du système de fichiers lorsqu'il n'est pas dans un dépôt)
- Forfaits:
skills/répertoires oupi.skillsentrées danspackage.json - Paramètres:
skillstableau avec des fichiers ou des répertoires - CLI:
--skill <path>(répétable, additif même avec--no-skills)
Règles de découverte:
- Dans
~/.pi/agent/skills/et.pi/skills/, les fichiers racine directe.mdsont découverts en tant que compétences individuelles - Dans tous les emplacements de compétences, les répertoires contenant
SKILL.mdsont découverts de manière récursive - Dans
~/.agents/skills/et le projet.agents/skills/, les fichiers racine.mdsont ignorés
Désactivez la découverte avec --no-skills (les chemins explicites --skill sont toujours chargés).
Utilisation de Skills à partir d'autres harnais
Pour utiliser les compétences de Claude Code ou OpenAI Codex, ajoutez leurs répertoires aux paramètres:
{
"skills": [
"~/.claude/skills",
"~/.codex/skills"
]
}Pour les compétences Claude Code au niveau du projet, ajoutez à .pi/settings.json:
{
"skills": ["../.claude/skills"]
}Comment fonctionne Skills
- Au démarrage, pi analyse les emplacements des compétences et en extrait les noms et les descriptions
- L'invite système inclut les compétences disponibles au format XML selon le specification
- Lorsqu'une tâche correspond, l'agent utilise
readpour charger le SKILL.md complet (les modèles ne le font pas toujours; utilisez l'invite ou/skill:namepour le forcer) - L'agent suit les instructions, en utilisant des chemins relatifs pour référencer les scripts et les ressources.
Il s'agit d'une divulgation progressive: seules les descriptions sont toujours contextuelles, les instructions complètes sont chargées à la demande.
Commandes de compétences
Skills s'inscrire en tant que commandes /skill:name:
/skill:brave-search # Load and execute the skill
/skill:pdf-tools extract # Load skill with argumentsLes arguments après la commande sont ajoutés au contenu de la compétence sous la forme User: <args>.
Basculez les commandes de compétences via /settings en mode interactif ou en settings.json:
{
"enableSkillCommands": true
}Structure des compétences
Une compétence est un répertoire avec un fichier SKILL.md. Tout le reste est de forme libre.
my-skill/
├── SKILL.md # Required: frontmatter + instructions
├── scripts/ # Helper scripts
│ └── process.sh
├── references/ # Detailed docs loaded on-demand
│ └── api-reference.md
└── assets/
└── template.jsonFormat SKILL.md
---
name: my-skill
description: What this skill does and when to use it. Be specific.
---
# My Skill
## Setup
Run once before first use:
```bash
cd /chemin/vers/compétence && npm installer
```
## Usage
```bash
./scripts/process.sh <input>
```Utilisez les chemins relatifs du répertoire de compétences:
See [the reference guide](references/REFERENCE.md) for details.Frontière
Par le Agent Skills specification:
| Champ | Requis | Description |
|---|---|---|
name |
Oui | Max 64 caractères. Minuscules a-z, 0-9, tirets. Contrairement à la norme, Pi n'exige pas que cela corresponde au répertoire parent car cette exigence standard n'est pas optimale pour les répertoires de compétences partagés. |
description |
Oui | Maximum 1024 caractères. À quoi sert la compétence et quand l’utiliser. |
license |
Non | Nom de la licence ou référence au fichier groupé. |
compatibility |
Non | Max 500 caractères. Exigences environnementales. |
metadata |
Non | Mappage clé-valeur arbitraire. |
allowed-tools |
Non | Liste délimitée par des espaces d'outils pré-approuvés (expérimentaux). |
disable-model-invocation |
Non | Lorsque true, la compétence est masquée de l'invite du système. Les utilisateurs doivent utiliser /skill:name. |
Règles de nom
- 1 à 64 caractères
- Lettres minuscules, chiffres et traits d'union uniquement
- Pas de tirets de début/fin
- Pas de tirets consécutifs Pi ne nécessite pas que le nom corresponde au répertoire parent. La norme Agent Skills le fait, mais cette exigence n'est pas optimale pour les répertoires de compétences partagés utilisés par plusieurs outils.
Valide: pdf-processing, data-analysis, code-review
Invalide: PDF-Processing, -pdf, pdf--processing
Description Meilleures pratiques
La description détermine le moment où l'agent charge la compétence. Soyez précis.
Bien:
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.Pauvre:
description: Helps with PDFs.Validation
Pi valide les compétences par rapport à la norme Agent Skills. La plupart des problèmes génèrent des avertissements mais chargent quand même la compétence:
- Le nom dépasse 64 caractères ou contient des caractères non valides
- Le nom commence/se termine par un trait d'union ou comporte des traits d'union consécutifs
- La description dépasse 1 024 caractères
Les champs de contenu inconnus sont ignorés.
Exception: Skills avec une description manquante ne sont pas chargés.
Les collisions de noms (même nom à différents endroits) avertissent et conservent la première compétence trouvée.
Exemple
brave-search/
├── SKILL.md
├── search.js
└── content.jsCOMPÉTENCE.md:
---
name: brave-search
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
---
# Brave Search
## Setup
```bash
cd /chemin/vers/brave-search && npm installer
```
## Search
```bash
./search.js "query" # Recherche de base
./search.js "query" --content # Inclure le contenu de la page
```
## Extract Page Content
```bash
./content.js https://exemple.com
```Référentiels de compétences
- Anthropic Skills - Traitement de documents (docx, pdf, pptx, xlsx), développement web
- Pi Skills - Recherche sur le Web, automatisation du navigateur, Google APIs, transcription