Feature request
to_a2a() currently requires host, port, and protocol as separate parameters:
app = to_a2a(
root_agent,
host="localhost",
port=8002,
protocol="http",
runner=_create_runner,
agent_card=agent_card,
)
In practice, the service URL is typically available as a single string (e.g. SERVICE_URL=http://localhost:8002 for local dev, or https://my-agent.europe-west1.run.app on Cloud Run). This forces every consumer to manually parse the URL with urlparse() to extract the three components:
parsed = urlparse(settings.SERVICE_URL)
protocol = parsed.scheme or "http"
host = parsed.hostname or "localhost"
port = parsed.port or (443 if protocol == "https" else 80)
Proposal
Accept an optional service_url parameter as an alternative to host/port/protocol:
# New — single URL string
app = to_a2a(root_agent, service_url="http://localhost:8002", ...)
# Existing — still works
app = to_a2a(root_agent, host="localhost", port=8002, protocol="http", ...)
This would reduce boilerplate for Cloud Run, Kubernetes, and any deployment where the URL comes from an environment variable.
Feature request
to_a2a()currently requireshost,port, andprotocolas separate parameters:In practice, the service URL is typically available as a single string (e.g.
SERVICE_URL=http://localhost:8002for local dev, orhttps://my-agent.europe-west1.run.appon Cloud Run). This forces every consumer to manually parse the URL withurlparse()to extract the three components:Proposal
Accept an optional
service_urlparameter as an alternative tohost/port/protocol:This would reduce boilerplate for Cloud Run, Kubernetes, and any deployment where the URL comes from an environment variable.