JavaでAIエージェントを制御する方法とは? Google「ADK for Java 1.0.0」の全容Python、Java、TypeScript、Goのマルチ言語エコシステムに成長

Googleは、オープンソースのAIエージェント開発/デプロイフレームワーク「Agent Development Kit」(ADK)のJava版の正式バージョン「ADK for Java 1.0.0」を公開した。

» 2026年05月14日 13時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Googleは2026年3月30日(米国時間、以下同)、オープンソースのAIエージェント開発/デプロイ(展開)フレームワーク「Agent Development Kit」(ADK)のJava版の正式バージョン「ADK for Java 1.0.0」を公開した。強力な外部ツール連携、集中管理型のプラグインアーキテクチャ、ヒューマンインザループ(HITL:Human in the loop)ワークフロー、Agent2Agent(A2A)プロトコル対応など、多数の機能強化が施されている。

 ADKは柔軟なモジュール型のフレームワークであり、Googleの大規模言語モデル(LLM)「Gemini」向けに最適化されているものの、特定のモデルに依存せず、他のフレームワークとの互換性を重視して構築されているという。

 エージェント開発をソフトウェア開発に近い感覚で進められるように設計されており、単純なタスクから複雑なワークフローまで、エージェントアーキテクチャの構築、デプロイ、オーケストレーションをより容易にすることを目的としている。

 ADKはJavaの他、Python、TypeScriptに対応しており、「ADK Go 1.0」も3月31日に公開された。

ADK for Java 1.0.0の主な新機能と強化機能

エージェントの能力を広げる外部ツール連携の強化

 LLMの内部知識だけでなく、外部の情報を活用してエージェントの回答精度を向上させるグラウンディング機能が大幅に強化されている。従来はエージェントにGoogle検索を利用させることができたが、新たにGoogleマップの情報でエージェントの回答を補強できる「GoogleMapsTool」(Gemini 2.5対応)が導入された。

 プロンプトで指定されたURLをGeminiが直接取得できる「UrlContextTool」も利用可能になった。

 コードをDockerコンテナ上でローカルに実行する「ContainerCodeExecutor」や、Googleのフルマネージド統合AI開発プラットフォーム「Vertex AI」上のクラウド環境で実行する「VertexAiCodeExecutor」も導入されている。

Appとプラグインによる集中管理

 エージェントを制御するために、各エージェントとサブエージェントのレベルで適用するコールバックに加え、Appクラスとプラグインが利用可能になった。エージェントアプリケーションの新しい最上位コンテナであるAppクラスは、ルートエージェントの指定、グローバル設定、アプリケーション全体に適用するプラグインの管理を担う。

 プラグインは、既存のコールバックを超える拡張ポイントとして、AppやRunner内の全てのエージェントにわたって、エージェント、ツール、LLMの挙動をグローバルに取得、変更するために使用できる。

 標準プラグインとして、ログの記録、LLMのコンテキストウィンドウのサイズ管理、全エージェントに対して、アイデンティティーや安全ルールなどの指示(インストラクション)をアプリケーション全体で一貫して動的に適用するプラグインが用意されている。

 「BasePlugin」抽象クラスを拡張し、独自のプラグインを実装することもできる。

イベント圧縮によるコンテキストエンジニアリング

 長時間セッションでのトークン超過を防ぐため、Appクラスの「eventsCompactionConfig()」でエージェントのイベントストリーム(履歴)のサイズを管理できる。圧縮間隔、トークン数のしきい値、破棄するイベントの要約方法などを細かく設定できる。専用インタフェースを実装し、イベントの要約および圧縮方法を完全にカスタマイズすることも可能だ。

HITLワークフロー

 危険な操作の実行前や、法令、社内規定に基づく確認が必要な場面で、エージェントが人間の承認を求める仕組み(ToolConfirmation)が実装された。承認待ちの間は実行フローが一時停止し、ユーザーが承認を行うと正常に再開される。

ADKのUIにおけるユーザーとエージェントのチャット画面 エージェントが次のアクションに進むためにユーザーの承認を求めている(提供:Google) ADKのUI(ユーザーインタフェース)におけるユーザーとエージェントのチャット画面 エージェントが次のアクションに進むためにユーザーの承認を求めている(提供:Google)

セッション、メモリ、アーティファクトサービス

 会話の状態、履歴、ファイルを管理するために、セッション、メモリ、アーティファクトサービスが明確に定義されている。ローカル開発向けの軽量なインメモリから、クラウド上のデータベースやストレージを利用したスケーラブルな永続化まで、用途に応じて保存先(バックエンド)を選択・設定できる。

  • セッションサービス:個々の会話とその状態のライフサイクルを管理する
  • メモリサービス:エージェントに、複数セッションにわたる長期的な「会話の記憶」を持たせる
  • アーティファクトサービス:エージェントがセッション中に共有する大容量データ(画像、PDFなど)を処理する方法を規定する

Agent2Agent(A2A)プロトコルによるエージェント間連携

 ADK for JavaはAgent2Agent(A2A)プロトコルをネイティブサポートした。これにより、あらゆる言語やフレームワークで構築されたリモートエージェントとシームレスに通信できるエージェントを構築できるようになった。

 リモートエージェントは、「RemoteA2AAgent」としてラップして、ローカルエージェントと同様に扱える。ADKエージェントを「A2A AgentExecutor」でラップして、A2Aエコシステムに公開することもできる。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

その「AIコーディング」は本当に必要か?
Microsoft & Windows最前線2026
4AI by @IT - AIを作り、動かし、守り、生かす
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。