この記事は、Agent Development Kit(ADK)(ADK)の SkillToolset についてのチュートリアルである。SkillToolset を使うと、エージェントはドメインの専門知識をシステムプロンプトに抱え込むのではなく、必要に応じて読み込めるようになる。記事の冒頭の問いは、指示に従えるエージェントは新しい指示を書くこともできるのか、というものであり、その答えは、適切なスキル構成があれば、エージェントは実行時にまったく新しい専門知識を生成できる、というものである。

記事の出発点となる問題は、モノリシックなプロンプトである。開発者はしばしば、コンプライアンスのルール、スタイルガイド、API リファレンス、トラブルシューティングの手順を 1 つの指示文字列に連結する。これは能力が 2 つか 3 つのうちは機能するが、10 個以上になると、クエリがそれらを必要とするかどうかにかかわらず、呼び出しのたびに数千トークンを費やすことになる。記事は Agent Skills の仕様における 段階的開示(Progressive Disclosure) をその解決策として示し、SkillToolset をその ADK における実装として提示している。

記事はそこから 4 つのパターンを、それぞれが前のパターンを拡張する形で積み上げていき、最後は「スキルファクトリー」に至る。スキルファクトリーでは、メタスキル によって、エージェントが新しいスキル定義を書いて読み込むことで自らの能力を拡張する。

要点

  • 段階的開示は 3 つのレベルで説明される。L1 のメタデータ(スキルあたり約 100 トークン:名前と説明)は、すべてのスキルについて起動時にメニューとして読み込まれる。L2 の指示(5,000 トークン未満)は、エージェントがスキルを有効化したときにだけ読み込まれる。L3 のリソース(スタイルガイドや API 仕様など)は、指示がそれを必要とするときにだけ読み込まれる。
  • 記事の計算では、10 個のスキルを持つエージェントは、モノリシックなプロンプトでの 10,000 トークンではなく、およそ 1,000 トークンの L1 メタデータで各呼び出しを始めることになり、記事はこれをベースラインのコンテキスト使用量のおよそ 90% の削減だとしている。
  • SkillToolset は、各レベルに対応する 3 つのツール、list_skills(L1)、load_skill(L2)、load_skill_resource(L3)を自動生成する。
  • パターン 1 のインラインスキルは、エージェントのコード内で定義される、名前、説明、指示を持つ Python オブジェクトであり、めったに変わらない小さく安定したルールに推奨される。
  • パターン 2 のファイルベースのスキルは、SKILL.md と、リファレンス、アセット、スクリプトのための任意のサブディレクトリを持つディレクトリである。agentskills.io の仕様に従うエージェントであれば、どれでも同じディレクトリを読み込める。
  • パターン 3 の外部スキルは、コード上はパターン 2 と同一であり、ディレクトリを手で書く代わりにコミュニティのリポジトリからダウンロードするだけである。
  • パターン 4 のスキルファクトリーは、有効な SKILL.md ファイルの書き方を指示で説明し、L3 のリソースに仕様そのものと動作する例を埋め込んだインラインスキルである。新しい能力を求められると、エージェントは仕様に準拠したスキルを生成する。
  • 生成されたスキルは同じ仕様に従うため、記事によれば、それは ADK だけでなく互換性のあるあらゆるエージェントで動作する。記事は、この形式を採用した 40 以上の製品のうちの例として、Gemini CLI、Claude Code、Cursor を挙げている。
  • 記事は、生成された SKILL.md ファイルをレビューするために人間をループに残し、それらをコードレビューや依存関係のように扱うこと、そしてデプロイの前にあらゆるスキルを評価でテストすることを推奨している。
  • その他のヒントとしては、description フィールドは L1 でモデルがスキルを読み込むかどうかを判断するために見るものなので、いつ有効化すべきかを正確に述べるべきであること、そしてスキルはインラインで始め、参照文書や複数のエージェント間での再利用が必要になったときに初めてファイルに移すべきであることが挙げられている。

背景

この記事は、Google が自社のフレームワークについて書いたベンダーのチュートリアルである。コンテキストの節約に関する数値は、示されたレベルごとのトークン予算から計算したものであり、測定値ではない。記事は ADK のスキルに関するドキュメントと、4 つのパターンすべてを実行するサンプルリポジトリを案内している。