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

Viewing files at commit 95b0e11125d2Commit detailsView latest

schemas/v0.1/assurance_probe_plan.schema.json 258 lines · 7.3 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
    "planId": {
10
      "type": "string",
11
      "format": "uuid",
12
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
13
    },
14
    "interactionId": {
15
      "type": "string",
16
      "format": "uuid",
17
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
18
    },
19
    "contractHash": {
20
      "type": "string",
21
      "minLength": 1
22
    },
23
    "phase": {
24
      "type": "string",
25
      "enum": [
26
        "pre_task",
27
        "post_task"
28
      ]
29
    },
30
    "generatedForAgentId": {
31
      "type": "string",
32
      "minLength": 1
33
    },
34
    "targetAgentId": {
35
      "type": "string",
36
      "minLength": 1
37
    },
38
    "targetAgentVersion": {
39
      "type": "string",
40
      "minLength": 1,
41
      "maxLength": 200
42
    },
43
    "round": {
44
      "type": "integer",
45
      "minimum": 1,
46
      "maximum": 3
47
    },
48
    "assessmentId": {
49
      "type": "string",
50
      "format": "uuid",
51
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
52
    },
53
    "predictionBeforeId": {
54
      "type": "string",
55
      "format": "uuid",
56
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
57
    },
58
    "questions": {
59
      "minItems": 1,
60
      "maxItems": 1,
61
      "type": "array",
62
      "items": {
63
        "type": "object",
64
        "properties": {
65
          "probeId": {
66
            "type": "string",
67
            "format": "uuid",
68
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
69
          },
70
          "questionCode": {
71
            "type": "string",
72
            "pattern": "^[a-z][a-z0-9_]{1,63}$"
73
          },
74
          "prompt": {
75
            "type": "string",
76
            "minLength": 1,
77
            "maxLength": 240
78
          },
79
          "responseType": {
80
            "type": "string",
81
            "enum": [
82
              "boolean",
83
              "enum",
84
              "number",
85
              "short_text"
86
            ]
87
          },
88
          "choices": {
89
            "minItems": 2,
90
            "maxItems": 6,
91
            "type": "array",
92
            "items": {
93
              "type": "string",
94
              "minLength": 1,
95
              "maxLength": 80
96
            }
97
          },
98
          "evidenceRequested": {
99
            "default": false,
100
            "type": "boolean"
101
          },
102
          "required": {
103
            "default": true,
104
            "type": "boolean"
105
          },
106
          "questionFamily": {
107
            "type": "string",
108
            "enum": [
109
              "capability",
110
              "scope",
111
              "deadline",
112
              "tool_access",
113
              "data_access",
114
              "evidence",
115
              "dependency",
116
              "authority",
117
              "safety",
118
              "delivery"
119
            ]
120
          },
121
          "riskHypothesis": {
122
            "type": "string",
123
            "minLength": 1,
124
            "maxLength": 280
125
          },
126
          "expectedSignals": {
127
            "minItems": 1,
128
            "maxItems": 6,
129
            "type": "array",
130
            "items": {
131
              "type": "object",
132
              "properties": {
133
                "answer": {
134
                  "type": "string",
135
                  "minLength": 1,
136
                  "maxLength": 80
137
                },
138
                "effect": {
139
                  "type": "string",
140
                  "enum": [
141
                    "increase_success",
142
                    "reduce_success",
143
                    "neutral"
144
                  ]
145
                },
146
                "probabilityDelta": {
147
                  "type": "number",
148
                  "minimum": -0.5,
149
                  "maximum": 0.5
150
                }
151
              },
152
              "required": [
153
                "answer",
154
                "effect",
155
                "probabilityDelta"
156
              ],
157
              "additionalProperties": false
158
            }
159
          },
160
          "expectedInformationGain": {
161
            "type": "number",
162
            "minimum": 0,
163
            "maximum": 1
164
          },
165
          "selectionReason": {
166
            "type": "string",
167
            "minLength": 1,
168
            "maxLength": 280
169
          },
170
          "recommendedSafeguardCodes": {
171
            "default": [],
172
            "maxItems": 5,
173
            "type": "array",
174
            "items": {
175
              "type": "string",
176
              "pattern": "^[a-z][a-z0-9_]{1,63}$"
177
            }
178
          }
179
        },
180
        "required": [
181
          "probeId",
182
          "questionCode",
183
          "prompt",
184
          "responseType",
185
          "evidenceRequested",
186
          "required",
187
          "questionFamily",
188
          "riskHypothesis",
189
          "expectedSignals",
190
          "expectedInformationGain",
191
          "selectionReason",
192
          "recommendedSafeguardCodes"
193
        ],
194
        "additionalProperties": false
195
      }
196
    },
197
    "generation": {
198
      "type": "object",
199
      "properties": {
200
        "generationId": {
201
          "type": "string",
202
          "format": "uuid",
203
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
204
        },
205
        "mode": {
206
          "type": "string",
207
          "enum": [
208
            "ai",
209
            "fallback"
210
          ]
211
        },
212
        "model": {
213
          "type": "string",
214
          "minLength": 1
215
        },
216
        "promptVersion": {
217
          "type": "string",
218
          "minLength": 1
219
        }
220
      },
221
      "required": [
222
        "generationId",
223
        "mode",
224
        "model",
225
        "promptVersion"
226
      ],
227
      "additionalProperties": false
228
    },
229
    "generatedAt": {
230
      "type": "string",
231
      "format": "date-time",
232
      "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))$"
233
    },
234
    "expiresAt": {
235
      "type": "string",
236
      "format": "date-time",
237
      "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))$"
238
    }
239
  },
240
  "required": [
241
    "protocolVersion",
242
    "planId",
243
    "interactionId",
244
    "contractHash",
245
    "phase",
246
    "generatedForAgentId",
247
    "targetAgentId",
248
    "targetAgentVersion",
249
    "round",
250
    "assessmentId",
251
    "predictionBeforeId",
252
    "questions",
253
    "generation",
254
    "generatedAt",
255
    "expiresAt"
256
  ],
257
  "additionalProperties": false
258
}