Google、AI開発フレームワーク「Genkit」でAgent Skillsをサポート — AIに「必要な時だけスキルを装着」させる仕組み

Anthropic発のスキル開放標準をGoogleが全4言語対応で採用。Goで動く2つのサンプルで、導入はわずか1行のパラメータから
著者:Google Developers Blog08-04 · 8 分で読了⚑ チュートリアル
🎧 ポッドキャスト版0:00 / --:--
0:00 / --:--
ツール活用 · 小互による解説
1分でわかる
  • AIエージェントの取扱説明書が増えすぎて、すべてをコンテキストに入れるとトークンが無駄になり、モデルも混乱する。Googleは自社フレームワーク「Genkit」にAgent Skillsを統合:説明書はディスク上に置き、必要な分だけ呼び出す。
  • このスキル標準はAnthropicが提唱したもの。Googleは4言語すべてで対応し、導入はわずか1行のパラメータ。
  • 公式デモでは、2012年に修復失敗で話題になった「猿顔のキリスト」の原画をテストに使用。モデルが油絵と判別し、対応する修復スキルを呼び出す流れを実演。
⚑ 本記事はGoogle公式ブログのGenkitチュートリアルを基にした解説です。2つのサンプルの動作は元記事の実演によるもので、当サイトでは再現検証していません。
課題

説明書をぜんぶAIに突っ込むのは、ムダだし不要

Google Developers Blogが実用的な入門チュートリアルを公開しました。自社のオープンソースAIアプリケーションフレームワーク「Genkit」が、Anthropicが提唱し業界標準になりつつある「AIスキルパック」形式を正式サポートしたのです。簡単に言えば、これまでは操作マニュアルをすべてプロンプトに詰め込む必要がありましたが、これからはマニュアルをディスクに置いておき、必要なときだけ読み込む方式に変わります。導入はわずか1行のパラメータ。チュートリアルではGo言語で動く2つのサンプルを紹介。1つはレシピボット、もう1つは自分で修復プランを選ぶAIアート修復師です。

4言語対応
TypeScript / Go / Dart / Python 全バージョンで統合
3つの段階
プログレッシブ・ディスクロージャー:発見 → 活性化 → 実行
1行のパラメータ
ai.WithUse(...) で統合完了

この仕組みが解決するのは、Agent開発者なら誰もがぶつかる問題です。エージェントの仕事が増えるほど、渡す説明書も増えていきます。操作手順、参照ガイド、各種ドキュメント。これらをすべてコンテキストウィンドウに常駐させると、3つの問題が同時に発生します。トークンの無駄遣い(毎回のリクエストで書類の山を全部読み直す)、注意力の分散(本当に関係のある数行が数百ページに埋もれる)、そして誤回答の確率上昇。例えるなら、従業員が毎日出社するたびに会社の全規程を丸暗記しているようなもの。実際に今日使うのはたった1ページなのに。

以前:コンテキストに全部投入 操作手順 参照ガイド ブランドマニュアル 審査チェックリスト データ辞書 まだまだ増える… 毎回リクエストで全部持っていく 今:必要な分だけ スキル名刺 本体は空けておく ディスク スキル本文はここ 指名されたら登場
同じ説明書でも、置き方は2通り。常駐か、名刺だけ常駐させて本文はディスクか(当サイト作成図)

Agent Skillsが解決するのはまさにこの問題です。専門知識を「スキル」という単位にパッケージ化し、普段はバックグラウンドに置いておき、使う瞬間だけ読み込む。Claude CodeのSkillsを使ったことがある人なら、この仕組みに見覚えがあるはず。同じフォーマットです。Anthropicが標準として公開したもの(agentskills.io)で、Genkitはまさにこれを統合しました。当サイトでは以前、Anthropic公式がスキルで検証ループを構築する実践例を解説しています。

関連記事
Anthropic公式、手動コードチェックをスキル化し自己修正させる方法を解説
Claude Codeでスキルを実際に活用する方法を完全解説。今回は同じフォーマットがGoogleのフレームワークに登場した話。
形式

スキル=1つのフォルダ

では、この「必要に応じて読み込む」スキルはどんな見た目でしょうか?答えは驚くほどシンプル:スキルは1つのフォルダで、中にSKILL.mdファイルが必須です。このファイルは2つの部分に分かれます。前半がfrontmatter、---で囲まれた小さなメタデータで、スキルの名前と「どんなときに使うべきか」を記述します。後半がbody、実際の操作手順です。フォルダには任意のリソースを3種類追加できます:scripts/(実行可能スクリプト)、references/(参照ドキュメント)、assets/(テンプレート素材)。

スキルフォルダの標準構造(この構成でディレクトリ作成)
skill-name/
├── SKILL.md          # 必須: メタデータ + 手順書
├── scripts/          # 任意: 実行可能コード
├── references/       # 任意: ドキュメント
├── assets/           # 任意: テンプレート、リソース
└── ...               # その他のファイルやディレクトリ
必須なのはSKILL.mdのみ。スクリプト、参照ドキュメント、テンプレートは任意の持ち物です。
スキル=フォルダ1つ skill-name/ ├─ SKILL.md ├─ scripts/ ├─ references/ └─ assets/ ★ 必須 実行スクリプト 参照ドキュメント テンプレ素材 SKILL.mdの中身 frontmatter・名刺 name:名前は? description:いつ使う? body・手順書 実際の作業手順を完全記載 references/ や scripts/ を参照可 システムプロンプトに常駐するのは、名刺だけ
SKILL.mdの2層構造:名刺は軽く、本文は重い。軽いものは常駐、重いものはオンデマンド(当サイト作成図)

スキルはMarkdownと通常ファイルで構成されるため、コードと同じようにGitで配布できます。追加サーバーは不要です。frontmatterには公式のテンプレートが用意されており、ポイントはすべてdescriptionにあります。これがトリガースイッチです。

frontmatterの記述例(descriptionがトリガー)
---
name: adr-template
description: Activate this skill when proposing significant architectural changes, documenting codebase refactorings, or resolving design/technical debates. Use this skill to author and maintain Architecture Decision Records (ADRs) to preserve engineering context.
license: Apache-2.0
metadata:
  author: example-org
  version: "1.0"
---
日本語訳:大規模なアーキテクチャ変更の提案、コードベースのリファクタリング記録、設計・技術的な議論の解決時にこのスキルを有効化。ADRsを作成・保守し、エンジニアリングの文脈を保存するために使用します。具体的に書くほど、モデルはいつ呼ぶべきか正確に判断できます。
仕組み

プログレッシブ・ディスクロージャー:目次は常駐、本文は指名後に

フォルダが用意できたら、モデルはどうやって使うタイミングを知るのでしょうか?鍵となるのは「プログレッシブ・ディスクロージャー(progressive disclosure)」と呼ばれる仕組みで、3つのステップで構成されます:

  1. 発見(Discovery):起動時にスキルディレクトリをスキャンし、各スキルの名前と説明だけをシステムプロンプトに注入。モデルには目次だけを見せている状態です。
  2. 活性化(Activation):タスクが特定のスキルの説明と一致したら、フレームワークがuse_skillツールを呼び出し、そのSKILL.mdの完全な本文をコンテキストに読み込みます。
  3. 実行(Execution):モデルは本文の手順に従って作業を進め、必要に応じてreferences/を参照したり、同梱のスクリプトを実行します。
① 発見 cheese-bread・名刺 paintings・名刺 adr-template・名刺 名前 + 説明のみ注入 起動時:目次が常駐 ② 活性化 SKILL.md 本文すべて use_skillでコンテキストへ タスクが説明に一致した時のみ ③ 実行 references/ 必要時参照 scripts/ 必要時実行 手順に従って作業 開示サイクルの完了 コンテキスト使用量 名刺(常駐) 本文(活性化時) 参照/スクリプト(必要時)
プログレッシブ・ディスクロージャーの3段階:コンテキスト使用量は「指名」された時だけ増える(当サイト作成図)

トークンの節約はこのようにして実現されます。コンテキストに常駐するのは各スキルの数十文字の名刺だけ。数百ページの詳細はディスク上に置かれ、指名された者だけがメモリに読み込まれます。この設計の利点は3つにまとめられます。

3大メリット
トークン節約:未使用時はごく小さなメタ情報のみ。使用時にのみ本文を読み込み。
軽量で保守が容易:プレーンなMarkdownで管理でき、ビジネスコードと一緒にバージョン管理へ。複雑な外部DBやナレッジベースの構築は不要。
ツールボックス内蔵:スキルパックにコードスクリプトを同梱でき、AIは特定タスクで確実なツールを直接呼び出せます。
プログレッシブ・ディスクロージャーのフロー図
元記事のプログレッシブ・ディスクロージャー図:トークン消費は本当に必要な瞬間まで先延ばし。画像はGoogle Developers Blogより(Gemini 3.1 Flash Image生成)
コード

導入は1行のパラメータ、裏ではミドルウェアが活躍

仕組みが分かったところで、実際にコードで書く量はどれくらいでしょうか?答えは1行。genkit.Generate呼び出しにai.WithUseパラメータを追加し、スキルフォルダを指定するだけで統合完了です。

Genkit Goでスキルを有効化する1行(genkit.Generate呼び出しに追加)
resp, err := genkit.Generate(ctx, g,
    ai.WithPrompt("How do I run tests in this repo?"),
    ai.WithUse(&middleware.Skills{SkillPaths: []string{"./skills"}}),
)
SkillPathsにはスキルフォルダが入っているディレクトリを指定。フレームワークがSKILL.mdを自動でスキャンします。

この1行の背後にあるのは、Genkitのミドルウェア(middleware)体系です。コードとモデルの間に挟まる層で、リクエストが通過するたびに、追加・迂回・記録といった処理を行うことができます。宅配便の仕分け場のようなもの。フックは3種類あり、各段階を担当します:WrapGenerateは各会話ループを横取りし、システムプロンプト注入のような会話全体を見る処理を担当。WrapModelはモデルAPI呼び出しのたびに介入し、リトライ、フォールバック、キャッシュを管理。WrapToolはツール実行のたびに介入します。Skillsミドルウェアはこのフック群の上に構築され、やることは3つ:ディレクトリをスキャンしてSKILL.mdを探す → 名刺をシステムプロンプトに注入 → リクエストが説明と一致したら活性化。

Skills ミドルウェア スキル名刺を注入、一致時にuse_skill活性化 WrapGenerate・会話ループごとに介入 システムプロンプト注入、メッセージ蓄積 WrapModel・モデル呼び出しごとに介入 リトライ / フォールバック / キャッシュ WrapTool・ツール実行ごとに介入 並行ツールはそれぞれ一度ずつ 1回のリクエストで、各段階がフックされる
Genkitミドルウェアの3フックが各段階を担当。Skillsミドルウェアはフック上で注入と活性化を実行(当サイト作成図)
例1

例1:「Cheese」と入力して、チーズパンスキルを起動

まずは最小限の例から見てみましょう。公式の最初のサンプルはコマンドラインレシピツールです。食材を入力するとレシピを出力します。スキルフォルダには2つのスキルが入っています。banana-bread(バナナブレッド)とcheese-bread(チーズパン)。go run main.go cheeseを実行すると、モデルがcheese-breadの説明と一致してスキルを活性化し、スキル内のレシピに従ってブラジルのチーズパン(Pão de Queijo)の完全なレシピをターミナルに出力します。

$ go run main.go cheese・ターミナル出力(抜粋)
+-------------------------------------------------+
|         TRADITIONAL BRAZILIAN CHEESE BREAD      |
|                 (Pao de Queijo)                 |
+-------------------------------------------------+
INGREDIENTS
* Tapioca Flour (Sour Starch) .. 2 cups (240g)
* Grated Parmesan/Queijo ...... 1.5 cups (150g)
  ……
PRO TIP: You can freeze the unbaked dough balls
on a tray, then store them in a bag.
タピオカ粉ベースにパルメザンチーズ150g、自然にグルテンフリー。コツ:生地の玉は冷凍可能で、凍ったまま25分焼くだけ。著者はブラジル人で、このレシピは直感的に正しいとのことですが「自己責任で」とのこと。

この例が示すのは最も基本的な流れです。ユーザーの一言がスキル説明に一致 → 名刺が本文に置き換わる → モデルがレシピ通りに作業。

例2

例2:AIアート修復、モデルが画像を見てスキルを選択

最小例が「マッチング」を示すなら、2つ目の例はより本番に近いケースです。マルチモーダルAIアート修復。損傷したアート作品の写真を渡すと、モデルはまずスケッチか油絵か写真かを判断し、対応する修復スキルを活性化します。drawings、paintings、photographyにはそれぞれ修復手順があり、最後にGemini 3.1 Flash Image(別名 Nano Banana 2)が修復後の画像を生成します。スキル選択には分岐ロジックを1行も書く必要がなく、モデルが画像を見て判断します。

paintingsスキルのSKILL.mdには、プロの修復家の心得が書かれています。絶対的忠実(作品にない要素の追加は厳禁)、反近代化(筆致を残し、テクスチャを平坦にしない)、クラックルの尊重(ひび割れ網は作品の歴史の一部であり、塗りつぶさない)。そして3段階の流れを完結に記述:ワニス補正 → 汚れ除去 → 欠損補填。このファイル自体が「専門手順をスキル化する」良いお手本です。

skills/paintings/SKILL.md 全文(専門手順をスキル化した例)
---
name: paintings
description: Restoration protocol for fine art paintings.
---

# Painting restoration

Perform direct, minimal-intervention restoration of fine art
paintings. Prioritize historical integrity, original pigment
depth, and surface textures over cosmetic modernization. Do not
include any elements, nor introduce any techniques not present
in the original piece.

### 1. Core conservation mandates
* **Absolute Fidelity:** Strictly forbidden to add new subjects,
  figures, scenery, details, or narrative elements under any
  circumstances.
* **Anti-Modernization:** Retain original brushstroke
  characteristics. Do not flatten support textures.
* **Patina & Craquelure:** Respect the natural crack network
  (craquelure) as part of the artwork's history. Do not fill or
  erase cracks unless they pose an active risk of paint loss.

### 2. Step-by-step restoration process
1. **Varnish Correction:** Gently balance aged, yellowed natural
   varnishes to recover original pigment chromaticity without
   forcing modern, high-contrast saturation.
2. **Soot & Grime Reduction:** Isolate and lift surface grime
   while protecting delicate, thin underlying glaze layers.
3. **Inpaint Major Loss:** Where paint layers are missing, use
   references from the surviving elements to bridge the gap.
   Replicate the original brush direction, speed, height,
   transparency, and light source.
日本語訳:最小介入での修復、歴史的完全性を「きれいに見せる」ことより優先。3つの鉄則、絶対的忠実(いかなる状況でも新要素の追加は禁止)、反近代化(筆致と支持体テクスチャを保持)、パティナとクラックルの尊重(ひび割れ網が剥落の危険を伴わない限り埋めない)。3段階:ワニス補正(黄ばみを取り、彩度を無理に上げない)、汚れ除去(薄いグレーズ層を保護)、欠損補填(残存部分から筆の方向、厚み、透明度、光源を再現)。

テスト画像はおなじみの作品。スペインの画家エリアス・ガルシア・マルティネスによる《Ecce Homo》。2012年、教区のアマチュアがこの壁画を修復し「猿のキリスト」としてネットで話題になりました。チュートリアルでは、修復事故前の元の姿をモデルに与え、モデルはこれを古典的な宗教油絵と正しく認識し、paintingsスキルを活性化、修復プランを出力します。まず黄ばんだワニスと汚れを除去し、深紅と肌色を復元。次に妨害的なひび割れを減らし、紫のローブの斑点テクスチャを保存。最後に背景の巻物に経年変化した羊皮紙の質感を加えます。

Ecce Homo 修復前の原画
修復前:《Ecce Homo》の原貌(パブリックドメイン、via Wikimedia Commons)
GeminiによるEcce Homo修復後
修復後:Gemini 3.1 Flash Imageがpaintingsスキルの手順に従って生成

この修復スキルはまだ初期の試みです。大規模言語モデルにはランダム性があるため、同じ画像でも何度か実行しないと良い結果が得られないことがあります。手順自体もプロの修復家による調整が必要です。2つのサンプルの完全なコードはGoogleCloudPlatformのdevrel-demosリポジトリでオープンソース公開されています。リンクは記事末尾にあります。

実践

スキル作成の4つの心得

自分のスキルを作る前に、チュートリアルの最後に付いている4つの心得をチェックしておきましょう。

✅ スキル作成前のチェックリスト
1行の統合パラメータ、スキルディレクトリ構造、frontmatterのテンプレート、プロの修復手順を記したSKILL.md全文。4つの材料は上記にそのまま掲載しています。
出典
Enable on-demand expertise with Agent Skills in Genkit GoDaniela Petruzalek · Google Developers Blog·原文リンク·2026-07-31
当サイトからの注記
プログレッシブ・ディスクロージャー図と《Ecce Homo》修復前後の2枚は元記事から引用。残りの4図は当サイト作成。「Agent SkillsがAnthropicによって提唱され、標準化された」との記述はagentskills.io公式サイトの自己紹介に基づきます。サンプルの動作結果は元記事の実演によるもので、当サイトでは再現検証していません。
↑ 本文ここまで
✓ この記事は全文無料です

メンバーは全文 Markdown のコピー・保存に加え、自分の AI に購読・質問させることができます。

原文を読む ↗
📮 新着解説をメールでいち早く

役に立ちましたか?メールを登録すると、新着解説を公開と同時にお届けします。解除はいつでも。