You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- fix: drain npx stderr concurrently to avoid pipe-buffer deadlock
19
+
- docs: codify recurring review feedback in agent guidance
20
+
- Clean up remaining adk_live stuff
21
+
5
22
## [0.4.0] - 2026-06-10
6
23
- Scaffolded Python templates now use **ADK 2.0 GA**. New `adk`, `adk_a2a`, and `agentic_rag` projects pin `google-adk[gcp]>=2.0.0,<3.0.0`; the `[gcp]` extra restores the OpenTelemetry GCP exporters and bundles the BigQuery client, so the separate `[bigquery-analytics]` extra is no longer needed. Cloud SQL sessions on Cloud Run and GKE keep working under 2.0. The bundled ADK coding skill and its reference docs were refreshed for 2.0.
Copy file name to clipboardExpand all lines: docs/src/guide/lifecycle.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ The loop expands to eight phases when you walk through it slowly. Each phase has
48
48
49
49
### 0 · Spec
50
50
51
-
A `.agents-cli-spec.md` names the agent's tools, constraints, and success criteria. The whole rest of the lifecycle reads from it: the scaffold flags, the eval rubrics, the safety guardrails, the trace attributes you'll watch in production. Don't start from blank — browse [Agent Garden](https://cloud.google.com/products/agent-garden) for an existing template close to what you want, then customize.
51
+
A `.agents-cli-spec.md` names the agent's tools, constraints, and success criteria. The whole rest of the lifecycle reads from it: the scaffold flags, the eval rubrics, the safety guardrails, the trace attributes you'll watch in production. Don't start from blank — browse [Agent Garden](https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/agent-garden) for an existing template close to what you want, then customize.
Copy file name to clipboardExpand all lines: skills/google-agents-cli-deploy/SKILL.md
+29-2Lines changed: 29 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ description: >
12
12
metadata:
13
13
author: Google
14
14
license: Apache-2.0
15
-
version: 0.4.0
15
+
version: 0.5.0
16
16
requires:
17
17
bins:
18
18
- agents-cli
@@ -101,14 +101,20 @@ agents-cli infra single-project
101
101
|`--project`| GCP project ID | All |
102
102
|`--region`| GCP region | All |
103
103
|`--service-account`| Service account email for the deployed agent | All |
104
+
|`--service-name`| Override the deployed service name (Cloud Run service or Agent Runtime display name); defaults to the project name. If you override it, consider updating your Terraform and CI (if present) — they name resources from the project name. Not supported for GKE, whose names are fully owned by Terraform. | Agent Runtime, Cloud Run |
104
105
|`--secrets`| Comma-separated `ENV=SECRET` or `ENV=SECRET:VERSION` pairs | Agent Runtime, Cloud Run |
@@ -126,6 +132,27 @@ Run `agents-cli deploy --help` for the full flag reference.
126
132
127
133
---
128
134
135
+
## Sizing a deployment
136
+
137
+
Defaults (same on Agent Runtime, Cloud Run, and the generated `service.tf`): `--cpu 1`, `--memory 4Gi`, `--num-workers 1`, `--concurrency 8`, `--min-instances 1`, `--max-instances 10`.
138
+
139
+
The params are coupled — scale them together:
140
+
141
+
-**Workers = vCPUs.** Each worker is one GIL-bound process that saturates one core, so raise `--num-workers` with `--cpu` (e.g. `--cpu 4` → `--num-workers 4`) or you pay for idle cores.
142
+
-**Memory bounds concurrency.** Each concurrent request keeps its full working set (context window, history, RAG chunks, response buffer) in memory while it waits on the model, so peak ≈ base + `concurrency × per-request memory`. Memory — not CPU — is the first limit, so raising `--concurrency` without `--memory` is the main OOM cause.
143
+
-**Concurrency default is conservative.** An async worker can serve many concurrent requests while it waits on the model, but per-request memory is agent-specific, so `8` protects a memory-heavy (RAG/multimodal) agent. Light agents can raise it to 16–32+ after load-testing. See [Underutilized asynchronous workers](https://docs.cloud.google.com/gemini-enterprise-agent-platform/scale/runtime/optimize-and-scale#underutilized-workers).
**Tune with the scaffolded load test** (`tests/load_test/`, run locally or in the CI/CD staging pipeline): drive load, watch *max* latency and memory/OOM restarts, then adjust — high max latency → raise concurrency (+ workers/cpu); OOM → raise memory or lower concurrency.
151
+
152
+
> `--num-workers` is Agent-Runtime-only (Cloud Run runs one uvicorn process). On **GKE** these flags are rejected — size via the Terraform manifests + HorizontalPodAutoscaler under `deployment/terraform/`.
153
+
154
+
---
155
+
129
156
## Production Deployment — CI/CD Pipeline
130
157
131
158
For the full CI/CD pipeline setup guide — prerequisites, `infra cicd` flags, runner comparison, WIF authentication, pipeline stages, and production approval — see `references/cicd-pipeline.md`.
Copy file name to clipboardExpand all lines: skills/google-agents-cli-deploy/references/cicd-pipeline.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ The pipeline has three stages:
73
73
74
74
1.**CI (PR checks)** — Triggered on pull request. Runs unit and integration tests.
75
75
2.**Staging CD** — Triggered on merge to `main`. Builds container, deploys to staging, runs load tests.
76
-
> **Path filter:** Staging CD uses `paths: ['app/**']` — it only triggers when files under `app/` change. The first push after `infra cicd` won't trigger staging CD unless you modify something in `app/`. If nothing happens after pushing, this is why.
76
+
> **Path filter:** Staging CD only triggers when relevant paths change — the agent directory (`app/**` by default), `data_ingestion/**`, `tests/**`, `deployment/**`, or `uv.lock`. The first push after `infra cicd` won't trigger staging CD unless one of these changes. If nothing happens after pushing, this is why.
77
77
3.**Production CD** — Triggered after successful staging deploy via `workflow_run`. Might require **manual approval** before deploying to production.
78
78
> **Approving:** Go to GitHub Actions → the production workflow run → click "Review deployments" → approve the pending `production` environment. This is GitHub's environment protection rules, not a custom mechanism.
Copy file name to clipboardExpand all lines: skills/google-agents-cli-deploy/references/cloud-run.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,12 @@
4
4
5
5
## Scaling & Resource Defaults
6
6
7
-
Agents CLI scaffolds Cloud Run infrastructure in `deployment/terraform/service.tf`. Check that file for current resource limits, scaling configuration, concurrency, and session affinity settings.
7
+
Agents CLI scaffolds Cloud Run infrastructure in `deployment/terraform/single-project/service.tf` (and the `cicd/` variant). Check that file for current resource limits, scaling configuration, concurrency, and session affinity settings.
8
8
9
9
Key settings to be aware of: `cpu_idle` (CPU allocation strategy), `min_instance_count` (cold start avoidance), `max_instance_request_concurrency` (concurrency per instance), and `session_affinity` (sticky routing).
10
10
11
+
For how to size cpu/memory/workers/concurrency together (and avoid OOM), see **Sizing a deployment** in the `/google-agents-cli-deploy` skill.
12
+
11
13
## Dockerfile
12
14
13
15
Scaffolded projects include a `Dockerfile` using single-stage build with `uv` for dependency management. Check the project root `Dockerfile` for the exact configuration.
@@ -24,7 +26,7 @@ Available endpoints vary by project template. Check `app/fast_api_app.py` for th
24
26
|**Cloud SQL**|`--session-type cloud_sql` at scaffold time | Production persistent sessions (Postgres 15, IAM auth) |
25
27
|**Agent Runtime**|`session_service_uri = agentengine://{resource_name}`| When using Agent Runtime as session backend |
26
28
27
-
Cloud SQL session infrastructure (instance, database, Cloud SQL Unix socket volume mount) is configured in `deployment/terraform/service.tf`.
29
+
Cloud SQL session infrastructure (instance, database, Cloud SQL Unix socket volume mount) is configured in `deployment/terraform/single-project/service.tf`.
28
30
29
31
> **Manual Deployment Warning:** When using Cloud SQL without Terraform (e.g., direct `gcloud run deploy` with `--add-cloudsql-instances`), you MUST manually grant `roles/cloudsql.client` to the runtime service account, otherwise the connection will fail with authorization errors.
Copy file name to clipboardExpand all lines: skills/google-agents-cli-deploy/references/gke.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ All Kubernetes resources are managed by Terraform in `deployment/terraform/cicd/
26
26
27
27
## Terraform Infrastructure
28
28
29
-
GKE infrastructure is provisioned in `deployment/terraform/service.tf`. Check that file for current configuration.
29
+
GKE infrastructure is provisioned in `deployment/terraform/single-project/service.tf`. Check that file for current configuration.
30
30
31
31
Key differences from Cloud Run: Terraform provisions a full networking stack (VPC, subnet, Cloud NAT for private node internet access) and a GKE Autopilot cluster with private nodes. Cloud SQL (optional, when `session_type == "cloud_sql"`) uses a proxy sidecar in the pod rather than Cloud Run's Unix socket volume mount.
0 commit comments