A2A Java SDK 1.0.0.Alpha2 リリース
A2A Java SDK 1.0.0.Alpha2 のリリースをお知らせします。このリリースでは、 A2A 1.0 仕様 への準拠を継続し、重要な新機能と改善が導入されています。
A2A とは
Agent2Agent (A2A) プロトコルは、基盤となるフレームワーク、言語、ベンダーに関係なく、AI エージェント同士が通信し、連携できるようにするためのオープンスタンダードです。A2A Java SDK を使用すると、Quarkus ベースのリファレンス実装を使用して、A2A 準拠のエージェントを Java で簡単に構築できます。
1.0.0.Alpha2 における主なハイライト
このリリースには、いくつかの重要な機能強化と破壊的変更が含まれています。
新機能
テレメトリーのサポート
A2A Java SDK に、OpenTelemetry を使用したテレメトリーのサポートが組み込まれました。これにより、エージェントの操作を監視およびトレースできるようになり、問題の診断やパフォーマンス特性の把握が容易になります。
テレメトリー機能を使用するには、プロジェクトに OpenTelemetry エクストラを追加します。
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-extras-opentelemetry-client</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-extras-opentelemetry-server</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
プロトコルのアップデート
破壊的変更
|
このリリースには、最新の A2A 仕様に準拠するための破壊的変更が含まれています。 |
-
AgentEmitter API:
AgentExecutorメソッドは、従来のEventQueueとTaskUpdaterの組み合わせの代わりにAgentEmitterを使用するようになり、より合理化され直感的な API が提供されます。この機能強化により、単純なエージェント間のやり取りのためのメッセージをAgentEmitter経由で直接送信できるようになり、EventQueue を直接操作する必要がなくなりました。 -
プロトコルの整合性: gRPC プロトコル定義の更新を含む、最新の仕様改訂に合わせるために A2A プロトコルの実装を更新しました。
その他の改善点
-
Null 安全性: spec モジュールを JSpecify アノテーションを使用するように移行し、より優れた Null 安全性を保証しました。
-
Jakarta CDI 互換性: Jakarta CDI の互換性を向上させるために、引数なしのコンストラクターを追加しました。
-
HTTP+JSON/REST トランスポート: 統合を改善するために、
quarkus-rest-jacksonをquarkus-restに置き換えました。 -
イベント処理: より堅牢なイベントキュー処理を実現するために、 MainEventBus アーキテクチャーを実装しました。
-
MicroProfile Config: microprofile-config 統合に欠落していた
META-INF/beans.xmlを追加しました。
移行ガイド
1.0.0.Alpha1 からアップグレードする場合は、以下の変更を行う必要があります。
AgentExecutor 実装の更新
execute および cancel メソッドは、 EventQueue の代わりに AgentEmitter パラメーターを受け取るようになりました。
// Before (1.0.0.Alpha1)
@Override
public void execute(RequestContext context, EventQueue eventQueue) throws JSONRPCError {
final TaskUpdater updater = new TaskUpdater(context, eventQueue);
updater.submit();
updater.startWork();
// ...
}
// After (1.0.0.Alpha2)
@Override
public void execute(RequestContext context, AgentEmitter agentEmitter) throws JSONRPCError {
agentEmitter.submit();
agentEmitter.startWork();
// ...
}
AgentEmitter インターフェースは、よりクリーンな API で同等の機能を提供します。
はじめに
A2A Java SDK 1.0.0.Alpha2 を使用するには、プロジェクトに適切な依存関係を追加してください。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-bom</artifactId>
<version>1.0.0.Alpha1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- For JSON-RPC transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-jsonrpc</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<!-- For gRPC transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-grpc</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
<!-- For HTTP+JSON/REST transport -->
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-reference-rest</artifactId>
<version>1.0.0.Alpha2</version>
</dependency>
まとめ
A2A Java SDK 1.0.0.Alpha2 は、完全な A2A 1.0 仕様準拠への道のりにおける重要な前進です。テレメトリーサポートとプッシュ通知の追加により、本番環境に対応したエージェントの構築が容易になり、プロトコルのアップデートによって最新の仕様との互換性が確保されます。
このリリースをぜひお試しいただき、 GitHub イシュートラッカー を通じてフィードバックをお寄せください。皆様からの入力が A2A Java SDK の将来を形作る助けとなります。