A2aEngine.Types.AgentCard (a2a_engine v0.1.0)

Copy Markdown View Source

Self-describing manifest for an A2A agent.

Served at /.well-known/agent.json (single-agent host) or /.well-known/agents/<name>.json (multi-agent host).

Required wire fields

  • name, description, version, protocolVersion, url
  • capabilities, skills
  • defaultInputModes, defaultOutputModes

Optional wire fields

  • preferredTransport (defaults to "JSONRPC")
  • additionalInterfaces — list of alternate (transport, url) pairs
  • provider — org info
  • documentationUrl, iconUrl
  • security, securitySchemes — OpenAPI-style declarations (passed through as opaque maps; not modelled as structs)
  • signatures — JWS signatures over the card (opaque)
  • supportsAuthenticatedExtendedCard (bool)

Summary

Types

t()

@type t() :: %A2aEngine.Types.AgentCard{
  additional_interfaces: [A2aEngine.Types.AgentInterface.t()] | nil,
  capabilities: A2aEngine.Types.AgentCapabilities.t(),
  default_input_modes: [String.t()],
  default_output_modes: [String.t()],
  description: String.t(),
  documentation_url: String.t() | nil,
  icon_url: String.t() | nil,
  name: String.t(),
  preferred_transport: String.t() | nil,
  protocol_version: String.t(),
  provider: A2aEngine.Types.AgentProvider.t() | nil,
  security: [map()] | nil,
  security_schemes: map() | nil,
  signatures: [map()] | nil,
  skills: [A2aEngine.Types.AgentSkill.t()],
  supports_authenticated_extended_card: boolean() | nil,
  url: String.t(),
  version: String.t()
}

Functions

from_map(m)

@spec from_map(map()) :: {:ok, t()} | {:error, term()}

to_map(c)

@spec to_map(t()) :: map()