AgentCard

data class AgentCard(val protocolVersion: String = "0.3.0", val name: String, val description: String? = null, val url: String, val preferredTransport: Transport = Transport.JSONRPC, val additionalInterfaces: List<AgentInterface>? = null, val iconUrl: String? = null, val provider: AgentProvider? = null, val version: String, val documentationUrl: String? = null, val capabilities: AgentCapabilities, val defaultInputModes: List<String>, val defaultOutputModes: List<String>, val skills: List<AgentSkill>, val security: List<Map<String, List<String>>>? = null, val securitySchemes: Map<String, SecurityScheme>? = null, val signatures: List<AgentCardSignature>? = null, val supportsAuthenticatedExtendedCard: Boolean = false)(source)

The AgentCard is a self-describing manifest for an agent. It provides essential metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements.

See also

Constructors

Link copied to clipboard
constructor(protocolVersion: String = "0.3.0", name: String, description: String? = null, url: String, preferredTransport: Transport = Transport.JSONRPC, additionalInterfaces: List<AgentInterface>? = null, iconUrl: String? = null, provider: AgentProvider? = null, version: String, documentationUrl: String? = null, capabilities: AgentCapabilities, defaultInputModes: List<String>, defaultOutputModes: List<String>, skills: List<AgentSkill>, security: List<Map<String, List<String>>>? = null, securitySchemes: Map<String, SecurityScheme>? = null, signatures: List<AgentCardSignature>? = null, supportsAuthenticatedExtendedCard: Boolean = false)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
@SerialName(value = "additionalInterfaces")
val additionalInterfaces: List<AgentInterface>?

A list of additional supported interfaces (transport and URL combinations). This allows agents to expose multiple transports, potentially at different URLs.

Link copied to clipboard
@SerialName(value = "capabilities")
val capabilities: AgentCapabilities

A declaration of optional capabilities supported by the agent.

Link copied to clipboard
@SerialName(value = "defaultInputModes")
val defaultInputModes: List<String>

Default set of supported input MIME types for all skills, which can be overridden on a per-skill basis.

Link copied to clipboard
@SerialName(value = "defaultOutputModes")
val defaultOutputModes: List<String>

Default set of supported output MIME types for all skills, which can be overridden on a per-skill basis.

Link copied to clipboard
@SerialName(value = "description")
val description: String?

A human-readable description of the agent, assisting users and other agents in understanding its purpose.

Link copied to clipboard
@SerialName(value = "documentationUrl")
val documentationUrl: String?

An optional URL to the agent's documentation.

Link copied to clipboard
@SerialName(value = "iconUrl")
val iconUrl: String?

An optional URL to an icon for the agent.

Link copied to clipboard
@SerialName(value = "name")
val name: String

A human-readable name for the agent.

Link copied to clipboard
@SerialName(value = "preferredTransport")
val preferredTransport: Transport

The transport protocol for the preferred endpoint (the main 'url' field). If not specified, defaults to 'JSONRPC'.

Link copied to clipboard
@SerialName(value = "protocolVersion")
val protocolVersion: String

The version of the A2A protocol this agent supports. Defaults to "0.3.0".

Link copied to clipboard
@SerialName(value = "provider")
val provider: AgentProvider?

Information about the agent's service provider.

Link copied to clipboard
@SerialName(value = "security")
val security: List<Map<String, List<String>>>?

A list of security requirement objects that apply to all agent interactions. Each object lists security schemes that can be used. Follows the OpenAPI 3.0 Security Requirement Object. This list can be seen as an OR of ANDs. Each object in the list describes one possible set of security requirements that must be present on a request. This allows specifying, for example, "callers must either use OAuth OR an API Key AND mTLS."

Link copied to clipboard
@SerialName(value = "securitySchemes")
val securitySchemes: Map<String, SecurityScheme>?

A declaration of the security schemes available to authorize requests. The key is the scheme name. Follows the OpenAPI 3.0 Security Scheme Object.

Link copied to clipboard
@SerialName(value = "signatures")
val signatures: List<AgentCardSignature>?

JSON Web Signatures computed for this AgentCard.

Link copied to clipboard
@SerialName(value = "skills")
val skills: List<AgentSkill>

The set of skills, or distinct capabilities, that the agent can perform.

Link copied to clipboard
@SerialName(value = "supportsAuthenticatedExtendedCard")
val supportsAuthenticatedExtendedCard: Boolean

If true, the agent can provide an extended agent card with additional details to authenticated users. Defaults to false.

Link copied to clipboard
@SerialName(value = "url")
val url: String

The preferred endpoint URL for interacting with the agent. This URL MUST support the transport specified by 'preferredTransport'.

Link copied to clipboard
@SerialName(value = "version")
val version: String

The agent's own version number. The format is defined by the provider.