Skip to content

[bug] Fresh pip install google-adk per docs leaves adk web without the chat UI (undeclared deps: google-cloud-storage, python-multipart) #5787

@mautomo

Description

@mautomo

[bug] Fresh pip install google-adk per docs leaves adk web without the chat UI (undeclared deps: google-cloud-storage, python-multipart)

TL;DR

Following the official install instructions at https://adk.dev/get-started/installation/ (just pip install google-adk) on Python 3.13 produces a working adk run CLI but a silently degraded adk web: the API server starts, but the dev chat UI is unreachable because DevServer fails to import on missing transitive deps that aren't declared in the core install.

Two undeclared runtime deps for the dev server:

  1. google-cloud-storage — only declared under [gcp], [all], and [test] extras (METADATA lines 58, 117, 148), but imported unconditionally by google.adk.cli.dev_servergoogle.adk.cli.utils.evalsgoogle.adk.evaluation.gcs_eval_set_results_manager.
  2. python-multipart — declared nowhere in METADATA, but needed for the Builder UI endpoints.

Reproduction

# Fresh venv, Python 3.13.7 (uv-managed)
uv init adk-repro --python 3.13
cd adk-repro
uv add google-adk      # matches the official docs verbatim
# Create a minimal agent at agents/demo/{__init__.py, agent.py}
uv run adk web agents --port 8000

Expected

Per the README and AGENTS.md (adk web is described as "Launch web UI (recommended for development)"), opening http://127.0.0.1:8000 should show the chat UI bundled at /dev-ui/.

Actual

Server starts but logs:

WARNING - fast_api.py:525 - DevServer not found, falling back to ApiServer. Dev-only endpoints will not be available.
WARNING - fast_api.py:79  - python-multipart not installed. Builder UI endpoints will not be available.

GET / returns 307 → /dev-ui/ but /dev-ui/ 404s because the static assets are served by DevServer, which never got mounted.

The underlying import error (visible by reproducing from google.adk.cli.dev_server import DevServer directly):

ModuleNotFoundError: No module named 'google.cloud'
  File ".../google/adk/cli/dev_server.py", line 69, in <module>
    from .utils import evals
  File ".../google/adk/cli/utils/evals.py", line 25, in <module>
    from ...evaluation.gcs_eval_set_results_manager import GcsEvalSetResultsManager
  File ".../google/adk/evaluation/gcs_eval_set_results_manager.py", line 19, in <module>
    from google.cloud import exceptions as cloud_exceptions

Workaround

uv add google-cloud-storage python-multipart

Confirmed: with both installed, DevServer imports cleanly and /dev-ui/ serves the 55KB SPA. No other code changes needed.

Proposed fixes (pick one)

  1. Move google-cloud-storage and python-multipart to core Requires-Dist. Smallest change, matches what adk web already promises out of the box. ~50KB install bump for python-multipart; google-cloud-storage pulls a heavier tail but most ADK users hit it eventually via Vertex / GCS sessions anyway.
  2. Lazy-import the GCS eval manager inside google.adk.cli.utils.evals (and downstream evaluation.gcs_eval_set_results_manager) so DevServer doesn't crash when google-cloud-storage isn't present. Pair with adding python-multipart to core, or a new [web] extra. Best behavior: full UI on minimal install, GCS-backed eval sets gated behind [gcp].
  3. Document the extras requirement. Update https://adk.dev/get-started/installation/ to say pip install "google-adk[gcp]" python-multipart (or similar) is required for adk web. Lowest engineering cost, but a fresh-install user still hits the silent fallback unless they read carefully.

Option 2 seems closest to the existing extras architecture intent — the [gcp] extra exists for a reason, and the dev server hard-importing GCS-backed eval state defeats the split.

Environment

  • OS: Windows 11 (10.0.26200)
  • Python: 3.13.7 (uv-managed)
  • google-adk: 2.0.0 (PyPI wheel)
  • uv: 0.11.15
  • Reproduced both via uv add google-adk and pip install google-adk in a venv.

Related

Not filed separately because

Metadata

Metadata

Assignees

Labels

web[Component] This issue will be transferred to adk-web

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions