Gemini Skills公開

Gemini Skills公開

こんにちはmakokonです。
Google Gemini APIを利用する開発者が、最新のベストプラクティスやSDKの変更に対応できるように設計されたスキル集が提供されています。
CLAUDE.mdやCursorRulesと同じ思想で、エージェントに最新知識を注入できるみたいですね。開発者がより賢いAIエージェントを構築するための強力な支援ツールとなってくれるかもしれません。

  • 大規模言語モデルが持つ知識の空白を埋めるため、リアルタイムストリーミング構造化出力といった高度な機能を実装するための具体的なガイド

  • これらのスキルを導入することで、コード生成の正確性が大幅に向上し、Gemini シリーズなどのモデルで高いパフォーマンスを発揮できるようになる

  • 利用者は特定のコマンドラインツールを通じて、Vertex AIGemini Live APIに関連する開発リソースを簡単に統合することが可能

  • 公式製品ではありませんが、オープンソースとして公開

    • サポート対象外であることに注意

以下に、関連文書もチョロチョロ参照して気になることをまとめてみました。また、geminiばかりでなく、ClaudeCodeなどのプラットフォームでの利用も可能(らしい)なので、そちらで試してみる方法もあるかもしれません。

何ができるのか

Gemini APIのスキルライブラリ(gemini-skills)を使用すると、AIエージェントに最新のコンテキスト(背景知識)を軽量な手法で追加し、Gemini APIを利用したアプリケーション開発の精度を向上させることができます。

具体的には、以下のことが可能になります。

1. 知識のギャップの解消

LLMは特定の時点でトレーニングされているため、日々更新される新しいライブラリや進化するベストプラクティス(思考の循環など)に関する最新情報を持ち合わせていない場合があります。このライブラリを使うことで、モデルが自分自身(Gemini API)の仕様やSDKの変更、最新のベストプラクティスを正しく理解した状態で動作できるようになります。

2. コード生成精度の向上

このスキルを導入することで、ベストプラクティスに従った正しいAPIコードを生成する能力が大幅に向上します。評価データによると、以下の精度向上が確認されています。

  • Gemini 3 Flash: 87% に向上

  • Gemini 3 Pro: 96% に向上

3. 用途に応じた専門スキルの利用

リポジトリには、開発目的に合わせた複数のスキルが含まれています。

  • gemini-api-dev: Gemini APIを使用したアプリ開発のベストプラクティスを提供します。

  • vertex-ai-api-dev: Google Cloud Vertex AI上での開発(マルチモーダル生成、キャッシング、バッチ予測など)に特化したスキルです。

  • gemini-live-api-dev: リアルタイムで双方向のストリーミングアプリ(音声・ビデオ・テキスト、音声活動検知など)を構築するためのスキルです。

  • gemini-interactions-api: テキスト生成、マルチターンチャット、画像生成、Deep Research(高度なリサーチ)エージェント、構造化出力などの高度なインタラクションを構築するために使用します。

導入方法

Gemini APIのスキル(gemini-skills)の導入には、専用のCLI(コマンドラインインターフェース)ツールを使用します。

具体的には、以下のいずれかのツールを使ってスキルをブラウズ(閲覧)し、インストールすることが可能です。

  • Vercel skills CLI

  • Context7 skills CLI

これらのツールを利用することで、リポジトリに含まれる「gemini-api-dev」や「vertex-ai-api-dev」といった特定のスキルを、自分の開発プロジェクトに組み込むことができます。

なお、詳細なコマンドや手順については各CLIのドキュメントを参照することをお勧めしますが、基本的にはこれらのCLIを通じてスキルを管理する流れとなります。

Vercel skills CLI(パッケージ名:skills)のインストールおよび利用方法

1. インストールせずに実行(推奨)

Node.js 18以上がインストールされていれば、インストール作業を行わずにnpxを使用して直接実行することが推奨されています。これにより、常に最新バージョンのCLIを利用できます。

  • 実行コマンド例: npx skills <コマンド>

2. グローバルインストール

頻繁に利用する場合などは、任意のパッケージマネージャーを使用してシステム全体にインストールすることも可能です。

  • npmの場合: npm install -g skills

  • pnpmの場合: pnpm add -g skills

  • yarnの場合: yarn global add skills

  • bunの場合: bun add -g skills

インストール後、ターミナルで skills --version を実行して正しく動作するか確認できます。

前提条件と注意点

  • Node.jsのバージョン: 18以上が必須です。

  • スキルの追加: 実際にスキルをプロジェクトに追加する際は、npx skills add <package> という形式のコマンドを使用します。

例えば、一般的なエージェントスキルを追加する場合は、npx skills add vercel-labs/agent-skills といったコマンドが使用されます。

性能向上例

Gemini APIのスキル(特にgemini-api-dev)を導入することで、AIエージェントがベストプラクティスに従った正確なAPIコードを生成する能力が大幅に向上しました。

具体的な性能向上の数値と内容は以下の通りです。

1. コード生成精度の劇的な向上

Googleの評価によると、スキルを追加することで、最新のモデルにおいて以下の精度向上が確認されています。

  • Gemini 3 Flash: 正解率が 87% に向上。

  • Gemini 3 Pro: 正解率が 96% に向上。

スキルを使用しない「バニラ状態(直接プロンプトを入力するだけ)」では、Gemini 3.0 Pro/Flashの正解率はわずか 6.8%、3.1 Proでも 28% という低いベースラインでしたが、スキル導入によってこれらが劇的に改善されました。

2. 具体的な改善領域

  • 最新SDKへの対応: LLMがトレーニング後に登場した新しいライブラリやSDKの変更、特定のメソッド(例:cacheContent など)を正しく利用できるようになります。

  • APIの幻覚(ハルシネーション)の防止: 存在しないAPIを使用したり、古いバージョンの関数シグネチャを生成したりするミスを防ぎ、ライブラリの 「今」の仕様に合致したコード を出力します。

  • 広範なドメインでの成功: SDKの利用、チャットボットの構築、ドキュメント処理、ストリーミングコンテンツなど、ほぼすべてのカテゴリで良好なパフォーマンス(最高モデルで 95%以上の成功率)を示しています。

3. なぜ性能が上がるのか

スキルは、「Progressive Disclosure(段階的開示)」 という仕組みを採用しており、必要な時だけ詳細な手順や最新のドキュメントを読み込みます。これにより、AIエージェントの限られた記憶容量(コンテキストウィンドウ)を節約しつつ、最新かつ専門的な知識をオンデマンドで補完できるため、推論の精度が維持・向上します。

スキルの自動作成機能

AIエージェントに専門的なタスクを実行させるための指示書(SKILL.md)やディレクトリ構造を、ユーザーの手作業ではなくAIとの対話を通じて生成する機能です。

主に、Gemini CLIによるテンプレート生成と、Context7による高度な「スキル・ウィザード」の2つの方法が紹介されています。
なお、Context7のスキル生成機能には利用制限があり、無料アカウントでは週6回、Proアカウントでは週10回まで利用可能です。

1. Gemini CLIでの自動作成(推奨方法)

Gemini CLIを使用している場合、エージェント自身に依頼することでスキルの雛形を自動的に作成できます。

  • 作成方法: エージェントに対して「create a new skill called 'my-new-skill'」のように依頼します。

  • 生成されるもの: 標準的なディレクトリ構造(scripts/, references/, assets/ など)と、基本的なテンプレートが含まれた SKILL.md が自動生成されます。

2. Context7「スキル・ウィザード(Skill Wizard)」

Context7 CLI(ctx7)が提供するこの機能は、最新のドキュメントに基づいた高度なカスタムスキルを生成できる非常に強力な機能です。以下の5つのステップで進行します。

  1. 専門性の記述: エージェントにどのような「エキスパート」になってほしいかを説明します(例:「React 19のフォーム管理のエキスパート」など)。

  2. ドキュメントソースの選択: Context7のインデックスから関連する最新ドキュメントを検索・選択します。これにより、AIの「幻覚(ハルシネーション)」や古い情報の利用を防ぎ、実際のソースに裏打ちされたスキルを作成できます。

  3. 詳細の絞り込み: AIからの質問に答えることで、スキルの範囲や特定のユースケースを明確にします。

  4. レビューと推敲: 生成されたスキルを確認し、必要に応じてエディタでの編集や、AIへの変更依頼(Request changes)を行って磨き上げます。

  5. IDEへのインストール: 生成されたスキルは Agent Skills標準 に準拠しており、Claude Code、Cursor、VS Code Copilotなど、複数のプラットフォームへ一括してインストール可能です。

自動作成を利用するメリット

  • 知識のギャップの解消: 手動で書くには深い知識が必要な最新ライブラリ(React 19やNext.js 15など)のベストプラクティスを、最新ドキュメントから正確に取り込めます。

  • AIに最適な形式: スキルは単なるチュートリアルではなく、AIが理解しやすい「簡潔で制約に焦点を当てた指示」である必要があります。自動作成機能はこのAI向けの最適化を自動で行います。

  • 精度の確保: 実際のドキュメントスニペットを基に生成されるため、存在しないAPIの使用や、非推奨のパターンを回避できます。

SKILL.mdの書き方(サンプル)

SKILL.mdは、AIエージェントに専門的なタスクの手順を教えるための定義ファイルです。このファイルは、主にYAMLフロントマター(メタデータ)とMarkdown本文(具体的な指示)の2つのセクションで構成されます。

以下に、具体的な書き方とサンプルをまとめます。

1. SKILL.mdの基本構造

---
name: スキル名(ディレクトリ名と一致させる)
description: >
  エージェントがこのスキルを起動するための「トリガー」となる説明文。
---

# スキルの指示内容(Markdown形式)
ここに具体的な手順やルールを記述します。

2. 各セクションの書き方のコツ

フロントマター (YAML)

  • name: スキルを識別する名前です。保存するディレクトリ名と完全に一致させる必要があります(例:skills/my-skill/ なら name: my-skill)。

  • description (最重要): エージェントが「このスキルを使うべきか」を判断するトリガーになります。

    • 具体的に書く: 「Pythonのテスト」ではなく「pytestを使用したテスト」のように、具体的なキーワード(pytest, PostgreSQLなど)を含めます。

    • 「何をするか」より「いつ使うか」: 手順まで説明してしまうと、エージェントが本文を読まずに作業を始めてしまうため、起動条件と能力に焦点を当てます。

    • 禁止事項の明記: 「基本的なデータ操作には使用しないでください」といったネガティブトリガーを書くことで、誤作動を防げます。

本文 (Markdown)

  • 「ドキュメント」ではなく「手順」を書く: 単なる説明(README)ではなく、エージェントが実行すべきステップバイステップの指示を記述します。

  • ルールと制約: 「 destructive(破壊的)な操作の前には必ず確認すること」といった重要なルールを箇条書きで明示します。

  • ディレクトリの参照: スキルフォルダ内の scripts/(実行スクリプト)、references/(追加資料)、assets/(テンプレート)をエージェントに読み取らせる指示を含めます。


3. 具体的なサンプル

以下は、新しいAPIエンドポイントを作成するためのスキルの例です-。

---
name: create-api-endpoint
description: >
  Next.jsのApp Routerで新しいAPIルート、RESTエンドポイント、またはサーバーサイドハンドラーを作成する際に使用します。
  ルートの作成、バリデーション、エラーハンドリング、TypeScriptの型定義、テストの雛形作成を処理します。
---

# APIエンドポイントの作成手順

### 1. 事前確認
* ユーザーとエンドポイントのパス、およびHTTPメソッドを確認する。
* 既存のルートと競合しないか確認する。

### 2. 型定義の作成
`src/types/api/` 内にTypeScriptの型を定義する。
* リクエストボディの型(POST/PUT用)
* レスポンスボディの型

### 3. ルートハンドラーの作成
`assets/route-template.ts` の構造を使用すること。
* Zodによるリクエストバリデーションを含める。
* `references/error-codes.md` に従い、適切なHTTPステータスコードを使用する。
* 一貫したレスポンス形式 `{ data, error, meta }` を返すこと。

### 4. テストの作成
`assets/test-template.ts` を使用して、以下のテストケースを作成する。
* 正常系(Happy Path)
* バリデーション失敗時(400)
* 認証エラー(401)

### ルール
* 破壊的な変更を含む場合は、実行前に必ずユーザーの承認を得ること。
* すべての新しいAPIには必ず対応するテストファイルを作成すること。

スキルの保存場所

作成した SKILL.md は、プロジェクト内の以下のディレクトリに配置することで機能します。

  • プロジェクト固有: .gemini/skills/[スキル名]/SKILL.md

  • 全プロジェクト共通: ~/.gemini/skills/[スキル名]/SKILL.md

もし記述が難しい場合は、エージェントに「create a new skill called '[スキル名]'」と依頼すれば、これらの構造を持つ雛形を自動作成してくれます。

スキル利用可能モデル

Gemini APIのスキルは、主に最新のGemini 3シリーズのモデルで最大限の性能を発揮するように設計されています。

具体的に利用可能、あるいは効果が確認されているモデルは以下の通りです。

1. 推奨される最新モデル

最新のGemini 3シリーズは、強力な推論能力(Reasoning)を備えているため、スキルを追加した際に非常に高い精度向上を示します。

  • Gemini 3.1 Pro / Flash: 現在の主要なターゲットモデルであり、スキルはこのモデルへのルーティングや最適化をサポートしています。

  • Gemini 3 Pro: スキル導入により、コード生成の正解率が96% に達することが確認されています。

  • Gemini 3 Flash: スキル導入により、正解率が87% に向上します。

2. 旧世代のモデル

  • Gemini 2.5シリーズ: 利用自体は可能ですが、最新モデルほどの劇的な改善は見られません。スキルの効果を十分に引き出すには、推論能力の高い現代的なモデル(Gemini 3以降)の使用が推奨されています。

3. その他のプラットフォームとモデル(互換性)

「Agent Skills」はオープンな仕様(SKILL.md形式)に基づいているため、Gemini以外のモデルを搭載したプラットフォームでも広く利用可能です。以下のツールを通じて、それぞれのバックエンドモデルでスキルを活用できます。

  • Claude Code (Claude 3.5 Sonnetなど)

  • GitHub Copilot (VS Code)

  • Cursor

  • OpenAI Codex

  • その他、Windsurf、Roo Code、Gooseなど20以上のプラットフォームに対応しています。

まとめると、Gemini APIを直接利用する場合はGemini 3.1 ProやFlashなどの最新モデルを使用するのが最も効果的です。

Gemini Docs MCPとGemini APIスキルの違い

Gemini Docs MCPとGemini APIスキルは、どちらもAIエージェントの知識の欠如(トレーニングデータのカットオフによる情報の古さ)を補うためのツールですが、その役割と仕組みに大きな違いがあります。

結論から言うと、MCPは「最新の公式ドキュメント(事実)」を提供し、スキルは「開発のベストプラクティス(手順やルール)」を提供します。

主な違いは以下の通りです。

1. 役割の違い

  • Gemini Docs MCP: リアルタイムで公式ドキュメントにアクセスするためのデータブリッジです。最新のAPI定義や、公式な構成例をエージェントが検索できるようにします。

  • Gemini API スキル: エージェントに対する「行動指針」や「ルール」 のパッケージです。例えば、「古いモデルを避け、最新のGemini 3.1 Pro/Flashを使う」「特定のSDKを使用する」といった、開発におけるベストプラクティスをエージェントのコンテキストに直接注入します。

2. 仕組みと動作の違い

  • MCP (Model Context Protocol):

    • エージェントに search_documentation という「ツール(関数)」を追加 します。

    • エージェントは必要に応じてこのツールを呼び出し、gemini-api-docs-mcp.dev というサーバーからリアルタイムで情報を取得します。

  • スキル (Agent Skills):

    • SKILL.md というファイルに記述された「指示(プロシージャ)」 です。

    • エージェントが特定のタスク(例:API実装)に関連があると判断した時に、その指示内容がコンテキスト(記憶)に読み込まれます

3. 相互関係(シナジー)

これら2つは独立して使用することも可能ですが、組み合わせて使うことで最大の効果を発揮するように設計されています

  • 連携: スキルがインストールされている場合、そのスキルはドキュメントを取得するためにMCPサービスを優先的に利用します。

  • フォールバック: もしMCPがインストールされていなくても、スキルは ai.google.dev から llms.txt を取得して最新情報を補う仕組みを持っています。

比較まとめ

検証する際、エージェントがMCPツール(search_documentation)を使っているか、あるいはスキル(Using skill: gemini-api-dev)を呼び出しているかを見ることで、どちらが機能しているかを確認できます。

Gemini APIのスキル(Agent Skills)の更新方法と重要な注意点

1. スキルの更新方法

現在、スキルには自動バックグラウンド更新のような仕組みが確立されていないため、基本的に手動での更新が必要となります。

  • 定義ファイルの再読み込み: SKILL.mdを直接編集した後は、Gemini CLIなどのインタラクティブモードで /skills reload コマンドを実行することで、エージェントに最新の定義を認識させることができます。

  • CLIツールのアップデート: スキルの管理に使用するVercelのskills CLI自体を更新するには、各パッケージマネージャーで再度インストールコマンドを実行します(例: npm install -g skills)。なお、npx skillsを使用している場合は、常に最新バージョンが自動的に使用されます。

  • 再インストール: 最新のソース(Gitリポジトリやローカルパス)からスキルを更新する場合は、gemini skills install <source> コマンドを使用して上書きインストールを行います。

  • 古い情報の削除: 古いスキルの情報がワークスペースに残っていると、エージェントが誤った動作をする(有害な影響を与える)可能性があるため、不要になったスキルは gemini skills uninstall <name> などで削除することが推奨されます。

2. 更新・作成時の注意点

スキルが正しく「発動」し、期待通りの性能を発揮させるためには、以下の点に注意する必要があります。

  • エージェントの再起動: ほとんどのエージェントは起動時にのみスキルをインデックス(目次作成)します。スキルをインストールしたり大幅に更新したりした後は、IDE(CursorやVS Code)を完全に再起動するか、ターミナルベースのエージェントを一度終了して開き直す必要があります。

  • 「説明文(description)」はトリガーに徹する: フロントマターの description は、エージェントがそのスキルを使うべきか判断するための「トリガー」です。

    • やりがちな失敗: 説明文に手順を詳しく書きすぎると、エージェントは「内容を理解した」と誤認し、詳細な手順が書かれた本文(Body)を読み込まずに作業を始めてしまいます。

    • 対策: 説明文には「いつ使うか」と「何ができるか」のみを書き、具体的な「手順(どうやるか)」は本文に記述してください。

  • ネガティブトリガー(除外設定)の活用: スキルが不要な場面で誤って発動(オーバートリガー)するのを防ぐため、「基本的なデータ操作には使用しないでください」といった「使用しない条件」 を説明文に含めることが有効です。

  • 命名の完全一致: YAMLフロントマター内の name は、ディレクトリ名と完全に一致させる必要があります。ここが食い違っていると、一部のプラットフォームでスキルが正しく読み込まれません。

  • 「ドキュメント」ではなく「手順」を書く: SKILL.md の本文は、単なるREADMEやチュートリアルではなく、エージェントが実行すべきアクション(ステップバイステップの指示) として記述してください。

  • トークン効率を意識する: スキルの数が増えると、起動時に読み込まれるメタデータのトークン量が増え、コストや応答速度に影響します。説明文は1,024文字以内(推奨は2〜4文)に収め、簡潔に保つことが重要です。

プライバシーとセキュリティ

スキルを導入したからといって、手元のコードが自動的に外部公開されるような仕組みにはなっていませんので、ご安心ください。
プライバシーとセキュリティに関しては、主に以下の仕組みによって保護されています。

1. ユーザーの明示的な承認(Consent)

Gemini CLIなどのツールでは、エージェントが特定のスキルを有効化しようとする際、必ずユーザーに確認(Consent)を求めます

  • 「スキル '〇〇' を有効化しますか?」という確認メッセージとともに、エージェントがアクセスしようとしているディレクトリパスが表示されます

  • ユーザーが承認(Injection)して初めて、スキルの内容がコンテキストに追加され、エージェントにそのディレクトリへのアクセス権が付与されます。

2. Context7におけるデータ送信の制限

Context7 CLIを利用する場合、外部(Context7側)のサーバーに送信されるのは、適切なドキュメントを探すための「ライブラリ名」と「クエリテキスト」のみ です。

  • あなたのコード、会話履歴、機密データがサーバーに送信されることはありません

  • あなたのコードベースは、GeminiなどのLLMプロバイダーの手元に留まります

3. テレメトリ(利用状況データ)の制御

VercelのSkills CLIやContext7は、デフォルトで匿名の利用状況データを収集することがありますが、これに個人情報は含まれません。また、以下の方法で完全に無効化(オプトアウト)することが可能です。

  • 環境変数 DISABLE_TELEMETRY または DO_NOT_TRACK を設定することで、データ収集を停止できます。

注意点

  • スキルの共有: 自分で作成したスキルをGitHubなどの公開リポジトリに保存した場合は、その「スキル定義(指示書)」自体は公開されます。しかし、そのスキルが扱う「あなたのプロジェクトのソースコード」が公開されるわけではありません。

  • LLMプロバイダーのポリシー: ソースコード自体はLLMプロバイダー(Googleなど)とのやり取りに含まれるため、利用しているAPIサービスの標準的なプライバシー規約(データの学習利用の有無など)に従います。


重要キーワード(ハッシュタグ)

#GeminiSkills #GoogleGeminiAPI #AI開発 #ベストプラクティス #SDK変更 #コード生成精度向上 #LLM知識ギャップ解消 #専門スキル利用 #gemini -api-dev #vertex -ai-api-dev #gemini -live-api-dev #gemini -interactions-api #CLIツール #性能向上例 #SKILL .md #AIエージェント #開発効率化

参照資料


いいなと思ったら応援しよう!