powered by TechFeed
表示モード
Google

KotlinだけでAIエージェントが動く時代へ — Google ADK for Kotlin 1.0がPythonと同等機能を達成、Android端末上での推論にも対応

9月20日、Sergio De Simoneが「Google Agent Development Kit for Kotlin Reaches Feature Parity with Python, Supports On-Device AI」と題した記事を公開した。Google Agent Development Kit(ADK) for Kotlin 1.0が正式リリースされ、PythonやJava向けADKとの機能同等性を達成した。注目すべきは、KSPによるコンパイル時スキーマ生成によって型安全なツール定義を実現していること、そしてAndroid上でのオンデバイス推論とクラウドのハイブリッドAIをKotlin APIだけで扱えるようになったことだ。エンタープライズグレードのAIエージェントをKotlinエコシステムの中で完結させる現実的な選択肢が整ったと言える。

9月20日、Sergio De Simoneが「Google Agent Development Kit for Kotlin Reaches Feature Parity with Python, Supports On-Device AI」と題した記事を公開した。Google Agent Development Kit(ADK) for Kotlin 1.0が正式リリースされ、PythonやJava向けADKとの機能同等性を達成した。注目すべきは、KSPによるコンパイル時スキーマ生成によって型安全なツール定義を実現していること、そしてAndroid上でのオンデバイス推論とクラウドのハイブリッドAIをKotlin APIだけで扱えるようになったことだ。エンタープライズグレードのAIエージェントをKotlinエコシステムの中で完結させる現実的な選択肢が整ったと言える。


Python不要——KotlinだけでAIエージェントを動かす

これまでエージェント基盤のロジックにはPythonが必要だったが、ADK for Kotlin 1.0ではオーケストレーション、ツールサポート、永続化、メモリ管理、ヒューマン・イン・ザ・ループワークフローをすべてKotlin APIだけで記述できる。

Kotlin Multiplatform上に構築されており、サーバーサイドからモバイル端末まで動作する。Kotlin MultiplatformはJVM上のコードをそのままサーバーサイドKotlinやAndroidで共用できる仕組みであり、既存のJVMエコシステム(SpringやKtorによるサーバーサイド実装、Androidネイティブアプリなど)との連続性を保ちながらAIエージェントロジックを導入できる点が実用上の強みとなる。Javaとの相互運用性も維持されており、JVM/サーバーアプリケーションでもそのまま利用可能だ。Googleによれば、アーキテクチャは「特定のモデルバックエンド、セッションプロバイダー、メモリシステムに依存しない」設計になっているという。

ライセンスはApache 2.0で公開されており、エンタープライズ利用においても商用制限なく採用を検討できる。


コンパイル時スキーマ生成とヒューマン・イン・ザ・ループ

ADK for Kotlin 1.0の設計上の核心は、ツール定義をコンパイル時に解決するアプローチにある。

ツールは@Tool@Paramといったアノテーションで宣言し、KSP(Kotlin Symbol Processing)がコンパイル時にKotlin関数スキーマを生成する。ランタイムリフレクションを使わないため、型安全性とパフォーマンスが向上する。

PiNCAMP(欧州最大級のキャンプ場検索プラットフォーム)のAndroidエンジニアであるArjun Kumarは、LinkedInでこの設計について次のようにコメントしている。

ツールスキーマをKSPでコンパイル時に処理することで、モバイルターゲットでの起動を高速に保てる。

もう一つの重要な機能がヒューマン・イン・ザ・ループだ。銀行振込のような高インパクトな操作を行うツールに対して、実行前に明示的なユーザー確認を要求できる。ツール宣言でrequireConfirmation = trueを設定するだけで有効になる。

@Tool(
    name = "transferFunds",
    requireConfirmation = true
)
fun transferFunds(...)

このフラグを設定すると、エージェントはツールを実行する前にユーザーの明示的な承認を待機する。承認が得られない場合はトランザクションを中断するため、金融・医療など高い信頼性が求められる領域での運用に適している。承認フロー自体はRoomでのチャットセッション保存、AppSearchでのインデックスメモリ、Androidストレージへのファイル保存といったAndroidネイティブの永続化サービスと組み合わせて利用できる。

AI Dev Weekly(Kotlin・Android周辺の技術動向を扱う英語ニュースレター)のメンテナーであるJoske Vermeulenは、requireConfirmationの使い方についてこう推奨している。

エージェントの階層構造を組む前に、まず再開可能な単一エージェントと明示的なツール確認から始めること。本番対応に必要なのは、エージェント数よりもライフサイクルの回復性と決定論的なツール境界だ。


Android上でのオンデバイスAIとスキル管理

Android固有の機能として、オンデバイス推論とクラウドのハイブリッドAIをサポートする。オンデバイス推論ではLiteRT-LMML Kit(現在はベータ)に対応し、クラウド・ハイブリッドAIにはFirebase AI Logicと統合する。これにより、適切な場面ではエージェントをローカルで実行し、より高い能力が必要な場合はクラウドモデルにシームレスに切り替えられる。

また、スキルという概念も導入されている。SKILL.mdファイルに手続き的知識を記述しておき、Googleが「プログレッシブ・ディスクロージャー」と呼ぶ仕組みで必要なときにのみ動的に読み込む。エージェントがプレイブック全体をモデルのコンテキストに毎回含める必要がなくなる。

その他の主な機能は以下の通りだ。

  • 階層的マルチエージェントシステム:親エージェントが子エージェントにタスクを委譲できる
  • コンテキスト圧縮とマルチターン会話:自動コンテキスト管理と履歴要約によりトークン使用量を削減
  • セッション管理:エージェントの状態を一時停止・シリアライズ・復元できる
  • Javaとの相互運用性:JVM/サーバーアプリケーションでもそのまま利用可能

詳細はGoogle Agent Development Kit for Kotlin Reaches Feature Parity with Python, Supports On-Device AIを参照していただきたい。