to_a2a(): accept a service_url string instead of separate host/port/protocol params
- Vorherrschende Sprache
- Python
- Sterne
- 21.5k
- Forks
- 4k
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 37
Beschreibung
## 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.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.