エージェントスキル
Qwen Code の機能を拡張するために、Skill を作成、管理、共有します。
本ガイドでは、Qwen Code で Agent Skill を作成、使用、管理する方法について説明します。Skill は、指示(およびオプションでスクリプトやリソース)を含む整理されたフォルダを通じて、モデルの効果を拡張するモジュール型の機能です。
前提条件
- Qwen Code(最新バージョン)
- Qwen Code の基本的な知識(クイックスタート)
Agent Skill とは?
Agent Skill は専門知識を検出可能な機能としてパッケージ化します。各 Skill は、モデルが関連するときにロードできる指示を含む SKILL.md ファイルと、スクリプトやテンプレートなどのオプションのサポートファイルで構成されます。
Skill の呼び出し方法
Skill はモデルによって呼び出されます。モデルは、あなたのリクエストと Skill の説明に基づいて、いつ使用するかを自律的に判断します。これは、スラッシュコマンド(ユーザーが明示的に /command と入力するユーザーによって呼び出されるもの)とは異なります。
Skill を明示的に呼び出したい場合は、Skill の名前を使用してスラッシュコマンドとして入力します。
/<skill-name>/ の入力を開始すると、オートコンプリートで利用可能な Skill とその説明を閲覧できます。/skills コマンドは Skill パネルを開き、そこで Skill をインタラクティブに閲覧、検索、切り替え、起動できます。
Note: 以前
/skills <skill-name>で Skill を実行していた場合、その構文は現在 Skill パネルを開くだけで、末尾の引数は無視されます。Skill を直接実行するには/<skill-name>を使用してください。
利点
- ワークフローに合わせて Qwen Code を拡張
- git を通じてチーム間で専門知識を共有
- 繰り返しのプロンプト入力を削減
- 複雑なタスクのために複数の Skill を組み合わせ
Skill の作成
Skill は、SKILL.md ファイルを含むディレクトリとして保存されます。
パーソナル Skill
パーソナル Skill はすべてのプロジェクトで利用可能です。~/.qwen/skills/ に保存します。
mkdir -p ~/.qwen/skills/my-skill-nameパーソナル Skill の用途:
- 個人のワークフローと設定
- 開発中の Skill
- 個人の生産性向上ツール
プロジェクト Skill
プロジェクト Skill はチームと共有されます。プロジェクト内の .qwen/skills/ に保存します。
mkdir -p .qwen/skills/my-skill-nameプロジェクト Skill の用途:
- チームのワークフローと規約
- プロジェクト固有の専門知識
- 共有ユーティリティとスクリプト
プロジェクト Skill は git にチェックインでき、チームメンバーが自動的に利用できるようになります。
SKILL.md の作成
YAML フロントマターと Markdown コンテンツを含む SKILL.md ファイルを作成します。
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
priority: 10
---
# Your Skill Name
## Instructions
Provide clear, step-by-step guidance for Qwen Code.
## Examples
Show concrete examples of using this Skill.フィールドの要件
Qwen Code は現在、以下を検証します。
nameは/^[\p{L}\p{N}_:.-]+$/uに一致する空でない文字列です。Unicode の文字と数字(CJK / キリル文字 / アクセント付きラテン文字などすべて可)に加え、_、:、.、-が使用できます。空白、スラッシュ、括弧、その他の構造的に安全でない文字は解析時に拒否されます。descriptionは空でない文字列です。priorityは省略可能です。指定する場合、有限数である必要があります。高い値は/skillsのリストでのみ先にソートされます。スラッシュコマンドの補完(/の入力)や/helpのカスタムコマンドビューはアルファベット順のままなので、優先度の高い Skill が組み込みコマンドの順序を変更することはありません。省略された値や無効な値は未設定として扱われ、0と同じように動作します。
推奨される規約:
- 共有可能な名前には、ハイフン区切りの小文字 ASCII を推奨します(例:
tsx-helper)。 descriptionは具体的に記述します。Skill が行うことと、いつ使用するか(ユーザーが自然に言及するキーワード)の両方を含めます。/skillsでデフォルトのアルファベット順よりも前に確実に表示させたい Skill にのみpriorityを使用します。負の優先度も許可されており、未設定の Skill より下にソートされます。
オプション: ファイルパスによる Skill のゲート(paths:)
コードベースの特定の部分にのみ関連する Skill の場合は、glob パターンの paths: リストを追加します。この Skill は、ツール呼び出しが一致するファイルに触れるまで、モデルの利用可能な Skill リストに表示されません。
---
name: tsx-helper
description: React TSX component helper
paths:
- 'src/**/*.tsx'
- 'packages/*/src/**/*.tsx'
---注意事項:
- glob は picomatch を使用してプロジェクトルートからの相対パスでマッチングされます。プロジェクトルート外のファイルはアクティベーションをトリガーしません。
- パスでゲートされた Skill は、一度一致するファイルに触れると、セッションの残りの間アクティブ化されたままになります。新しいセッション、または任意の Skill ファイルの編集によってトリガーされる
refreshCacheは、アクティベーションをリセットします。 paths:はモデルの検出のみをゲートし、かつ SkillTool のリストレベルでのみ機能します。user-invocable: falseが設定されていない限り、/<skill-name>または/skillsピッカーを通じてパスでゲートされた Skill を常に自分で呼び出すことができます。このユーザーパスは、アクティベーション状態に関係なく Skill の本体を実行します。しかし、モデル側は一致するファイルに触れるまでゲートされたままです。スラッシュでの呼び出しはモデル側のアクティベーションのロックを解除しないため、モデルにあなたの呼び出しからチェーンさせたい場合(モデル自身にSkill { skill: ... }を呼び出させたい場合)は、まずその Skill のpaths:に一致するファイルにアクセスしてください。paths:とdisable-model-invocation: trueを組み合わせることは可能ですが、ゲートは効果がありません。Skill はとにかくモデルから隠されているため、パスのアクティベーションがそれを通知することはないからです。
オプション: ユーザーとモデルの呼び出しを制御する
Skill はデフォルトでユーザーが呼び出し可能です。直接のスラッシュコマンドでの使用から Skill を隠しつつ、モデルからの呼び出しを可能にしておくには、user-invocable: false を設定します。
---
name: model-only-helper
description: Helper the model can call when appropriate
user-invocable: false
---これにより、/<skill-name> での呼び出しと /skills ピッカーの結果から Skill が削除されます。モデルから Skill が隠されるわけではありません。
直接のユーザー呼び出しを可能にしたまま、モデルからの呼び出しから Skill を隠すには、disable-model-invocation: true を設定します。
---
name: manual-helper
description: Helper you invoke manually
disable-model-invocation: true
---両方のフィールドを組み合わせることもできますが、その場合 Skill は通常のユーザーまたはモデルの呼び出しパスからは到達できません。
サポートファイルの追加
SKILL.md と同じディレクトリに追加のファイルを作成します。
my-skill/
├── SKILL.md (required)
├── reference.md (optional documentation)
├── examples.md (optional examples)
├── scripts/
│ └── helper.py (optional utility)
└── templates/
└── template.txt (optional template)SKILL.md からこれらのファイルを参照します。
For advanced usage, see [reference.md](reference.md).
Run the helper script:
```bash
python scripts/helper.py input.txt
```利用可能な Skill の表示
Qwen Code は以下の場所から Skill を検出します。
- パーソナル Skill:
~/.qwen/skills/ - プロジェクト Skill:
.qwen/skills/ - 拡張機能 Skill: インストールされた拡張機能によって提供される Skill
拡張機能 Skill
拡張機能は、拡張機能が有効になったときに利用可能になるカスタム Skill を提供できます。これらの Skill は拡張機能の skills/ ディレクトリに保存され、パーソナル Skill やプロジェクト Skill と同じ形式に従います。
拡張機能 Skill は、拡張機能がインストールされ有効化されると自動的に検出およびロードされます。
どの拡張機能が Skill を提供しているかを確認するには、拡張機能の qwen-extension.json ファイル内の skills フィールドを確認します。
利用可能な Skill を表示するには、Qwen Code に直接問いかけます。
What Skills are available?Heads up — モデルとユーザーのビュー。 モデルに問いかけても、モデルが現在見ることができる Skill しか表示されません。Skill が
paths:を使用している場合(上記の「オプション: ファイルパスによる Skill のゲート」を参照)、一致するファイルに触れるまでそのリストに表示されません。/skillsスラッシュコマンドは、直接呼び出せる Skill を表示します。user-invocable: falseを持つ Skill はディスク上に可視なままであり、モデルからも引き続き可視である可能性があります。
または、スラッシュコマンドでユーザーが呼び出し可能なリストを閲覧します(まだアクティブ化されていないパスでゲートされた Skill を含みます)。
/skillsまたは、ファイルシステムを調査します。
# List personal Skills
ls ~/.qwen/skills/
# List project Skills (if in a project directory)
ls .qwen/skills/
# View a specific Skill's content
cat ~/.qwen/skills/my-skill/SKILL.mdSkill のテスト
Skill を作成したら、説明に一致する質問をしてテストします。
例: 説明に「PDF ファイル」と記載されている場合:
Can you help me extract text from this PDF?モデルは、リクエストに一致する場合に自律的にあなたの Skill を使用することを決定します。明示的に呼び出す必要はありません。
Skill のデバッグ
Qwen Code があなたの Skill を使用しない場合は、以下の一般的な問題を確認してください。
説明を具体的にする
曖昧すぎる例:
description: Helps with documents具体的な例:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDFs, forms, or document extraction.ファイルパスの確認
- パーソナル Skill:
~/.qwen/skills/<skill-name>/SKILL.md - プロジェクト Skill:
.qwen/skills/<skill-name>/SKILL.md
# Personal
ls ~/.qwen/skills/my-skill/SKILL.md
# Project
ls .qwen/skills/my-skill/SKILL.mdYAML 構文の確認
無効な YAML は、Skill のメタデータが正しくロードされるのを妨げます。
cat SKILL.md | head -n 15以下を確認してください。
- 1行目に開始の
---があること - Markdown コンテンツの前に終了の
---があること - 有効な YAML 構文であること(タブなし、正しいインデント)
エラーの確認
Skill のロードエラーを確認するには、デバッグモードで Qwen Code を実行します。
qwen --debugチームと Skill を共有する
プロジェクトリポジトリを通じて Skill を共有できます。
.qwen/skills/配下に Skill を追加する- コミットしてプッシュする
- チームメンバーが変更をプルする
git add .qwen/skills/
git commit -m "Add team Skill for PDF processing"
git pushSkill の更新
SKILL.md を直接編集します。
# Personal Skill
code ~/.qwen/skills/my-skill/SKILL.md
# Project Skill
code .qwen/skills/my-skill/SKILL.md変更は次回 Qwen Code を起動したときに有効になります。Qwen Code がすでに実行中の場合は、再起動して更新をロードしてください。
Skill の削除
Skill のディレクトリを削除します。
# Personal
rm -rf ~/.qwen/skills/my-skill
# Project
rm -rf .qwen/skills/my-skill
git commit -m "Remove unused Skill"ベストプラクティス
Skill のスコープを絞る
1つの Skill は 1つの機能に対応すべきです。
- 適切なスコープ: 「PDF フォームへの入力」、「Excel 分析」、「Git コミットメッセージ」
- スコープが広すぎる: 「ドキュメント処理」(より小さな Skill に分割する)
明確な説明を記述する
特定のトリガーを含めることで、モデルが Skill をいつ使用すべきかを検出しやすくします。
description: Analyze Excel spreadsheets, create pivot tables, and generate charts. Use when working with Excel files, spreadsheets, or .xlsx data.チームとテストする
- Skill は期待通りにアクティブ化されるか?
- 指示は明確か?
- 欠落している例やエッジケースはないか?