a2aproject / a2aproject/A2A

[Bug]: Spec contradiction for async behavior

Offen
#2,135 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Shell
Sterne
25.7k
Forks
2.6k
Ø Merge
3 T. 6 Std.
Gemergte PRs (30 T.)
16

Beschreibung

### What happened?

There is a normative contradiction in the specification regarding whether a remote agent can return an in-progress Task when a client requests blocking execution (return_immediately: false or unset).

Section 3.2.2 ([SendMessageConfiguration](https://a2a-protocol.org/latest/specification/#322-sendmessageconfiguration)) states the blocking behavior as:

> Blocking (return_immediately: false or unset): The operation MUST wait until the task reaches a terminal state (TASK_STATE_COMPLETED, TASK_STATE_FAILED, TASK_STATE_CANCELED, TASK_STATE_REJECTED) or an interrupted state (TASK_STATE_INPUT_REQUIRED, TASK_STATE_AUTH_REQUIRED) before returning.

Section 3.1.1 ([Send Message](https://a2a-protocol.org/latest/specification/#311-send-message)) states agent behavior as:

> The agent MAY create a new Task to process the provided message asynchronously or MAY return a direct Message response for simple interactions. The operation MUST return immediately with either task information or response message. Task processing MAY continue asynchronously after the response when a Task is returned.

The `MUST wait` in Section 3.2.2 strictly implies that a server cannot return early with an in-progress task state (e.g., TASK_STATE_WORKING or TASK_STATE_SUBMITTED) to avoid HTTP gateway timeouts performing LROs depriving the server's control over connection management.

Proposal to clarify the behavior as:
Client sent configuration for `return_immediately` should be treated as a client preference. Adhering to the behavior specified in 3.1.1, server should retain control over execution and should be able to override client preferences if the request can't be served synchronously.

### Relevant log output

```shell

```

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

The issue points to sections 3.2.2 and 3.1.1 of the A2A protocol specification. Start by reading the specification at the linked URLs to understand the contradiction. Look for existing discussions or PRs about async behavior and blocking execution. Determine what changes to the spec text would resolve the contradiction, focusing on the normative language (MUST, MAY).

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.