google / google/adk-java

When multiple agents communicate via the A2A protocol, the invocationContext.session.state is not transformed and transmitted to the message, and SSE streaming is not supported.

オープン
#818 コメント 4 件 リアクション 0 件 担当者 1 名 @hemasekhar-p が担当を希望しています GitHub で見る
needs review
主要言語
Java
スター
1.7k
フォーク
420
平均マージ
4日 12時間
マージ済み PR(30日)
31

説明

** Please make sure you read the contribution guide and file the issues in the right place. **
[Contribution guide.](https://google.github.io/adk-docs/contributing-guide/)

### Is your feature request related to a specific problem?
1.Based on the following source code reading, in the logic of converting `invocationContext` to `Message` using `EventConverter.convertEventsToA2AMessage`:

`Optional a2aMessageOpt = com.google.adk.a2a.EventConverter.convertEventsToA2AMessage(invocationContext);`

Image

`metadata` is not assigned. Therefore, will the following code always return a null case:

`Map metadata = originalMessage.getMetadata() == null ? Map.of() : originalMessage.getMetadata();`

Is it possible to convert `invocationContext.session.state` to the `metadata` of the `Message`, as additional information in the communication protocol between the client agent and the server agent? like this:

Image
2.Multiple agents communicate via the A2A protocol, using a synchronous blocking approach.

Image

Due to the time-consuming nature of this communication, which negatively impacts user experience, it is recommended to replace the synchronous approach with SSE streaming output. Simultaneously, the client should use a pre-implemented streaming HTTP request to establish connections.

Image

### Describe the Solution You'd Like
Some of the solution code logic is above.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。