Skills
piはスキルを作成できます。あなたのユースケースに合わせて構築するよう依頼してください。
Skills は、エージェントがオンデマンドでロードする自己完結型の機能パッケージです。スキルは、特定のタスクに関する特殊なワークフロー、セットアップ手順、ヘルパー スクリプト、リファレンス ドキュメントを提供します。
Pi は Agent Skills standard を実装し、ほとんどの違反について警告しますが、寛大なままです。 Pi では、標準では許可されていない場合でも、スキル名が親ディレクトリと異なることが許可されます。このルールは、複数のエージェント ハーネス間で使用される共有スキル ディレクトリには最適ではありません。
目次
- Locations
- How Skills Work
- Skill Commands
- Skill Structure
- Frontmatter
- Validation
- Example
- Skill Repositories
所在地
セキュリティ: Skills は、モデルに任意のアクションを実行するように指示でき、モデルが呼び出す実行可能コードが含まれる場合があります。使用する前にスキルの内容を確認してください。
Pi は以下からスキルをロードします:
- グローバル:
~/.pi/agent/skills/~/.agents/skills/
- プロジェクト (プロジェクトが信頼された後のみ):
.pi/skills/cwdの.agents/skills/および祖先ディレクトリ (git リポジトリのルート、またはリポジトリにない場合はファイルシステムのルートまで)
- パッケージ:
skills/ディレクトリまたはpackage.jsonのpi.skillsエントリ - 設定:
skillsファイルまたはディレクトリを含む配列 - CLI:
--skill <path>(繰り返し可能、--no-skillsでも追加的)
検出ルール:
~/.pi/agent/skills/と.pi/skills/では、直接ルート.mdファイルが個人スキルとして検出されます- すべてのスキルの場所で、
SKILL.mdを含むディレクトリが再帰的に検出されます ~/.agents/skills/とプロジェクト.agents/skills/では、ルート.mdファイルは無視されます
--no-skills で検出を無効にします (明示的な --skill パスはまだロードされます)。
他のハーネスからSkillsを使用する
Claude Code または OpenAI Codex のスキルを使用するには、それらのディレクトリを設定に追加します。
{
"skills": [
"~/.claude/skills",
"~/.codex/skills"
]
}プロジェクト レベルのクロード コード スキルについては、.pi/settings.json に追加します。
{
"skills": ["../.claude/skills"]
}Skills の仕組み
- 起動時に、pi はスキルの場所をスキャンし、名前と説明を抽出します。
- システム プロンプトには、specification に従って XML 形式で利用可能なスキルが含まれています。
- タスクが一致すると、エージェントは
readを使用して完全な SKILL.md をロードします (モデルは常にこれを行うわけではありません。強制するにはプロンプトまたは/skill:nameを使用します)。 - エージェントは、相対パスを使用してスクリプトとアセットを参照し、指示に従います。
これは進歩的な開示です。説明のみが常にコンテキスト内にあり、完全な命令はオンデマンドでロードされます。
スキルコマンド
Skills を /skill:name コマンドとして登録します。
/skill:brave-search # Load and execute the skill
/skill:pdf-tools extract # Load skill with argumentsコマンド後の引数はスキル内容にUser: <args>として追加されます。
インタラクティブモードでは/settings、またはsettings.jsonでスキルコマンドを切り替えます。
{
"enableSkillCommands": true
}スキル構成
スキルは、SKILL.md ファイルのあるディレクトリです。それ以外はすべて自由形式です。
my-skill/
├── SKILL.md # Required: frontmatter + instructions
├── scripts/ # Helper scripts
│ └── process.sh
├── references/ # Detailed docs loaded on-demand
│ └── api-reference.md
└── assets/
└── template.jsonSKILL.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 /path/to/skill && npm インストール
```
## Usage
```bash
./scripts/process.sh <input>
```スキル ディレクトリからの相対パスを使用します。
See [the reference guide](references/REFERENCE.md) for details.フロントマター
Agent Skills specification ごとに:
| 分野 | 必須 | 説明 |
|---|---|---|
name |
はい | 最大64文字。小文字の a ~ z、0 ~ 9、ハイフン。標準とは異なり、Pi ではこれが親ディレクトリと一致する必要はありません。これは、その標準要件が共有スキル ディレクトリにとって最適ではないためです。 |
description |
はい | 最大 1024 文字。スキルが何をするのか、いつ使用するのか。 |
license |
いいえ | ライセンス名またはバンドルされたファイルへの参照。 |
compatibility |
いいえ | 最大 500 文字。環境要件。 |
metadata |
いいえ | 任意のキーと値のマッピング。 |
allowed-tools |
いいえ | 事前承認ツール (実験的) のスペース区切りのリスト。 |
disable-model-invocation |
いいえ | true の場合、スキルはシステム プロンプトから非表示になります。ユーザーは /skill:name を使用する必要があります。 |
名前のルール
- 1~64文字
- 小文字、数字、ハイフンのみ
- 先頭/末尾のハイフンなし
- 連続したハイフンは使用できません Pi では、名前が親ディレクトリと一致する必要はありません。 Agent Skills 標準ではこの要件が満たされていますが、その要件は複数のツールで使用される共有スキル ディレクトリにとっては最適ではありません。
有効: pdf-processing、data-analysis、code-review
無効: PDF-Processing、-pdf、pdf--processing
説明 ベストプラクティス
説明によって、エージェントがいつスキルをロードするかが決まります。具体的にしてください。
良い:
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.貧しい:
description: Helps with PDFs.検証
Pi は、エージェント Skills の標準に照らしてスキルを検証します。ほとんどの問題では警告が生成されますが、スキルは引き続きロードされます。
- 名前が64文字を超えているか、無効な文字が含まれています
- 名前の先頭/末尾がハイフンであるか、連続したハイフンが含まれています
- 説明が 1024 文字を超えています
不明なフロントマターフィールドは無視されます。
例外: 説明が欠落している Skills はロードされません。
名前の衝突(異なる場所からの同じ名前)は警告し、最初に見つかったスキルを保持します。
例
brave-search/
├── SKILL.md
├── search.js
└── content.jsスキル.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 /path/to/brave-search && npm インストール
```
## Search
```bash
./search.js "query" # 基本的な検索
./search.js "query" --content # ページのコンテンツを含めます
```
## Extract Page Content
```bash
./content.js https://example.com
```スキルリポジトリ
- Anthropic Skills - ドキュメント処理 (docx、pdf、pptx、xlsx)、Web 開発
- Pi Skills - Web 検索、ブラウザ自動化、Google APIs、文字起こし