Skip to content

feat: Add protocol support for extensions #716

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jun 4, 2025

Conversation

mikeas1
Copy link
Contributor

@mikeas1 mikeas1 commented Jun 3, 2025

Description

This updates the protocol to support Extensions. Extension profiles are documents that describe modifications or additions to the core A2A profile. AgentCards can declare supported extensions via capabilities.extensions. This declaration can include additional information via capabilities.extensions.params. Clients can use this as a basis for extension negotiation: if a client supports an extension that the server supports, the client can then follow the protocol defined by the extension. This can include, but is not specifically limited to:

  1. Requiring specific structure of messages, such as following a specific schema for a DataPart.
  2. Providing additional information in request/response Message and Artifact objects via their metadata field.
  3. Exposing additional methods beyond the core A2A protocol methods.

Messages and Artifacts can now include an indication of which extensions are present in their content. I do not yet know if extension indications are necessary on other data structures (such as MessageSendParams or TaskStatus). I'd say extension indications are not strictly necessary at all: it's possible to infer that an extension was followed by inspecting the message content itself (are the metadata fields you expect present, does the DataPart follow the schema you expect, etc). However, they are useful for validation and simplifying extension implementation logic: "you said you followed this extension, so I'll validate fields are present and then perform my processing".

Fixes #585

@mikeas1 mikeas1 requested a review from a team as a code owner June 3, 2025 15:46
@pstephengoogle
Copy link
Contributor

Can we also update the grpc definitions accordingly?

@holtskinner holtskinner assigned pstephengoogle and unassigned mikeas1 Jun 4, 2025
@mikeas1 mikeas1 merged commit 70f1e2b into a2aproject:main Jun 4, 2025
6 checks passed
holtskinner added a commit that referenced this pull request Jun 9, 2025
🤖 I have created a release *beep* *boop*
---


## [0.2.2](v0.2.1...v0.2.2)
(2025-06-09)


### ⚠ BREAKING CHANGES

* Resolve spec inconsistencies with JSON-RPC 2.0

### Features

* Add gRPC and REST definitions to A2A protocol specifications
([#695](#695))
([89bb5b8](89bb5b8))
* Add protocol support for extensions
([#716](#716))
([70f1e2b](70f1e2b))
* **spec:** Add an optional iconUrl field to the AgentCard
([#687](#687))
([9f3bb51](9f3bb51))


### Bug Fixes

* Protocol should released as 0.2.2
([22e7541](22e7541))
* Resolve spec inconsistencies with JSON-RPC 2.0
([628380e](628380e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Holt Skinner <[email protected]>
@zeroasterisk
Copy link
Collaborator

https://a2a-protocol.org/latest/topics/extensions/
Doc link to help readers who end up on this pr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat]: A2A API Extensions
5 participants