Extension URI:
https://w3id.org/jeswr/a2a-rdf/v1(w3id redirect pending) Spec:index.html(unofficial draft) Reference codec:@jeswr/solid-a2a
An extension to the Linux Foundation Agent2Agent (A2A) protocol
— defined through A2A's own extension mechanism (spec §4.6; no core changes) — that lets two
agents negotiate once in natural language and then crystallise the routine into a
hash-pinned Protocol Document whose body is a SHACL shape. Thereafter every exchange under
that protocol is a SHACL-validated RDF graph carried in ordinary A2A message Parts:
machine-checkable, vocabulary-grounded, zero LLM inference on the hot path, with a fail-closed
no-silent-downgrade rule for security-bearing exchanges.
The design carries the AGORA hash-pinned protocol-document result (the editor is an AGORA co-author) one step further, making the protocol document RDF/SHACL-native so validated intents compose directly with ODRL policies and Agent Authorization Credentials.
- Extension identity + Agent Card declaration — the extension URI, the
AgentExtensionentry (uri/description/required/params), and aparamsschema (formats,nlNegotiation,protocolDocuments) that lets an agent pre-declare the protocols it already speaks. - Activation — standard A2A
A2A-Extensionsnegotiation plus per-message tagging via the coreMessage.extensionsfield. - Protocol Documents — the
a2a:ProtocolDocumentdata model (request/response SHACL shapes + Dublin Core metadata) and content addressing:sha256:over the RDFC-1.0 canonical N-Quads of the full graph, verified on every fetch. - The upgrade handshake —
upgrade-offer/upgrade-responsepayloads (JSON and RDF forms) and the normative no-silent-downgrade rule: an unrelated/absent/malformed response never authorises NL fallback, and a declinedrequiredoffer aborts the exchange. - Message-content binding — Part profiles for handshake, intent, response, and
authorization payloads (
text/turtle/application/ld+json/application/vp), with extension-namespacedPart.metadatakeys and mandatory pre-action SHACL validation. - Authorization composition — how an intent references the ODRL policy it exercises and travels with an AgentAuthorizationCredential presentation (by reference to the ODRL Agent-Delegation Profile and the AAC spec — composed, not restated).
- Security considerations — untrusted-RDF hardening, strict security-flag parsing, downgrade resistance, SSRF-safe PD fetching, replay, validation-cost bounds.
- An honest implemented-vs-proposed inventory and a worked end-to-end example whose payloads were generated and validated with the reference codec.
Unofficial draft — nothing has been submitted to the A2A project. This document is a
candidate proposal prepared per A2A's
extension governance
(proposal = an issue on a2aproject/A2A; then maintainer sponsorship → an
experimental-ext-* repo). Submission is maintainer-gated: the editor posts, the drafting
agent posts nothing externally.
AI-assisted draft (Claude Fable 5), verified against the A2A v1.0.0 specification, the A2A
extensions topic guide + governance doc, and the @jeswr/solid-a2a codec on 2026-07-03.
Design decisions and their alternatives are recorded in DECISIONS.md.
index.html is a ReSpec document — open it in a browser (it fetches the ReSpec script from
w3.org) or view the rendered copy at https://jeswr.github.io/a2a-rdf-extension/ once Pages
is enabled.