Claudio.A2A.AgentCard (Claudio v0.5.0)

View Source

A2A Agent Card — describes an agent's identity, capabilities, and skills.

Discoverable at {base_url}/.well-known/agent-card.json.

Parsing a discovered agent card

{:ok, card} = Claudio.A2A.Client.discover("https://agent.example.com")
card.name       # "My Agent"
card.skills     # [%Skill{id: "search", ...}]

Building an agent card

AgentCard.new("My Agent", "Helps with tasks")
|> AgentCard.set_version("1.0.0")
|> AgentCard.set_provider("https://example.com", "My Org")
|> AgentCard.add_skill("search", "Search the web", tags: ["search", "web"])
|> AgentCard.add_interface("https://agent.example.com/a2a", "jsonrpc+http", "0.3")
|> AgentCard.set_capabilities(streaming: true, push_notifications: false)

Summary

Types

t()

@type t() :: %Claudio.A2A.AgentCard{
  capabilities: Claudio.A2A.AgentCard.Capabilities.t() | nil,
  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(),
  provider: Claudio.A2A.AgentCard.Provider.t() | nil,
  security_requirements: list() | nil,
  security_schemes: map() | nil,
  signatures: list() | nil,
  skills: [Claudio.A2A.AgentCard.Skill.t()],
  supported_interfaces: [Claudio.A2A.AgentCard.Interface.t()],
  version: String.t() | nil
}

Functions

add_interface(card, url, protocol_binding, protocol_version)

@spec add_interface(t(), String.t(), String.t(), String.t()) :: t()

add_skill(card, id, description, opts \\ [])

@spec add_skill(t(), String.t(), String.t(), keyword()) :: t()

from_map(map)

@spec from_map(map()) :: t()

new(name, description)

@spec new(String.t(), String.t()) :: t()

Create a new agent card.

set_capabilities(card, opts)

@spec set_capabilities(
  t(),
  keyword()
) :: t()

set_provider(card, url, organization)

@spec set_provider(t(), String.t(), String.t()) :: t()

set_version(card, version)

@spec set_version(t(), String.t()) :: t()

to_map(card)

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