init
This commit is contained in:
@@ -0,0 +1,249 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "A2A Protocol Schemas",
|
||||
"description": "Non-normative JSON Schema bundle extracted from proto definitions.",
|
||||
"version": "v1",
|
||||
"definitions": {
|
||||
"Struct": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Struct",
|
||||
"type": "object"
|
||||
},
|
||||
"Timestamp": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"format": "date-time",
|
||||
"title": "Timestamp",
|
||||
"type": "string"
|
||||
},
|
||||
"Value": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Value"
|
||||
},
|
||||
"API Key Security Scheme": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Defines a security scheme using an API key.",
|
||||
"properties": {
|
||||
"description": { "default": "", "description": "An optional description for the security scheme.", "type": "string" },
|
||||
"location": { "default": "", "description": "The location of the API key. Valid values are \"query\", \"header\", or \"cookie\".", "type": "string" },
|
||||
"name": { "default": "", "description": "The name of the header, query, or cookie parameter to be used.", "type": "string" }
|
||||
},
|
||||
"title": "API Key Security Scheme",
|
||||
"type": "object"
|
||||
},
|
||||
"Agent Capabilities": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Defines optional capabilities supported by an agent.",
|
||||
"properties": {
|
||||
"extendedAgentCard": { "description": "Indicates if the agent supports providing an extended agent card when authenticated.", "type": "boolean" },
|
||||
"extensions": { "description": "A list of protocol extensions supported by the agent.", "items": { "$ref": "lf.a2a.v1.AgentExtension.jsonschema.json" }, "type": "array" },
|
||||
"pushNotifications": { "description": "Indicates if the agent supports sending push notifications for asynchronous task updates.", "type": "boolean" },
|
||||
"streaming": { "description": "Indicates if the agent supports streaming responses.", "type": "boolean" }
|
||||
},
|
||||
"title": "Agent Capabilities",
|
||||
"type": "object"
|
||||
},
|
||||
"Agent Card": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "A self-describing manifest for an agent. It provides essential metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements.",
|
||||
"properties": {
|
||||
"capabilities": { "$ref": "lf.a2a.v1.AgentCapabilities.jsonschema.json", "description": "A2A Capability set supported by the agent." },
|
||||
"defaultInputModes": { "description": "The set of interaction modes that the agent supports across all skills. Defined as media types.", "items": { "type": "string" }, "type": "array" },
|
||||
"defaultOutputModes": { "description": "The media types supported as outputs from this agent.", "items": { "type": "string" }, "type": "array" },
|
||||
"description": { "default": "", "description": "A human-readable description of the agent.", "type": "string" },
|
||||
"documentationUrl": { "description": "A URL providing additional documentation about the agent.", "type": "string" },
|
||||
"iconUrl": { "description": "Optional. A URL to an icon for the agent.", "type": "string" },
|
||||
"name": { "default": "", "description": "A human readable name for the agent.", "type": "string" },
|
||||
"provider": { "$ref": "lf.a2a.v1.AgentProvider.jsonschema.json", "description": "The service provider of the agent." },
|
||||
"securityRequirements": { "description": "Security requirements for contacting the agent.", "items": { "$ref": "lf.a2a.v1.SecurityRequirement.jsonschema.json" }, "type": "array" },
|
||||
"securitySchemes": { "additionalProperties": { "$ref": "lf.a2a.v1.SecurityScheme.jsonschema.json" }, "description": "The security scheme details used for authenticating with this agent.", "type": "object" },
|
||||
"signatures": { "description": "JSON Web Signatures computed for this AgentCard.", "items": { "$ref": "lf.a2a.v1.AgentCardSignature.jsonschema.json" }, "type": "array" },
|
||||
"skills": { "description": "Skills represent the abilities of an agent.", "items": { "$ref": "lf.a2a.v1.AgentSkill.jsonschema.json" }, "type": "array" },
|
||||
"supportedInterfaces": { "description": "Ordered list of supported interfaces. The first entry is preferred.", "items": { "$ref": "lf.a2a.v1.AgentInterface.jsonschema.json" }, "type": "array" },
|
||||
"version": { "default": "", "description": "The version of the agent.", "type": "string" }
|
||||
},
|
||||
"title": "Agent Card",
|
||||
"type": "object"
|
||||
},
|
||||
"Agent Interface": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Declares a combination of a target URL, transport and protocol version for interacting with the agent.",
|
||||
"properties": {
|
||||
"protocolBinding": { "default": "", "description": "The protocol binding supported at this URL. Core ones: JSONRPC, GRPC, HTTP+JSON.", "type": "string" },
|
||||
"protocolVersion": { "default": "", "description": "The version of the A2A protocol this interface exposes. Examples: \"0.3\", \"1.0\"", "type": "string" },
|
||||
"tenant": { "default": "", "description": "Tenant ID to be used in the request when calling the agent.", "type": "string" },
|
||||
"url": { "default": "", "description": "The URL where this interface is available.", "type": "string" }
|
||||
},
|
||||
"title": "Agent Interface",
|
||||
"type": "object"
|
||||
},
|
||||
"Agent Provider": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Represents the service provider of an agent.",
|
||||
"properties": {
|
||||
"organization": { "default": "", "description": "The name of the agent provider's organization.", "type": "string" },
|
||||
"url": { "default": "", "description": "A URL for the agent provider's website or relevant documentation.", "type": "string" }
|
||||
},
|
||||
"title": "Agent Provider",
|
||||
"type": "object"
|
||||
},
|
||||
"Agent Skill": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Represents a distinct capability or function that an agent can perform.",
|
||||
"properties": {
|
||||
"description": { "default": "", "description": "A detailed description of the skill.", "type": "string" },
|
||||
"examples": { "description": "Example prompts or scenarios that this skill can handle.", "items": { "type": "string" }, "type": "array" },
|
||||
"id": { "default": "", "description": "A unique identifier for the agent's skill.", "type": "string" },
|
||||
"inputModes": { "description": "The set of supported input media types for this skill.", "items": { "type": "string" }, "type": "array" },
|
||||
"name": { "default": "", "description": "A human-readable name for the skill.", "type": "string" },
|
||||
"outputModes": { "description": "The set of supported output media types for this skill.", "items": { "type": "string" }, "type": "array" },
|
||||
"tags": { "description": "A set of keywords describing the skill's capabilities.", "items": { "type": "string" }, "type": "array" }
|
||||
},
|
||||
"title": "Agent Skill",
|
||||
"type": "object"
|
||||
},
|
||||
"Artifact": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Artifacts represent task outputs.",
|
||||
"properties": {
|
||||
"artifactId": { "default": "", "description": "Unique identifier (e.g. UUID) for the artifact. It must be unique within a task.", "type": "string" },
|
||||
"description": { "default": "", "description": "Optional. A human readable description of the artifact.", "type": "string" },
|
||||
"extensions": { "description": "The URIs of extensions that are present or contributed to this Artifact.", "items": { "type": "string" }, "type": "array" },
|
||||
"name": { "default": "", "description": "A human readable name for the artifact.", "type": "string" },
|
||||
"parts": { "description": "The content of the artifact. Must contain at least one part.", "items": { "$ref": "lf.a2a.v1.Part.jsonschema.json" }, "type": "array" }
|
||||
},
|
||||
"title": "Artifact",
|
||||
"type": "object"
|
||||
},
|
||||
"Message": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Message is one unit of communication between client and server. It can be associated with a context and/or a task.",
|
||||
"properties": {
|
||||
"contextId": { "default": "", "description": "Optional. The context id of the message.", "type": "string" },
|
||||
"extensions": { "description": "The URIs of extensions that are present or contributed to this Message.", "items": { "type": "string" }, "type": "array" },
|
||||
"messageId": { "default": "", "description": "The unique identifier (e.g. UUID) of the message.", "type": "string" },
|
||||
"parts": { "description": "Parts is the container of the message content.", "items": { "$ref": "lf.a2a.v1.Part.jsonschema.json" }, "type": "array" },
|
||||
"referenceTaskIds": { "description": "A list of task IDs that this message references for additional context.", "items": { "type": "string" }, "type": "array" },
|
||||
"role": {
|
||||
"anyOf": [
|
||||
{ "pattern": "^ROLE_UNSPECIFIED$", "type": "string" },
|
||||
{ "enum": ["ROLE_USER", "ROLE_AGENT"], "type": "string" },
|
||||
{ "maximum": 2147483647, "minimum": -2147483648, "type": "integer" }
|
||||
],
|
||||
"default": 0,
|
||||
"description": "Identifies the sender of the message.",
|
||||
"title": "Role"
|
||||
},
|
||||
"taskId": { "default": "", "description": "Optional. The task id of the message.", "type": "string" }
|
||||
},
|
||||
"title": "Message",
|
||||
"type": "object"
|
||||
},
|
||||
"Part": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Part represents a container for a section of communication content. Parts can be purely textual, some sort of file (image, video, etc) or a structured data blob (i.e. JSON).",
|
||||
"properties": {
|
||||
"filename": { "default": "", "description": "An optional filename for the file (e.g., \"document.pdf\").", "type": "string" },
|
||||
"mediaType": { "default": "", "description": "The media_type (MIME type) of the part content (e.g., \"text/plain\", \"application/json\", \"image/png\").", "type": "string" },
|
||||
"raw": { "description": "The raw byte content of a file. In JSON serialization, this is encoded as a base64 string.", "pattern": "^[A-Za-z0-9+/]*={0,2}$", "type": "string" },
|
||||
"text": { "description": "The string content of the text part.", "type": "string" },
|
||||
"url": { "description": "A url pointing to the file's content.", "type": "string" }
|
||||
},
|
||||
"title": "Part",
|
||||
"type": "object"
|
||||
},
|
||||
"Task": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Task is the core unit of action for A2A. It has a current status and when results are created for the task they are stored in the artifact.",
|
||||
"properties": {
|
||||
"artifacts": { "description": "A set of output artifacts for a Task.", "items": { "$ref": "lf.a2a.v1.Artifact.jsonschema.json" }, "type": "array" },
|
||||
"contextId": { "default": "", "description": "Unique identifier (e.g. UUID) for the contextual collection of interactions.", "type": "string" },
|
||||
"history": { "description": "The history of interactions from a Task.", "items": { "$ref": "lf.a2a.v1.Message.jsonschema.json" }, "type": "array" },
|
||||
"id": { "default": "", "description": "Unique identifier (e.g. UUID) for the task, generated by the server for a new task.", "type": "string" },
|
||||
"status": { "$ref": "lf.a2a.v1.TaskStatus.jsonschema.json", "description": "The current status of a Task, including state and a message." }
|
||||
},
|
||||
"title": "Task",
|
||||
"type": "object"
|
||||
},
|
||||
"Task Status": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "A container for the status of a task",
|
||||
"properties": {
|
||||
"message": { "$ref": "lf.a2a.v1.Message.jsonschema.json", "description": "A message associated with the status." },
|
||||
"state": {
|
||||
"anyOf": [
|
||||
{ "pattern": "^TASK_STATE_UNSPECIFIED$", "type": "string" },
|
||||
{ "enum": ["TASK_STATE_SUBMITTED", "TASK_STATE_WORKING", "TASK_STATE_COMPLETED", "TASK_STATE_FAILED", "TASK_STATE_CANCELED", "TASK_STATE_INPUT_REQUIRED", "TASK_STATE_REJECTED", "TASK_STATE_AUTH_REQUIRED"], "type": "string" },
|
||||
{ "maximum": 2147483647, "minimum": -2147483648, "type": "integer" }
|
||||
],
|
||||
"default": 0,
|
||||
"description": "The current state of this task.",
|
||||
"title": "Task State"
|
||||
},
|
||||
"timestamp": { "description": "ISO 8601 Timestamp when the status was recorded.", "format": "date-time", "type": "string" }
|
||||
},
|
||||
"title": "Task Status",
|
||||
"type": "object"
|
||||
},
|
||||
"Send Message Request": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Represents a request for the SendMessage method.",
|
||||
"properties": {
|
||||
"configuration": { "$ref": "lf.a2a.v1.SendMessageConfiguration.jsonschema.json", "description": "Configuration for the send request." },
|
||||
"message": { "$ref": "lf.a2a.v1.Message.jsonschema.json", "description": "The message to send to the agent." },
|
||||
"tenant": { "default": "", "description": "Optional. Tenant ID, provided as a path parameter.", "type": "string" }
|
||||
},
|
||||
"title": "Send Message Request",
|
||||
"type": "object"
|
||||
},
|
||||
"Send Message Response": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Represents the response for the SendMessage method.",
|
||||
"properties": {
|
||||
"message": { "$ref": "lf.a2a.v1.Message.jsonschema.json", "description": "A message from the agent." },
|
||||
"task": { "$ref": "lf.a2a.v1.Task.jsonschema.json", "description": "The task created or updated by the message." }
|
||||
},
|
||||
"title": "Send Message Response",
|
||||
"type": "object"
|
||||
},
|
||||
"Security Requirement": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Defines the security requirements for an agent.",
|
||||
"properties": {
|
||||
"schemes": { "additionalProperties": { "$ref": "lf.a2a.v1.StringList.jsonschema.json" }, "description": "A map of security schemes to the required scopes.", "type": "object" }
|
||||
},
|
||||
"title": "Security Requirement",
|
||||
"type": "object"
|
||||
},
|
||||
"Security Scheme": {
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"description": "Defines a security scheme that can be used to secure an agent's endpoints. Based on OpenAPI 3.2 Security Scheme Object.",
|
||||
"properties": {
|
||||
"apiKeySecurityScheme": { "$ref": "lf.a2a.v1.APIKeySecurityScheme.jsonschema.json", "description": "API key-based authentication." },
|
||||
"httpAuthSecurityScheme": { "$ref": "lf.a2a.v1.HTTPAuthSecurityScheme.jsonschema.json", "description": "HTTP authentication (Basic, Bearer, etc.)." },
|
||||
"mtlsSecurityScheme": { "$ref": "lf.a2a.v1.MutualTlsSecurityScheme.jsonschema.json", "description": "Mutual TLS authentication." },
|
||||
"oauth2SecurityScheme": { "$ref": "lf.a2a.v1.OAuth2SecurityScheme.jsonschema.json", "description": "OAuth 2.0 authentication." },
|
||||
"openIdConnectSecurityScheme": { "$ref": "lf.a2a.v1.OpenIdConnectSecurityScheme.jsonschema.json", "description": "OpenID Connect authentication." }
|
||||
},
|
||||
"title": "Security Scheme",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"_source": "https://a2a-protocol.org/latest/spec/a2a.json",
|
||||
"_retrieved": "2026-06-07",
|
||||
"_note": "Condensed from official A2A Protocol JSON Schema bundle v1"
|
||||
}
|
||||
Reference in New Issue
Block a user