Skip to content

[Feat]: Non blocking with intermediary responses (via push notification) #239

@fernando-torres-blip-ai

Description

Is your feature request related to a problem? Please describe.

I want to avoid long-lived persistent connections (SSE) but also be able to receive multiple Agent Responses.

Imagine I sended a request to an Agent to perform a heavy task with multiple steps. I want to receive intermediary messages where the agent can notify steps beeing finished (between some tool calls for example).

Today, the push-notification only works for "final" states like task completed or input required. And streaming responses require persistent connections via SSE.

Describe the solution you'd like

Use the already defined blocking attribute of MessageSendConfiguration to indicate whether the request processing should last for the entire event stream or stop immediately at the task submitted status.

Then, push notifications should also be able to send artifacts generated during processing.

Describe alternatives you've considered

No response

Additional context

Some points to help us decide the best solution.

The protocol specification metion "partial responses" as a good use case for streaming spec reference

When to Use Streaming:

  • Interactive, conversational exchanges where immediate feedback or partial responses are beneficial.

Also in protocol specification is mentioned that push notification payloads are not strictly task objects, so I belive that TaskStatusUpdateEvent and TaskArtifactUpdateEvent could also be sent in streaming request push notification ? spec reference

Notification Payload: The A2A protocol itself does not strictly define the HTTP body payload of the push notification sent by the server to the client's webhook. However, the notification SHOULD contain sufficient information for the client to identify the Task ID and understand the general nature of the update (e.g., the new TaskState). Servers might send a minimal payload (just Task ID and new state) or a more comprehensive one (e.g., a summary or even the full Task object).

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions