Skip to main content
The A2A protocol uses types from the a2a-sdk package for agent-to-agent communication. These types follow the A2A protocol v0.3.0 specification.

Core Types

JSONRPCRequest

Represents a JSON-RPC request in the A2A protocol.
Fields:
  • id - Unique identifier for the request
  • method - The RPC method to call (e.g., “message/send”, “message/stream”)
  • params - Parameters for the method
  • jsonrpc - Protocol version (“2.0”)

JSONRPCResponse

Represents a JSON-RPC response.
Fields:
  • id - Request identifier this response corresponds to
  • result - The result data (if successful)
  • error - Error information (if failed)
  • jsonrpc - Protocol version (“2.0”)

JSONRPCError

Represents an error in a JSON-RPC response.
Fields:
  • code - Numeric error code
  • message - Human-readable error message
  • data - Additional error details (optional)

AgentCard

The agent card manifest that describes the agent’s capabilities.
Fields:
  • name - Agent name
  • description - Agent description
  • url - Agent base URL
  • version - Agent version
  • skills - List of agent skills
  • capabilities - Supported capabilities
  • additionalInterfaces - Additional communication interfaces
  • securitySchemes - Authentication schemes
  • security - Security requirements
  • defaultInputModes - Default input content types
  • defaultOutputModes - Default output content types
  • supportsAuthenticatedExtendedCard - Whether extended card is supported
  • signatures - Cryptographic signatures

AgentSkill

Describes a specific skill or capability the agent can perform.
Fields:
  • name - Skill identifier
  • description - Skill description
  • tags - Categorization tags (optional)
  • examples - Usage examples (optional)

AgentCapabilities

Describes the technical capabilities supported by the agent.
Fields:
  • streaming - Whether the agent supports streaming responses
  • statefulness - Whether the agent maintains conversation state
  • asyncProcessing - Whether the agent supports asynchronous task processing

SendStreamingMessageRequest

A specialized request type for streaming messages.
Extends JSONRPCRequest with streaming-specific parameters.

Task

Represents an asynchronous task.
Fields:
  • id - Task identifier
  • status - Current task status
  • state - Task state information
  • created - Creation timestamp
  • updated - Last update timestamp

TaskState

Enum representing task state values.
Values:
  • pending - Task is queued
  • working - Task is in progress
  • completed - Task finished successfully
  • failed - Task encountered an error
  • cancelled - Task was cancelled

TaskStatus

Represents the current status details of a task.
Fields:
  • state - Current task state (TaskState)
  • progress - Progress percentage (0-100, optional)
  • message - Status message (optional)

Usage Example

Import Path

Source: /home/daytona/workspace/source/src/agentor/a2a.py:4
Last modified on May 5, 2026