a2aproject / a2aproject/A2A

Extension Proposal: experimental-ext-settlement — settlement semantics for A2A tasks (seeking maintainer sponsor)

Ouverte
#2,198 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Shell
Étoiles
25.7k
Forks
2.6k
Merge moyen
3 j 6 h
PR mergées (30 j)
16

Description

## Abstract

This defines interoperable settlement semantics for economic obligations tied to A2A task states. It does not define a payment rail. x402, AP2, hosted escrow, stablecoins, card rails, or internal ledgers can all move the value.

## Motivation

A2A discovers agents and runs tasks. It does not define when an economic obligation is discharged. Settlement sits above the payment rail and tells it when to move, so x402 or AP2 can be the rail underneath.

Anyone can publish an extension at their own URI. Settlement semantics only interoperate if release, refund, and dispute mean the same thing on every rail. If each rail defines those words itself, a client cannot switch rails without rewriting settlement logic.

## Technical Approach

Agents declare the extension in `capabilities.extensions` on the Agent Card. Settlement context rides in the existing `metadata` field on messages and tasks. Actions map onto terminal TaskStates. COMPLETED releases the obligation. FAILED, CANCELED, and REJECTED refund it. Dispute is a settlement status, not a new TaskState: either party can flag it, and the obligation stays frozen until it resolves to a release or a refund. No new task states. No core protocol changes.

The spec is [SPEC.md](https://github.com/a2a-settlement/a2a-settlement/blob/main/SPEC.md) v0.11.0. Extension URI: `https://a2a-settlement.org/extensions/settlement/v1`.

## Prior Work

The reference exchange at https://exchange.a2a-settlement.org runs against that spec. That implementation is mine.

[settlement-conformance](https://github.com/a2a-settlement/settlement-conformance) holds five signed v0 vectors. The envelope and the settlement/reputation layer types were authored by AlgoVoi. I chair the repo. Results are published at [results/a2a-se](https://github.com/a2a-settlement/settlement-conformance/tree/main/results/a2a-se). Other rails are welcome to post theirs.

SPEC v0.11.0 is archived at https://doi.org/10.5281/zenodo.21953795 (2026-06-10).

[a2a-samples PR #442](https://github.com/a2aproject/a2a-samples/pull/442) is still open; I filed it the same day as [Discussion #1576](https://github.com/a2aproject/A2A/discussions/1576) (March 2, 2026), which was the wrong venue.

## Ask

I am asking a maintainer to sponsor this and create `experimental-ext-settlement` under a2aproject, following the [Extension and Protocol Binding Governance](https://github.com/a2aproject/A2A/blob/main/docs/topics/extension-and-binding-governance.md) process. The sponsor's role is oversight and alignment review; I do the spec and repo work, and I will maintain it. The spec would move under a2aproject governance.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

This is a proposal for a new extension, not a code change. Review the SPEC.md at the provided URI, the existing extension governance document, and the linked discussion and PR. The work involves design alignment and protocol specification, not implementing a fix in the current codebase.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
backend-api-design
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.