build_card
autogen.beta.a2a.card.build_card #
build_card(agent, *, url, transports=('jsonrpc',), rest_url=None, rest_path_prefix='', grpc_url=None, version=_DEFAULT_VERSION, description=None, push_notifications=False, skills=None, security=(), provider=None, documentation_url=None, icon_url=None, tenants=None)
Construct an AgentCard describing an AG2 agent for A2A discovery.
Always declares the urn:ag2:client-tools:v1 extension as required=False — the server can transparently fall back to a plain text exchange when the client doesn't speak the extension.
supported_interfaces is built from transports — one AgentInterface per enabled binding. JSON-RPC URL is url; REST URL defaults to url + rest_path_prefix (same host:port, different path) but can be overridden via rest_url when REST lives on a different host:port; gRPC lives on its own grpc_url.
When skills is supplied, it replaces all auto-detection. When it is None, build_card walks agent.tools for any :class:SkillsToolkit and publishes its agentskills.io-style local skills as AgentSkill entries; if none are found, falls back to a single skill derived from agent.name / agent._system_prompt so the card stays spec-compliant.
security is a sequence of :class:Requirement objects built via require(scheme, ...). Each entry is an AND-set of schemes; the list itself is OR-ed (any one requirement suffices). Underlying security_schemes on the card are auto-derived from the schemes referenced in security — no duplicate declarations needed. tenants maps a transport name to a tenant string surfaced on the corresponding AgentInterface.tenant.