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.
- Dominant language
- Java
- Stars
- 1.7k
- Forks
- 420
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 31
Description
** 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);`
`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:
2.Multiple agents communicate via the A2A protocol, using a synchronous blocking approach.
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.
### Describe the Solution You'd Like
Some of the solution code logic is above.
Contributor guide
Assessment
This issue has not been assessed yet.