google / google/adk-python

to_a2a(): accept a service_url string instead of separate host/port/protocol params

Aperta
#5,060 2 commenti 0 reazioni 2 assegnatari Rivendicata da @ankursharmas Vedi su GitHub
core needs review
Lingua principale
Python
Stelle
21.5k
Fork
4k
Merge medio
1g 22h
PR unite (30g)
31

Descrizione

## Feature request

`to_a2a()` currently requires `host`, `port`, and `protocol` as separate parameters:

```python
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:

```python
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`:

```python
# 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.