a2aproject / a2aproject/A2A

[Extension Proposal] Edge-cloud capability contract

Abierto
#2,076 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Shell
Estrellas
25.7k
Forks
2.6k
Merge medio
3 d 6 h
PR fusionados (30 d)
16

Descripción

## Abstract

Propose an optional A2A profile/data extension that makes edge-cloud task placement constraints machine-readable. It lets an agent declare where it can execute, what data classifications and regions it accepts, expected latency/offline behavior, side-effect and idempotency semantics, and supported attestation/result-verification mechanisms. A caller activates the extension and attaches request-specific constraints; the callee either returns an execution receipt satisfying them or rejects the task before execution.

## Motivation

The core protocol intentionally provides generic Agent Cards, security schemes, task lifecycle, and extension metadata. It does not define semantics for deciding whether a task may move from an edge site to a cloud region, whether a weak-network/offline execution mode is supported, or whether retrying a side-effecting task is safe.

Natural-language skill descriptions are not sufficient for a deterministic gateway or policy engine. The same task may be technically supported but prohibited because its input is restricted to a region, requires a device-local control loop, exceeds a latency bound, or lacks an acceptable verifier. These constraints are domain-specific and should not enlarge the core A2A types, so an extension is the appropriate mechanism.

The proposal complements MCP tool annotations: MCP describes tools available inside an agent boundary, while this A2A extension governs a cross-agent task placement and receipt. It does not replace TLS, A2A authentication/authorization, Agent Card signatures, or platform policy.

## Initial technical approach

Extension URI (sample/incubation):

`https://github.com/a2aproject/a2a-samples/extensions/edge-cloud-capability-contract/v1`

The extension defines three JSON objects carried through existing A2A extension points:

1. `CapabilityContract` in `AgentExtension.params`
- execution sites and regions
- accepted data classifications
- latency/offline ranges
- side-effect class and idempotency support
- supported attestation and deterministic verification methods
2. `ExecutionRequirements` in request `Message.metadata[URI]`
- allowed sites/regions and data classification
- max latency/network mode
- idempotency key and required verification/attestation methods
3. `ExecutionReceipt` in response `Message` or `Artifact` metadata
- selected site/region
- contract version/digest
- result digest, verifier status, and optional attestation reference

Normative rules:

- the server MUST validate requirements before causing declared side effects;
- absent activation, behavior remains core A2A;
- declarations are claims, not trust anchors; clients MUST apply local policy and SHOULD verify signed Agent Cards/attestations;
- raw credentials, private topology, and sensitive input data MUST NOT be placed in extension metadata;
- a repeated side-effecting request is only replay-safe when an idempotency key is supplied and the contract declares support;
- rejection uses existing A2A error behavior rather than inventing a parallel task state machine.

## Reference sample

I plan to submit a small specification, JSON Schemas, and dependency-free validator to `a2aproject/a2a-samples` so the shape and fail-closed validation rules can be evaluated without changing the core protocol.

This proposal follows the extension lifecycle in `docs/topics/extension-and-binding-governance.md`; it requests discussion and, if the direction is useful, maintainer sponsorship for an experimental extension repository.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

This is a design proposal for a new protocol extension. Start by reading the core A2A protocol documentation and the extension governance file at `docs/topics/extension-and-binding-governance.md`. The work involves designing JSON schemas and a validator, likely to be placed in the `a2aproject/a2a-samples` repository. 'Done' means a complete specification and reference implementation submitted for review.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Área
backend-api-design
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.