pub struct AgentCard {
pub name: String,
pub description: String,
pub url: String,
pub version: String,
pub protocol_version: String,
pub provider: Option<AgentProvider>,
pub capabilities: AgentCapabilities,
pub default_input_modes: Vec<String>,
pub default_output_modes: Vec<String>,
pub skills: Vec<AgentSkill>,
}Expand description
Capability advertisement document served at /.well-known/agent.json.
AgentCard describes an agent’s identity, endpoint, skills, and protocol capabilities.
It is the primary discovery mechanism — callers fetch the card before sending messages.
Prefer constructing cards via AgentCardBuilder to get correct
defaults (including the current A2A_PROTOCOL_VERSION).
§Examples
use zeph_a2a::AgentCardBuilder;
let card = AgentCardBuilder::new("my-agent", "http://localhost:8080", "0.1.0")
.description("An AI assistant")
.streaming(true)
.build();
assert_eq!(card.name, "my-agent");
assert!(card.capabilities.streaming);Fields§
§name: StringHuman-readable agent name.
description: StringShort description of the agent’s purpose.
url: StringBase URL of the A2A endpoint (without path suffix).
version: StringAgent software version string (semver recommended).
protocol_version: StringA2A protocol version the agent implements (see A2A_PROTOCOL_VERSION).
provider: Option<AgentProvider>Optional organization that built or operates the agent.
capabilities: AgentCapabilitiesFlags indicating which A2A capabilities the agent supports.
default_input_modes: Vec<String>MIME types or mode identifiers the agent accepts as input (e.g., "text/plain").
default_output_modes: Vec<String>MIME types or mode identifiers the agent can produce as output.
skills: Vec<AgentSkill>Discrete skills the agent exposes, each with its own examples and mode overrides.