curl -sS https://vizier.vassiliy-lakhonin.workers.dev/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "SendMessage",
"params": { "message": {
"messageId": "probe-1",
"role": "ROLE_USER",
"parts": [{ "data": {
"agent": { "id": "release-agent-01", "owner": "platform-team" },
"principal": { "id": "platform-team" },
"action": {
"type": "deploy_worker",
"target": "worker:production-api",
"parameters": { "environment": "production" }
},
"authority": {
"allowed_actions": ["deploy_worker"],
"constraints": { "allowed_targets": ["worker:staging-api"] }
},
"context": {
"request_id": "deploy-447",
"timestamp": null,
"source": "a2a"
}
}}]
}}
}'
Ответ
"decision": "BLOCK",
"risk_score": 1,
"reason_codes": [
"AUTHORITY_SOURCE_UNTRUSTED",
"TARGET_NOT_ALLOWED",
"SENSITIVE_ACTION_REVIEW"
]
Запрос нацелен на production, хотя переданные полномочия разрешают только staging. Полный ответ содержит результаты каждой политики и request-bound receipt.
AUTHORITY_SOURCE_UNTRUSTED показывает границу anonymous lane: такой вызов сам описывает свои полномочия, поэтому решение ограничено значениями REVIEW и BLOCK.
Три способа вызова
- REST:
POST /v1/verify.
- A2A: JSON-RPC
SendMessage, protocol v1.0.
- MCP: revision
2026-07-28, tool vizier_verify_action.
Agent Card содержит ES256 JWS в signatures[]. Подпись проверяется через опубликованный key set, но покрывает только карточку. Она не аутентифицирует caller, delegation или receipt.