Commit 70f1e2b
feat: Add protocol support for extensions (#716)
# 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
---------
Co-authored-by: Holt Skinner <[email protected]>1 parent bf5e809 commit 70f1e2b
File tree
5 files changed
+113
-5
lines changed- docs
- topics
- specification
- grpc
- json
- types/src
5 files changed
+113
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
| |||
194 | 195 | | |
195 | 196 | | |
196 | 197 | | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
202 | 219 | | |
203 | 220 | | |
204 | 221 | | |
| |||
361 | 378 | | |
362 | 379 | | |
363 | 380 | | |
| 381 | + | |
364 | 382 | | |
365 | 383 | | |
366 | 384 | | |
| |||
462 | 480 | | |
463 | 481 | | |
464 | 482 | | |
| 483 | + | |
465 | 484 | | |
466 | 485 | | |
467 | 486 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
| 82 | + | |
81 | 83 | | |
82 | 84 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| 246 | + | |
| 247 | + | |
246 | 248 | | |
247 | 249 | | |
248 | 250 | | |
| |||
259 | 261 | | |
260 | 262 | | |
261 | 263 | | |
| 264 | + | |
| 265 | + | |
262 | 266 | | |
263 | 267 | | |
264 | 268 | | |
| |||
368 | 372 | | |
369 | 373 | | |
370 | 374 | | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
371 | 389 | | |
372 | 390 | | |
373 | 391 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
102 | 109 | | |
103 | 110 | | |
104 | 111 | | |
| |||
207 | 214 | | |
208 | 215 | | |
209 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
210 | 243 | | |
211 | 244 | | |
212 | 245 | | |
| |||
288 | 321 | | |
289 | 322 | | |
290 | 323 | | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
291 | 331 | | |
292 | 332 | | |
293 | 333 | | |
| |||
1082 | 1122 | | |
1083 | 1123 | | |
1084 | 1124 | | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
1085 | 1132 | | |
1086 | 1133 | | |
1087 | 1134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
31 | 49 | | |
32 | 50 | | |
33 | 51 | | |
| |||
273 | 291 | | |
274 | 292 | | |
275 | 293 | | |
| 294 | + | |
| 295 | + | |
276 | 296 | | |
277 | 297 | | |
278 | 298 | | |
| |||
287 | 307 | | |
288 | 308 | | |
289 | 309 | | |
| 310 | + | |
| 311 | + | |
290 | 312 | | |
291 | 313 | | |
292 | 314 | | |
| |||
0 commit comments