Google Java用エージェント開発キット(ADK)1.0、新アプリ・プラグインアーキテクチャと外部ツールサポートを導入
GoogleはJava向けエージェント開発キット「ADK」のバージョン1.0をリリースし、外部ツール連携やプラグインアーキテクチャ、高度なコンテキストエンジニアリング、ヒューマン・イン・ザ・ループワークフローなどの新機能を追加した。
キーポイント
Java用ADKの正式版リリース
エージェント開発キットがバージョン1.0に到達し、安定した運用レベルに達してエンタープライズでの採用基盤が整った。
アーキテクチャの刷新と拡張性向上
新しいアプリおよびプラグイン構造を導入し、開発者のカスタマイズ性とシステムのスケーラビリティを大幅に強化した。
実務対応機能の統合
外部ツール連携、コンテキストエンジニアリングの高度化、ヒューマン・イン・ザ・ループ(HITL)ワークフローをサポートし、実運用での制御性と信頼性を確保した。
影響分析・編集コメントを表示
影響分析
本リリースは、エンタープライズ環境で長年主流であるJava開発者が、AIエージェント構築を正式にサポートされたフレームワークで実施できる道を開く。プラグインアーキテクチャとHITL機能の採用は、実務での拡張性と人的検証プロセスを両立させ、AIシステムの実装リスクを軽減する。これにより、Java基盤を持つ大規模組織のAI移行ペースが加速すると予想される。
編集コメント
公式安定版のリリースは、Java開発者にとってAIエージェント実装の障壁を大きく下げる。ただし、実際のプロジェクト適用ではコンテキストエンジニアリングとHITL設計のノウハウが鍵となるため、ドキュメントとコミュニティ事例の充実が今後の注目点だ。
GoogleのAgent Development Kit for Javaがバージョン1.0に到達し、新しい外部ツールとの統合、新たなアプリおよびプラグインアーキテクチャ、高度なコンテキストエンジニアリング(context engineering)、ヒューマン・イン・ザ・ループ(human-in-the-loop)ワークフローなどが導入されました。
新たにサポートされたツールには、Google Mapsデータへのアクセスを提供するGoogleMapsTool、Webコンテンツを直接取得して要約できるUrlContextTool、Dockerコンテナを使用してローカルで、またはVertex AI(Vertex AI)上でクラウド環境にて堅牢なコード実行を可能にするContainerCodeExecutorおよびVertexAICodeExecutor、そしてPlaywright(Playwright)の統合が必要ではあるもののWebブラウザやコンピュータを操作できるComputerUseToolが含まれます。
エージェントツールとのインタラクションをより強力なものにするため、ADK for Java 1.0では2つの新しいAPIが導入されました。1つはAppクラスで、ルートエージェントをホストし、グローバル設定を保持し、プラグインの統合を処理するエージェントアプリケーション用のトップレベルコンテナです。もう1つはPluginsで、新しい拡張機能を定義するための基本クラスです。一部プラグインは標準で利用可能であり、エージェントの実行やツール呼び出しの構造化ログ出力を行うLoggingPlugin、古い会話のやり取りをフィルタリングしてコンテキストウィンドウ(context window)を管理するContextFilterPlugin、すべてのエージェントに一貫した一連の指示を動的に適用するGlobalInstructionPluginが含まれます。
新リリースのもう1つの有用な機能は、イベントコンパクション(event compaction)のサポートです。これは「最新のイベントのみをスライディングウィンドウとして保持し、かつ/または古いイベントを要約する」ことでエージェントのコンテキストサイズを管理するのに役立ちます。これは、トークン制限(token limits)を超えてコンテキストウィンドウが拡大するのを防ぎつつ、長時間実行されるセッションにおけるレイテンシとコストを削減することを目的とした基本的なコンテキストエンジニアリングのプラクティスです。
イベントコンパクションAPIにより、開発者はコンパクション間隔、トークン閾値、オーバーラップサイズ、イベント保持制限、および使用するサマライザーを制御できます。
同様に重要なのは、フレームワークに組み込まれたヒューマン・イン・ザ・ループワークフローのサポートです。実際、新ADKではエージェントが重要なアクションを実行する前に処理を一時停止し、承認を要求してから実行を再開することができます。
登録されたツールはToolContextにアクセスしてrequestConfirmation()を呼び出すことができます。これにより実行が自動的にインターセプトされ、入力を受け取るまでLLM(Large Language Model)のフローが一時停止します。[...] ADKは中間イベントを自動的にクリーンアップし、確認済みの関数呼び出しを次のLLMリクエストコンテキストに明示的に注入します。これにより、モデルはループすることなくそのアクションが承認されたことを理解することが保証されます。
ADK for JavaはAgent2Agent(A2A)プロトコルもネイティブにサポートしており、異なる言語やフレームワークを跨いでいても、さまざまなエージェントが通信して協力することができます。そのために、ADKは公式のA2A Java SDK Clientを統合しています。
自身のADKエージェントをA2Aプロトコル経由で公開するには、A2A AgentExecutorを作成します。これはADKエージェントをラップし、JSON-RPC RESTエンドポイント経由で公開することで、作成したADKアプリケーションを瞬時に広大なA2Aエコシステムにアクセス可能にします。
Googleは、JavaおよびPython向けにAgent Development Kit(エージェント開発キット)を提供している。数ヶ月前にADK for Javaが発表された際、主要コントリビューターであるGuillaume Laforge氏はReddit上で、「新機能や新実験は通常Pythonで始まり、段階的にJavaにポートされる」と説明した。より最近では、RedditorのQubit99氏は、GoogleがJavaライブラリの維持管理において果たしてきた実績への懸念を挙げて、Python版よりもJava版のADKの使用を避けるよう開発者に警告した。一方、José Carlos Sancho氏はX.com上で、Javaの型安全性(type safety)はオーケストレーションバグ(orchestration bugs)を早期に発見する上で大きな利点であり、規模の拡大に伴う安定性においてPython版よりもJavaエージェントの方が優れている可能性があることに言及した。
ADK for JavaはGitHubからダウンロード可能である。
著者について
Sergio De Simoneはソフトウェアエンジニアである。Sergio氏は過去25年以上にわたり、SiemensやHP、小さなスタートアップなど多様な企業やプロジェクトでソフトウェアエンジニアとして活動してきた。過去10年以上はモバイルプラットフォームおよび関連技術の開発に注力しており、現在BigML, Inc.でiOSおよびmacOS開発をリードしている。
詳細表示 / 非表示
原文を表示
Google's Agent Development Kit for Java reached 1.0, introducing integrations with new external tools, a new app and plugin architecture, advanced context engineering, human-in-the-loop workflows, and more.
Newly supported tools include GoogleMapsTool, which provides access to Google Maps data; UrlContextTool, which can fetch and summarize web content directly; ContainerCodeExecutor and VertexAICodeExecutor, enabling robust code execution locally using Docker containers or in the Cloud with Vertex AI; and ComputerUseTool, which can drive a web browser or a computer, although this requires a Playwright integration.
To make interactions with agent tools more powerful, the ADK for Java 1.0 introduces two new APIs: the App class, a top-level container for agentic applications that hosts the root agent, holds global configurations, and handles plugin integration; and Plugins, a base class for defining new extensions. Some plugins are available out of the box, including LoggingPlugin for structured logging of agent executions and tool calls, ContextFilterPlugin for managing the context window by filtering out older conversation turns, and GlobalInstructionPlugin for dynamically applying a consistent set of instructions to all agents.
Another useful feature in the new release is support for event compaction, which helps manage an agent's context size by "keeping only a sliding window of the last events and/or summarizing older events". This is a fundamental context engineering practice aimed at preventing context windows from growing beyond token limits while also reducing latency and costs in long-running sessions.
The event compaction API allows developers to control the compaction interval, token threshold, overlap size, event retention limits, and the summarizer to use.
Equally important is the framework's built-in support for human-in-the-loop workflows. In fact, with the new ADK, agents can pause before taking critical actions, request approval, and then resume execution.
A registered tool can access its ToolContext and call requestConfirmation(). This automatically intercepts the run, pausing the LLM flow until input is received. [...] ADK automatically cleans up intermediate events and explicitly injects the confirmed function call into the subsequent LLM request context. This ensures the model understands the action was approved without looping.
The ADK for Java also natively supports the Agent2Agent (A2A) protocol, enabling different agents to communicate and collaborate, even across different languages or frameworks. To this end, the ADK integrates the official A2A Java SDK Client.
To expose your own ADK agents via the A2A Protocol, you create an A2A AgentExecutor. It wraps your ADK agents and exposes them via a JSON-RPC REST endpoint, instantly making your ADK creations accessible to the wider A2A ecosystem.
Google provides the Agent Development Kit both for Java and Python. When the ADK for Java was announced a few months ago, its main contributor Guillaume Laforge clarified on Reddit that "new features, new experiments usually start in Python, and are progressively ported to Java". More recently, redditor Qubit99 discouraged developers from using the Java ADK over the Pyhon version, citing concerns about Google's track record in maintaining their Java libraries. On the other hand José Carlos Sancho noted on X.com that Java's type safety is a significant advantage for catching orchestration bugs early, potentially making Java agents more stable at scale than their Python counterparts.
The ADK for Java can be downloaded from GitHub.
About the Author
Sergio De Simone
Sergio De Simone is a software engineer. Sergio has been working as a software engineer for over twenty five years across a range of different projects and companies, including such different work environments as Siemens, HP, and small startups. For the last 10+ years, his focus has been on development for mobile platforms and related technologies. He is currently working for BigML, Inc., where he leads iOS and macOS development.
Show moreShow less
関連記事
Datasette 1.0a30 のリリース:カスタマイズ可能な「ジャンプ」メニューが追加
Simon Willison が開発するデータ可視化ツール「Datasette」のバージョン 1.0a30 が公開され、新しいカスタマイズ可能な「ジャンプ」メニュー機能が導入された。
「プラグインとスキル」
OpenAIはCodexの処理能力を高めるため「プラグイン」と「スキル」を提供する。これによりCodexは外部ツールや情報源に接続し、特定の業務を処理できる。
SpringチームがSpring Framework 7とSpring Boot 4について語る
InfoQがSpringチームの主要メンバーにインタビューし、Spring Framework 7とSpring Boot 4のアーキテクチャ・機能面での進展について聞いた。フレームワークにリトライや並行性スロットリングを組み込み、コアレジリエンスへの戦略的転換を図っている。