Googleが9月9日、AIエージェント開発フレームワーク「Agent Development Kit(ADK)」のKotlin版をバージョン1.0として正式公開しました。先行するPython版・Java版と同等の機能に追いついたうえで、Androidアプリに組み込むための拡張が最初から揃っています。サーバー側のKotlinでも、端末の中だけで完結するモバイルAIでも、同じ書き方でエージェントを組めるのが今回の骨子です。

正式版で何が揃ったのか

ADK for Kotlinは0.1.0として公開されてから数か月で、1.0でADK 1.0 Coreと同じ機能水準に到達しました。親エージェントが子エージェントに仕事を振る階層型の多エージェント構成、会話履歴を要約してトークン上限に収めるコンテキスト圧縮、危険な操作の前に実行を止めて利用者の承認を待つヒューマン・イン・ザ・ループ、中断したやり取りを保存して後から再開するセッション再開といった、実運用で必要になる仕組みが標準で入っています。既存のJavaアプリケーションからKotlin製エージェントをそのまま呼べる相互運用性も用意されました。

土台になっているのはKotlin Multiplatform(KMP)のコアです。このコアは特定のモデル提供元やセッション保存先、記憶の実装に縛られない設計になっており、クラウドのGeminiを使うのか、端末内のモデルを使うのかを後から差し替えられます。企業向けにはVertex AI側のセッション管理・RAG記憶・メモリバンクを使うサービス実装も含まれます。

注釈を付けるだけで道具が生える

開発者が最初に触るのは、エージェントに持たせる道具(ツール)の定義でしょう。ADK for Kotlinでは、普通のKotlin関数に @Tool を付け、引数に @Param で説明を添えるだけで済みます。

@Tool
suspend fun getServiceMetrics(
    @Param("対象のサービスまたはDBクラスタ") serviceName: String,
    @Param("集計する時間幅(分)") windowMinutes: Int? = 15,
): ServiceMetrics

この定義からKSP(Kotlin Symbol Processing)がビルド時に関数呼び出しの定義を生成します。実行時のリフレクションを一切使わないため、スキーマの型安全性がコンパイル時に担保され、suspend 関数もそのまま道具として扱えます。リフレクションを避ける設計は、起動が速く挙動が読みやすいという点でAndroidとの相性が良い部分です。

手順書をコードの外に出す「スキル」

もう1つの軸が「スキル」です。エージェントに守らせたい業務手順をコードに直書きするのではなく、SKILL.md というテキストに書いて外に置き、必要になったときだけ読み込ませます。

たとえばデータベース障害の切り分けなら、テレメトリを見る、直近のデプロイと突き合わせる、安全ルールを確認してから動く、結果を通知する、という手順を文章で書いておきます。補助資料も一緒に束ねられますが、モデルが必要と判断したときだけ取りに行く作りなので、常に全文をプロンプトへ積む必要がありません。この読み込み方をGoogleは段階的開示(progressive disclosure)と呼んでいます。運用手順が変わったときにテキストだけ直せばよく、再ビルドが要らないのは現場で効いてくるはずです。

Androidの標準部品をそのまま使う

Android向けの拡張は、新しい独自の仕組みを覚えさせるのではなく、既存のAndroidアーキテクチャ部品に寄せてある点が特徴です。会話セッションの永続化にはRoom、端末内の全文検索付きメモリにはAppSearch、生成したファイルの保管にはアプリ専用ストレージを使う実装が用意されています。プロセスが落ちても、再起動後に会話の続きから戻れるということです。

モデル側も選択肢があります。クラウド推論はFirebase AI Logic経由でGemini 3.8 Flashを呼び、端末内で完結させたい場合はLiteRT-LMやML Kit(ベータ)に切り替えられます。通信環境や機密性の要件に応じて、同じエージェント定義のまま実行先だけを変えられる構成です。銀行の送金のような取り消しの効かない操作では、道具の定義側で承認必須を指定しておけば、エージェントが実行前に止まってUIに確認を出し、利用者がタップしてから続きが走ります。

導入は依存関係の追加から

使い始めるにはGradleに依存を足すだけです。

dependencies {
    implementation("com.google.adk:google-adk-kotlin-core:1.0.0")
    ksp("com.google.adk:google-adk-kotlin-processor:1.0.0")

    // Android向けの任意拡張
    implementation("com.google.adk:google-adk-kotlin-firebase-android:1.0.0")
    implementation("com.google.adk:google-adk-kotlin-litertlm:1.0.0")
    implementation("com.google.adk:google-adk-kotlin-mlkit-android:1.0.0-beta")
}

コアと注釈処理の2行が必須で、Android向けの拡張は必要なものだけ足す形です。ソースコードとサンプルアプリはGitHubのgoogle/adk-kotlinリポジトリで公開されており、ドキュメントはadk.devにまとまっています。

まとめ

ADK for Kotlin 1.0は、Python版・Java版と同じ多エージェント機能をKotlinに揃えたうえで、Room・AppSearch・LiteRT-LMといったAndroidの標準的な部品と噛み合う形で拡張を用意した点が新しいところです。注釈とKSPによる道具定義、SKILL.md による手順の外出しと段階的開示は、エージェントの中身をコードとテキストに分けて保守しやすくする発想と言えます。スマートフォンの中で完結するAIエージェントを現実的な選択肢として扱い始めた、という意味で見ておきたい更新です。