Android スキルの概要

Android スキルは、AI ツールやエージェントが Android 開発のベスト プラクティスとガイダンスに沿った特定のパターンをよりよく理解して実行できるように、AI 向けに最適化された指示です。これらは Android スキルの GitHub リポジトリにあります。

Android スキルを使用すると、次のようなタスクを実行できます。

  • XML から Compose に移行する
  • AGP 9 にアップグレード
  • Navigation 3 などの新しいフレームワークをセットアップする
  • アプリの UI をエッジ ツー エッジ対応にしてモダナイズする
  • R8 構成を監査してパフォーマンスを改善する

Android スキルを使用すると、LLM を最新の知識と Android の特殊なワークフローのコンテキストで根拠づけることができます。

Android スキルはエージェント スキルのオープン標準に準拠しているため、スキルをサポートするあらゆる AI ツールと互換性があります。このページでは、Android Studio でスキルを使用する方法と、Android CLI を使用して任意のエージェントとツールで使用するスキルをインストールする方法について説明します。

Android スキルの主なメリット

Android スキルには、エージェント ワークフローを加速させ、高品質な Android コードをより効率的に生成することを目的とした、次のようなメリットがあります。

  • 専門知識でグラウンディング: エージェントに Android 固有のコンテキストをより多く提供し、オンデマンドでグラウンディングして、通常のモデル トレーニング サイクルを超えてデフォルトの知識と専門知識を拡張します。
  • 繰り返し可能なワークフロー: Android 開発の複数ステップのタスクが一貫して実行されるように、標準的な手順を提供します。
  • リソースのバンドル: メインの SKILL.md の手順とともにスクリプト、テンプレート、追加のドキュメントを含めることで、エージェントが 1 か所で必要なものをすべて取得できるようにします。これにより、プロンプトのファイルを添付する手間を省くことができます。
  • 専門知識の共有: チームの Android 開発パターンを共有フォルダにパッケージ化して、統一されたアクセスとコラボレーションを実現します。

Android のスキルを活用する

Android スキルは Android CLI に統合されており、任意のエージェントで使用できます。

gemini_cli_skills_demo.gif

Android CLI

Android CLI を使用して Android スキルをインストールすることをおすすめします。これにより、任意のエージェントのスキルを簡単に検出、ダウンロード、管理できます。

Android Studio

Android スキルの GitHub リポジトリからスキルをダウンロードして、Android Studio のプロジェクトにインポートできます。

スキルを有効にする

エージェントは、タスクに関連するスキルを自動的に有効にします。スキルを使用するには、スキルに関連するタスク(「アプリの UI をエッジ ツー エッジにする」など)を完了するようエージェントに指示します。エージェントは、スキルが利用可能な場合は、自動的にスキルを見つけて使用します。

Android Studio では、チャット ウィンドウに @skill-name と入力して、スキルを手動で直接呼び出すこともできます。

独自のスキルを作成する

独自のスキルを作成して、チームのワークフローをパッケージ化して共有できます。スキル要件の詳細については、エージェント スキルの仕様をご覧ください。

エージェントは、プロジェクト ルートにある .skills/ ディレクトリまたは .agent/skills/ ディレクトリからスキルを検索します。カスタムスキルを作成する手順は次のとおりです。

  1. スキルのディレクトリを作成します(例: my-new-skill/)。
  2. 新しいディレクトリ内にSKILL.md ファイルを作成します(大文字と小文字は区別されます)。

スキルは次のルールに従う必要があります。

  • スキルごとに 1 つのディレクトリ: 各スキルには、SKILL.md ファイルと追加のリソースを含む独自のディレクトリが必要です。
  • ネスト: すべてのスキルは、プロジェクト ルートの .skills/ ディレクトリまたは .agent/skills/ ディレクトリに存在する必要があります。ただし、サブディレクトリを使用して、より適切に整理できます(skills/ui-flows/<skill name>/SKILL.mdskills/testing/<skill name>/SKILL.md など)。
  • スコープ: 現在、プロジェクトのコードベース内にあるスキルのみがサポートされています。

SKILL.md ファイルでは、メタデータに YAML ブロックを使用し、手順に標準の Markdown を使用します。

  • name: スキルの固有識別子。これはディレクトリ名と一致する必要があります。
  • description: スキルの機能と、エージェントがスキルを使用するタイミングを明確に説明します。
  • 本文: YAML ブロックの下の Markdown 本文には、スキルがアクティブなときのエージェントの動作をガイドする手順が含まれています。
---
name: skill-name
description: A description of what this skill does and when to use it.
metadata:
  author: example-org
  version: "1.0"
---

Skill content

形式に関するガイドライン

  • 名前: 最大 64 文字(英小文字、数字、ハイフンのみ)。
  • 説明: 最大 1,024 文字。
  • 本文: 10,000 ~ 20,000 文字(約 2,500 ~ 5,000 トークン)を目安にします。手順がこれを超える場合は、オプションのスキル ディレクトリで説明されているように、詳細なドキュメントをリソース ファイルに移動することを検討してください。

オプションのスキル ディレクトリ

SKILL.md ファイルを簡潔かつモジュール化された状態に保つため、スキルフォルダ内の次のオプション ディレクトリに、追加のリソースを含めることができます。

  • scripts/: エージェントが実行できる実行可能コード(Python や Bash など)が含まれています。
  • references/: 詳細な技術ドキュメント、API リファレンス、ドメイン固有のガイドが含まれています。
  • assets/: ドキュメント テンプレート、UI 図、JSON スキーマなどの静的リソースが含まれます。

SKILL.md の手順内でこれらのファイルを参照する場合は、スキルルートからの相対パスを使用します。例: Run the script at scripts/cleanup.py

スキルの仕組み

スキルはオンデマンドの専門知識を表します。この構造により、エージェントはモデルのコンテキスト ウィンドウを煩雑にすることなく、多数の特殊な機能を維持できます。

モデルは、リクエストとスキルの説明に基づいて、スキルを使用するタイミングを自律的に決定します。関連するスキルが特定されると、モデルはタスクの完了に必要な手順とリソースを動的に取得します。