Skills
pi pode criar habilidades. Peça para criar um para o seu caso de uso.
Skills são pacotes de recursos independentes que o agente carrega sob demanda. Uma habilidade fornece fluxos de trabalho especializados, instruções de configuração, scripts auxiliares e documentação de referência para tarefas específicas.
Pi implementa o Agent Skills standard, alertando sobre a maioria das violações, mas permanecendo tolerante. Pi permite que os nomes das habilidades sejam diferentes de seu diretório pai, mesmo que o padrão não permita isso; essa regra não é ideal para diretórios de habilidades compartilhados usados em vários equipamentos de agente.
Índice
- Locations
- How Skills Work
- Skill Commands
- Skill Structure
- Frontmatter
- Validation
- Example
- Skill Repositories
Locais
Segurança: Skills pode instruir o modelo a executar qualquer ação e pode incluir código executável que o modelo invoca. Revise o conteúdo da habilidade antes de usar.
Pi carrega habilidades de:
- Global:
~/.pi/agent/skills/~/.agents/skills/
- Projeto (somente depois que o projeto for confiável):
.pi/skills/.agents/skills/emcwde diretórios ancestrais (até git repo root ou filesystem root quando não estiver em um repo)
- Pacotes: diretórios
skills/ou entradaspi.skillsempackage.json - Configurações:
skillsarray com arquivos ou diretórios - CLI:
--skill <path>(repetível, aditivo mesmo com--no-skills)
Regras de descoberta:
- Em
~/.pi/agent/skills/e.pi/skills/, arquivos raiz direta.mdsão descobertos como habilidades individuais - Em todos os locais de habilidade, os diretórios contendo
SKILL.mdsão descobertos recursivamente - Em
~/.agents/skills/e no projeto.agents/skills/, os arquivos raiz.mdsão ignorados
Desative a descoberta com --no-skills (caminhos --skill explícitos ainda são carregados).
Usando Skills de outros chicotes
Para usar habilidades do Claude Code ou OpenAI Codex, adicione seus diretórios às configurações:
{
"skills": [
"~/.claude/skills",
"~/.codex/skills"
]
}Para habilidades de Claude Code em nível de projeto, adicione a .pi/settings.json:
{
"skills": ["../.claude/skills"]
}Como Skills funciona
- Na inicialização, o pi verifica os locais das habilidades e extrai nomes e descrições
- O prompt do sistema inclui habilidades disponíveis em formato XML de acordo com specification
- Quando uma tarefa corresponde, o agente usa
readpara carregar o SKILL.md completo (os modelos nem sempre fazem isso; use prompts ou/skill:namepara forçá-lo) - O agente segue as instruções, usando caminhos relativos para referenciar scripts e ativos
Esta é uma divulgação progressiva: apenas as descrições estão sempre no contexto, as instruções completas são carregadas sob demanda.
Comandos de habilidade
Skills registre-se como /skill:name comandos:
/skill:brave-search # Load and execute the skill
/skill:pdf-tools extract # Load skill with argumentsOs argumentos após o comando são anexados ao conteúdo da habilidade como User: <args>.
Alterne os comandos de habilidade via /settings no modo interativo ou em settings.json:
{
"enableSkillCommands": true
}Estrutura de habilidades
Uma habilidade é um diretório com um arquivo SKILL.md. Todo o resto é de forma livre.
my-skill/
├── SKILL.md # Required: frontmatter + instructions
├── scripts/ # Helper scripts
│ └── process.sh
├── references/ # Detailed docs loaded on-demand
│ └── api-reference.md
└── assets/
└── template.jsonFormato HABILIDADE.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 /caminho/para/habilidade && npm instalar
```
## Usage
```bash
./scripts/process.sh <input>
```Use caminhos relativos do diretório de habilidades:
See [the reference guide](references/REFERENCE.md) for details.Matéria inicial
De acordo com Agent Skills specification:
| Campo | Obrigatório | Descrição |
|---|---|---|
name |
Sim | Máximo de 64 caracteres. A-z minúsculo, 0-9, hífens. Ao contrário do padrão, Pi não exige que isso corresponda ao diretório pai porque esse requisito padrão não é ideal para diretórios de habilidades compartilhados. |
description |
Sim | Máximo de 1024 caracteres. O que a habilidade faz e quando usá-la. |
license |
Não | Nome da licença ou referência ao arquivo incluído. |
compatibility |
Não | Máximo de 500 caracteres. Requisitos ambientais. |
metadata |
Não | Mapeamento arbitrário de valores-chave. |
allowed-tools |
Não | Lista delimitada por espaço de ferramentas pré-aprovadas (experimental). |
disable-model-invocation |
Não | Quando true, a habilidade fica oculta no prompt do sistema. Os usuários devem usar /skill:name. |
Regras de nomes
- 1-64 caracteres
- Somente letras minúsculas, números e hífens
- Sem hífens iniciais/finais
- Sem hífens consecutivos Pi não requer que o nome corresponda ao diretório pai. O padrão Agent Skills sim, mas esse requisito é abaixo do ideal para diretórios de habilidades compartilhados usados por múltiplas ferramentas.
Válido: pdf-processing, data-analysis, code-review
Inválido: PDF-Processing, -pdf, pdf--processing
Descrição Melhores Práticas
A descrição determina quando o agente carrega a habilidade. Seja específico.
Bom:
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.Pobre:
description: Helps with PDFs.Validação
Pi valida habilidades em relação ao padrão do Agente Skills. A maioria dos problemas produz avisos, mas ainda carrega a habilidade:
- O nome excede 64 caracteres ou contém caracteres inválidos
- O nome começa/termina com hífen ou tem hífens consecutivos
- A descrição excede 1.024 caracteres
Campos frontmatter desconhecidos são ignorados.
Exceção: Skills com descrição ausente não são carregados.
Colisões de nomes (mesmo nome em locais diferentes) avisam e mantêm a primeira habilidade encontrada.
Exemplo
brave-search/
├── SKILL.md
├── search.js
└── content.jsHABILIDADE.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 /caminho/para/brave-search && npm instalar
```
## Search
```bash
./search.js "query" # Pesquisa básica
./search.js "query" --content # Inclui o conteúdo da página
```
## Extract Page Content
```bash
./content.js https://example.com
```Repositórios de Habilidades
- Anthropic Skills - Processamento de documentos (docx, pdf, pptx, xlsx), desenvolvimento web
- Pi Skills - Pesquisa na Web, automação do navegador, Google APIs, transcrição