Gemini CLI「Skills」入門:特定タスクに特化した専門知識をAIに持たせる方法
Gemini CLIを日々の開発で活用していると、特定の定型作業(フレームワーク固有のコンポーネント作成、 テストコードの自動生成、デプロイ手順の実行など)をより確実に、かつ効率的に行いたい場面が増えてきます。このような特定タスクへの「専門知識」をAIに持たせる仕組みが「Skills」機能です。
今回は、Skills機能の概要から実装手順、Gemini CLI上での確認方法までを詳しく解説します。
Gemini CLIの「Skills」とは?
Skillsは、特定のワークフローやリソースをカプセル化したオンデマンドの専門知識モジュールです。Agent Skills という標準規格に基づいており、必要な時だけ呼び出すことで、AIの限られた「コンテキスト(記憶量)」を節約しつつ、高度なタスクを遂行させることが可能です。
他の機能との違い
Gemini CLIには、AIの振る舞いを制御する機能がいくつかあります。これらは「誰が、いつ、どのような知識を持って動くか」という役割が異なります。
- Instructions (
GEMINI.md): 常に読み込まれる「基本方針」です。プロジェクト全体の共通ルールやディレクトリ構造など、AIが常に意識しておくべき前提知識を伝えます。 - Subagents: 特定 の専門タスクを肩代わりしてくれる「分身(専門チーム)」です。広範囲な調査や大量のファイル修正など、手順が多くコンテキストを消費しそうな作業をサブエージェントに依頼(デリゲート)することで、メインの会話をクリーンに保ちます。
- Skills: 特定のタスクが発生した時にだけ装備する「専門知識パック」です。特定の指示書(
SKILL.md)や補助スクリプトが含まれます。
具体的な使い分けの例:
- 「新しいブログ記事を書く」→ メインのAIが blog-writerスキル を装備して自分で執筆します。
- 「過去100件の記事のタグを一括修正する」→ メインのAIが generalistサブエージェント に作業を任せます。
簡単に言えば、「自分自身が身につける専門知識(Skills)」か、「自分以外の専門家に任せる仕組み(Subagents)」か、という違いです。
Skillsは「必要な時だけロードされる」ため、大量の知識を持たせても普段のチャットの邪魔をせず、トークン消費も抑えられるというメリットがあります。
スキルの実装手順
スキルは、特定の構造を持ったディレクトリとして作成します。
1. 保存場所の決定
スキルは以下のいずれかの場所に配置します。
- プロジェクト固有のスキル:
.agents/skills/<スキル名>/(または.gemini/skills/) - ユーザー全体のスキル:
~/.agents/skills/<スキル名>/(または~/.gemini/skills/)
2. SKILL.md の作成
スキルのディレクトリ内には、必ず SKILL.md というファイルを配置します。このファイルは YAML Frontmatter でメタデータを記述し、本文にMarkdownで指示を書く形式になります。
---
name: スキル名
description: このスキルの概要を記述します。Gemini CLIが「このスキルを使うべきか」を判断するために非常に重要なセクションです。「〜をする時にこのスキルを使用して下さい」といったトリガーを具体的に書きます。
---
# スキル名
スキルが有効化された後に、AIが従うべき具体的な手順やルールを記述します。
3. 関連リソース(オプション)
必要に応じて、以下のフォルダを作成し、リソースを追加できます。
scripts/: 実行可能なスクリプト(Node.js, Pythonなど)。references/: 詳細な仕様書やスキーマ。assets/: テンプレートやボイラープレート。
関連リソースの使い方・指示の書き方
これらのリソースを追加した場合は、AIがそれらを適切に利用できるよう、SKILL.md の本文中で「どのファイルをどう使ってほしいか」を明記することが重要です。
- スクリプトを実行させたい場合
1. 最初に `scripts/setup-boilerplate.sh` を実行して雛形を作成してください。2. 生成されたファイルに対して...
- 参考資料を読ませたい場合
詳細なコーディング規約については `references/style-guide.md` を参照してください。実装を開始する前に必ずこのファイルを読み、ルールを遵守すること。
SKILL.md の例
スキルは目的に応じて様々な形で定義できます。ここでは具体的な2つの例を紹介します。