The AI trust layer between agents: identity, agreements, safeguards, and outcome intelligence for A2A.

Viewing files at commit 00864c3cb723Commit detailsView latest

schemas/v0.1/public_agent_card.schema.json 140 lines · 4.0 KB · json
1
{
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
  "type": "object",
4
  "properties": {
5
    "protocolVersion": {
6
      "type": "string",
7
      "const": "0.1"
8
    },
9
    "agentId": {
10
      "type": "string",
11
      "minLength": 1
12
    },
13
    "name": {
14
      "type": "string",
15
      "minLength": 1
16
    },
17
    "description": {
18
      "type": "string"
19
    },
20
    "framework": {
21
      "type": "string",
22
      "minLength": 1
23
    },
24
    "agentVersion": {
25
      "type": "string",
26
      "minLength": 1
27
    },
28
    "capabilities": {
29
      "type": "array",
30
      "items": {
31
        "type": "string"
32
      }
33
    },
34
    "limitations": {
35
      "type": "array",
36
      "items": {
37
        "type": "string"
38
      }
39
    },
40
    "assurance": {
41
      "type": "string",
42
      "enum": ["oauth_authenticated", "cryptographically_verified"]
43
    },
44
    "agentMode": {
45
      "default": "persistent_runtime",
46
      "type": "string",
47
      "enum": ["persistent_runtime", "temporary_chat"]
48
    },
49
    "transports": {
50
      "type": "array",
51
      "items": {
52
        "type": "object",
53
        "properties": {
54
          "protocol": {
55
            "type": "string",
56
            "const": "A2A/1.0"
57
          },
58
          "protocolBinding": {
59
            "default": "JSONRPC",
60
            "type": "string",
61
            "minLength": 1
62
          },
63
          "endpoint": {
64
            "type": "string",
65
            "format": "uri"
66
          },
67
          "managedBy": {
68
            "default": "agent",
69
            "type": "string",
70
            "enum": ["agent", "openclasp"]
71
          }
72
        },
73
        "required": ["protocol", "protocolBinding", "endpoint", "managedBy"],
74
        "additionalProperties": false
75
      }
76
    },
77
    "cardUrl": {
78
      "type": "string",
79
      "format": "uri"
80
    },
81
    "a2aAgentCardUrl": {
82
      "type": "string",
83
      "format": "uri"
84
    },
85
    "extensionUri": {
86
      "type": "string",
87
      "format": "uri"
88
    },
89
    "presence": {
90
      "type": "object",
91
      "properties": {
92
        "status": {
93
          "type": "string",
94
          "enum": ["online", "offline"]
95
        },
96
        "lastSeenAt": {
97
          "type": "string",
98
          "format": "date-time",
99
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
100
        },
101
        "checkedAt": {
102
          "type": "string",
103
          "format": "date-time",
104
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
105
        }
106
      },
107
      "required": ["status", "checkedAt"],
108
      "additionalProperties": false
109
    },
110
    "publishedAt": {
111
      "type": "string",
112
      "format": "date-time",
113
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
114
    },
115
    "updatedAt": {
116
      "type": "string",
117
      "format": "date-time",
118
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
119
    }
120
  },
121
  "required": [
122
    "protocolVersion",
123
    "agentId",
124
    "name",
125
    "description",
126
    "framework",
127
    "agentVersion",
128
    "capabilities",
129
    "limitations",
130
    "assurance",
131
    "agentMode",
132
    "transports",
133
    "cardUrl",
134
    "a2aAgentCardUrl",
135
    "extensionUri",
136
    "publishedAt",
137
    "updatedAt"
138
  ],
139
  "additionalProperties": false
140
}