⤓ raw markdown (machine contract)
Adaptateur V2 = interop agents. Projection du DID canonique (SPEC-identity-v0.1 §2) en Agent Card A2A. Contrat normatif, non modifiable en place : tout changement =
a2a-v2. La réputation est liée, jamais copiée (toujours fraîche, vérifiable à la source).
https://maxiaworld.app/.well-known/agent.json (découverte A2A standard, racine du domaine de l'agent).service[#a2a] du DID Document : https://maxiaworld.app/a2a/<did>.json (résolution par DID).Content-Type: application/json. UTF-8.x-aicodex. Le coeur reste W3C-pur (DID/VC) ; A2A est une projection jetable.L'Agent Card projette un DID canonique dérivé Ed25519 (SPEC-identity §2, did:key multicodec 0xED01 ou did:web). Aucune identité A2A n'existe sans DID préalablement enregistré via l'adaptateur MCP V1 (register). L'Agent Card est un dérivé du registre, jamais une source d'identité.
{
"name": "<nom agent>",
"description": "<description courte>",
"url": "https://<endpoint A2A de l'agent>",
"version": "<version agent>",
"provider": { "organization": "<org|null>", "url": "<url|null>" },
"capabilities": { "streaming": false, "pushNotifications": false },
"skills": [],
"x-aicodex": {
"did": "did:key:z6Mk...",
"reputationCredentialUrl": "https://maxiaworld.app/reputation/did:key:z6Mk...",
"spec": "https://maxiaworld.app/spec/SPEC-adapter-a2a-v1.md",
"profile": "aicodex-norm-v1"
}
}
name, description, url, version, provider, capabilities, skills : projetés depuis les métadonnées agent (SPEC-identity §2.2) et la configuration de l'agent. Hors périmètre normatif AI Codex (gouvernés par A2A). AI Codex ne les valide pas, ne les signe pas.
x-aicodex (normative, octet-stable)Bloc obligatoire pour qu'une carte soit AI Codex-conforme. Champs figés :
| Champ | Type | Règle |
|---|---|---|
did |
string | DID canonique exact (SPEC-identity §2), résolvable via resolve MCP. Sans préfixe ni suffixe. |
reputationCredentialUrl |
string | URL absolue HTTPS de la Reputation VC vivante du did. Lien, jamais valeur inline. |
spec |
string | URL absolue de ce document (ancre de version de l'adaptateur). |
profile |
string | "aicodex-norm-v1" exact (profil de normalisation, SPEC-identity §3.3). |
Aucun autre champ dans x-aicodex en v1. Aucun champ score, components, ni copie de VC : interdits dans la carte (sinon non-conforme, §6). Une réputation figée dans une carte serait périmée et non vérifiable : seul le lien est autorisé.
Un consommateur A2A obtient la confiance ainsi, sans qu'AI Codex soit dans le chemin de données A2A :
/.well-known/agent.json ou service[#a2a]).x-aicodex.did. Le résoudre via l'adaptateur MCP resolve → DID Document W3C (SPEC-identity §2.1). Vérifier que le DID Document contient un service[#a2a] cohérent avec l'URL de la carte.x-aicodex.reputationCredentialUrl (équivalent au get_reputation MCP : VC toujours présente pour un DID connu, planchers §3.3 si pas d'activité).eddsa-jcs-2022 de l'issuer did:web:maxiaworld.app, credentialSubject.id == x-aicodex.did, validUntil non dépassé, credentialStatus non révoqué (StatusList2021, SPEC-identity §3.2). AI Codex n'est pas requis pour cette vérification.La carte ne fait jamais autorité sur la réputation. Elle ne fait qu'indiquer où la vérifier à la source.
Servis en HTTP (carte = ressource statique). Corps JSON { "code": "...", "message": "..." }, message générique (aucune fuite d'état interne ; détail loggé serveur).
| Code | HTTP | Sens |
|---|---|---|
E_CARD_NOT_FOUND |
404 | Aucune Agent Card pour cet emplacement / ce DID |
E_DID_MALFORMED |
400 | DID demandé non conforme did:key/did:web Ed25519 |
E_DID_NOT_FOUND |
404 | DID inconnu du registre (pas de carte dérivable) |
E_CARD_NONCONFORMANT |
422 | Carte présente mais x-aicodex absent/invalide (état serveur, jamais servi tel quel en prod) |
E_RATE_LIMITED |
429 | Quota dépassé (§7) |
E_INTERNAL |
500 | Erreur serveur, aucun détail divulgué |
Aucun autre code en v1. Pas de code divulguant la réputation par canal d'erreur (la réputation passe uniquement par la VC liée).
Carte A2A AI Codex-conforme si, et seulement si : (a) servie aux deux emplacements §1 avec le même contenu, (b) x-aicodex présent et conforme §3.3 (4 champs exacts, rien de plus), (c) reputationCredentialUrl est un lien résolvable vers la VC vivante, aucune VC ni score inline, (d) x-aicodex.did résout à un DID Document §2.1 dont le service[#a2a] est cohérent. Les quatre nécessaires et suffisants.
E_RATE_LIMITED (jamais d'erreur silencieuse).skills ≤ 64 entrées (champ A2A standard, borné pour DoS, non interprété par AI Codex).L'Agent Card n'expose aucun rail de paiement, aucune adresse crypto, aucune préférence de réseau. Elle ne porte que l'identité (DID) et le pointeur de réputation. Les rails restent hors du coeur et hors de cet adaptateur (condition de neutralité, SPEC-identity §1).
Adaptateur V3 AP2 : la Reputation VC liée ici devient une attestation attachable à un mandate AP2, sans dépendance inverse. Voir SPEC-adapter-ap2-v1.md.
Frozen specification. The raw .md at the same path is the canonical machine artifact referenced by DID documents and A2A cards — rendered here for humans only.