google / google/agents-cli

Local deployment template requires ADC and Cloud Logging at import time

Open
#67 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
5.9k
Forks
660
PR merge metrics
No merged PRs in 30d

Description

### Baseline

Reproduced from v1.3.1 at `5a306f8956cb1eeae69f9709de0e4d61b44e11e7`.

### Reproduction

1. Generate an ADK project with `deployment_target: none`.
2. Use an isolated local environment without Application Default Credentials.
3. Import or start the generated `app/fast_api_app.py`.

The generated module unconditionally calls `google.auth.default()`, constructs `google.cloud.logging.Client()`, and always sets `otel_to_cloud=True`.

### Actual behavior

A local-only template needs cloud credentials and a Cloud Logging dependency merely to import/start. This makes the `none` target fail in a normal offline/no-ADC development environment.

### Expected behavior

The local target should use Python stdlib logging and start without ADC. Existing cloud OTEL behavior should remain opt-in through the public `--otel-to-cloud` flag only.

### Minimal fix

- use `logging.getLogger(__name__)` in the local template and remove its Cloud Logging dependency;
- pass a private child-only `AGENTS_CLI_OTEL_TO_CLOUD=1` value only when `--otel-to-cloud` is explicitly set;
- remove any inherited copy of that private variable when the option is off;
- read the private flag before loading project `.env` files, accepting only the exact value `1`.

Reference implementation: https://github.com/benagentai93-dot/agents-cli/commit/d888f8db85d05e7bb4ed92c711045a246c00b537

### Test evidence

Runnable regressions cover dependency output, import without ADC, exact opt-in behavior, inherited-environment removal, explicit child propagation, and the existing ADK fallback flag.

Fork verification on Python 3.11/3.13:

- focused Batch 1 suite: 17 passed
- full root suite: 19 passed
- lint, type check, build, and installed-wheel smoke: passed

Contributor guide

Open the contributing guide

Research direction

Generate an ADK project with deployment_target: none, then inspect app/fast_api_app.py and import it in an isolated environment without Application Default Credentials. Trace the --otel-to-cloud entry point and child environment handling, then run the reported regression suite; done means local startup needs no ADC or Cloud Logging, while exact opt-in propagation and existing fallback behavior remain covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
google-cloud, python
Domain
cli, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.