Google Java用エージェント開発キット(ADK)1.0、新アプリ・プラグインアーキテクチャと外部ツールサポートを導入
本文の状態
日本語全文を表示中
詳細モードで約5分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
InfoQ
GoogleはJava用エージェント開発キット(ADK)1.0をリリースし、外部ツール連携、新アーキテクチャ、人間関与型ワークフローを追加した。
Continue in AI NEW LAB
このニュースを、実務の判断につなげる
AI NEW LABで、試したことや先に確認したい条件を共有できます。まずはログインなしで読めます。
AI NEW LABで論点を見るSource Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
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
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み