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

Viewing files at commit 1da1b7ef4016Commit detailsView latest

schemas/v0.1/public_agent_card.schema.json 134 lines · 3.8 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
    "transports": {
45
      "type": "array",
46
      "items": {
47
        "type": "object",
48
        "properties": {
49
          "protocol": {
50
            "type": "string",
51
            "const": "A2A/1.0"
52
          },
53
          "protocolBinding": {
54
            "default": "JSONRPC",
55
            "type": "string",
56
            "minLength": 1
57
          },
58
          "endpoint": {
59
            "type": "string",
60
            "format": "uri"
61
          },
62
          "managedBy": {
63
            "default": "openclasp",
64
            "type": "string",
65
            "const": "openclasp"
66
          }
67
        },
68
        "required": ["protocol", "protocolBinding", "endpoint", "managedBy"],
69
        "additionalProperties": false
70
      }
71
    },
72
    "cardUrl": {
73
      "type": "string",
74
      "format": "uri"
75
    },
76
    "a2aAgentCardUrl": {
77
      "type": "string",
78
      "format": "uri"
79
    },
80
    "extensionUri": {
81
      "type": "string",
82
      "format": "uri"
83
    },
84
    "presence": {
85
      "type": "object",
86
      "properties": {
87
        "status": {
88
          "type": "string",
89
          "enum": ["online", "offline"]
90
        },
91
        "lastSeenAt": {
92
          "type": "string",
93
          "format": "date-time",
94
          "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))$"
95
        },
96
        "checkedAt": {
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
      },
102
      "required": ["status", "checkedAt"],
103
      "additionalProperties": false
104
    },
105
    "publishedAt": {
106
      "type": "string",
107
      "format": "date-time",
108
      "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))$"
109
    },
110
    "updatedAt": {
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
  },
116
  "required": [
117
    "protocolVersion",
118
    "agentId",
119
    "name",
120
    "description",
121
    "framework",
122
    "agentVersion",
123
    "capabilities",
124
    "limitations",
125
    "assurance",
126
    "transports",
127
    "cardUrl",
128
    "a2aAgentCardUrl",
129
    "extensionUri",
130
    "publishedAt",
131
    "updatedAt"
132
  ],
133
  "additionalProperties": false
134
}