おすすめの方法

Android Studio のエージェントは、コーディングのコラボレーターとして機能し、コードの生成、複雑なトピックの要約、特定のリソースの検索などを行うことで、開発ワークフローを加速します。効果的なコミュニケーションは、エージェントの可能性を最大限に引き出す鍵となります。

このガイドでは、開発環境を設定し、有用で信頼性の高い回答を生成するプロンプトを作成するための戦略について説明します。複数の戦略について、さまざまなユースケースのプロンプトの例を示しています。プロンプトの例については、プロンプト ギャラリーをご覧ください。

具体的にする

エージェントは、明確かつ具体的な指示を与えることで、最も効果的に機能します。使用したい特定のライブラリ、API、アプローチがある場合は、質問に含めるか、プロジェクトのルート AGENTS.md ファイルに含めて、インタラクション間で保持します。バグレポートを提出するようなものと考えてください。提供する情報が多いほど、問題をより迅速かつ効果的に解決できます。

新しい機能の実装:

CameraX を使用してアプリにカメラのサポートを追加するにはどうすればよいですか?ライブラリを使用するために必要な依存関係と権限を必ず含めてください。
アプリにカメラのサポートを追加するにはどうすればよいですか?

コードの生成:

Coil ライブラリを使用して、指定された URL 文字列から画像をダウンロードする Kotlin の suspend 関数を作成します。

関数には fetchImageAsBitmap という名前を付ける必要があります。Context と String URL を引数として受け取り、null 値を許容する Bitmap を返す必要があります。ネットワーク エラーまたはデコードエラーが発生した場合は、例外をキャッチしてログに記録し、null を返す必要があります。

画像をダウンロードする関数を作成します。

コンセプトの説明:

音楽プレーヤー アプリを作成しており、アプリがバックグラウンドにあるときも再生を継続する必要がある。

ユーザーがデバイスで他の操作を行っている間もアプリを実行し続けるには、どのような方法がありますか?各アプローチの API レベル要件とバッテリー駆動時間への影響はどのようなものですか?

Android サービスについて説明する。

回答の構造を説明する

デフォルトでは、エージェントは会話形式の段落ベースの形式で回答を提供します。これは説明に役立つことが多いですが、回答の構造を指定することで、より効果的ですぐに使用できる結果を得ることができます。出力形式を指定すると、モデルは情報を明確で予測可能な方法で整理するため、自分で再フォーマットする時間を節約できます。

エージェントによって生成されたコードをアプリに挿入し、すぐに使用できるように特定の形式でコードが必要な場合は、コードの生成と形式設定についてエージェントに明確な指示を与えます。

回答の構成:

ユーザー プロフィールの Room エンティティを作成します。id、userName、email、memberSince の各フィールドを含める必要があります。id フィールドは自動生成されます。memberSince フィールドはタイムスタンプを表す必要があります。

ユーザー プロフィール用の Room エンティティを作成します。

自由回答形式の質問をする場合は、x 個の選択肢を提示するよう依頼します。

回答を制限する:

アプリのパフォーマンスの最適化に使用できるツール上位 3 つのリストを教えて。
アプリのパフォーマンスの最適化に使用できるツール

複雑なリクエストは小さなタスクに分割する

エージェントのアプローチが期待どおりでない場合は、一度にすべてをリクエストするのではなく、一連の小さなプロンプトを順番にエージェントに指示すると効果的です。この方法では、より詳細な制御が可能になり、各ステップを検証してから次のステップに進むことができます。

連続したプロンプトの適用:

プロンプト 1: データモデル
まず、User という名前の Kotlin データクラスを作成します。id(Int)、name(String)、email(String)の 3 つのプロパティが必要です。

プロンプト 2: ネットワーク層
次に、ApiService という Retrofit API インターフェースを作成します。List<User> を返す getUsers() という 1 つの suspend fun が必要です。

プロンプト 3: 状態管理
次に、ApiService を依存関係として受け取る UsersViewModel を作成します。UsersViewModel は、Loading, Success(users: List) 状態と Error(message: String) 状態を表すことができる、シールされた UiState クラスの StateFlow を公開する必要があります。ViewModel に、ユーザーを取得して状態を更新する関数を作成します。新機能の単体テストを作成します。

プロンプト 4: UI レイヤ
最後に、UiState をパラメータとして受け取る UserListScreen という名前の Jetpack Compose 関数を作成します。when ステートメントを使用して、読み込み状態には CircularProgressIndicator、成功状態にはユーザー名の LazyColumn、エラー状態にはエラー メッセージを含む Text 要素を表示します。新しい機能を検証するテストを追加します。

JSON API からユーザーのリストを取得してリストに表示する Jetpack Compose 画面を作成します。Retrofit とコルーチンを使用する ViewModel、データロジックを処理するリポジトリ、User データクラス、読み込み状態とエラー状態の表示が必要です。

コンテキストを管理する

エージェントを操作するうえで重要なのは、適切なコンテキストを提供することです。関連するコード スニペット、ファイルの内容、プロジェクト構造の情報を提供して、最も有用な回答を得ます。適切なバランスを見つけるために、繰り返し調整が必要になる場合があります。情報が多すぎるとエージェントが迷う可能性があり、少なすぎるとコンテキストが不足してエージェントが支援できなくなります。利用可能な機能を使用して、エージェントが必要なコンテキストにアクセスできるようにします。

  • 画像を添付して、想定している UI や、理解しようとしているアプリ アーキテクチャを視覚的に示します。
  • ファイルを添付して、コードベースの関連部分をハイライト表示します。
  • .aiexclude ファイルを使用して、エージェントがコードベースの特定の部分を無視するようにします。
  • AGENTS.md ファイルを使用して、プロジェクト固有の手順を指定し、チーム全体で共有します。AGENTS.md ファイルを使用する場合は、Markdown のヘッダーと書式設定を使用して、指示を明確にします。
  • エージェント モードを使用する場合は、MCP サーバーを構成して、外部環境でエージェントの知識と機能を拡張します。

説明を求める

エージェントの回答が理解できない場合は、説明を求めてください。これは、提案されたソリューションがユースケースに適していることを学習して検証するのに最適な方法です。回答が期待どおりでない場合は、実際にはエージェントが間違っている可能性があります。説明を求めることで、エージェントが自身を修正する機会が得られます。

指示を反復処理する

同僚と協力する場合と同様に、エージェントと協力する場合も、タスクと期待される結果を明確にするために、何度かやり取りが必要になることがあります。エージェントの最初の回答が不十分な場合は、フィードバックと改善方法の提案を返します。提案に基づいてレスポンスが改善された場合は、プロンプト ライブラリのエントリを更新するか、AGENTS.md ファイルを更新して、その提案を元のプロンプトに組み込みます。