ADK Project Scaffolding Guide
Requires:
agents-cli
(
uv tool install google-agents-cli
) —
install uv
first if needed.
Use the
agents-cli
CLI to create new ADK agent projects or enhance existing ones with deployment, CI/CD, and infrastructure scaffolding.
Prerequisite: Clarify Requirements (MANDATORY for new projects)
Before scaffolding a new project, load
/google-agents-cli-workflow
and complete Phase 0
— clarify the user's requirements before running any
scaffold create
command. Ask what the agent should do, what tools/APIs it needs, and whether they want a prototype or full deployment.
Step 1: Choose Architecture
Mapping user choices to CLI flags:
Choice
CLI flag
RAG with vector search
--agent agentic_rag --datastore agent_platform_vector_search
RAG with document search
--agent agentic_rag --datastore agent_platform_search
A2A protocol
--agent adk_a2a
Prototype (no deployment)
--prototype
Deployment target
--deployment-target
\ --agent < template
\ --deployment-target < target
\ --region < region
\ --prototype Constraints: Project name must be 26 characters or less , lowercase letters, numbers, and hyphens only. Do NOT mkdir the project directory before running create — the CLI creates it automatically. If you mkdir first, create will fail or behave unexpectedly. Auto-detect the guidance filename based on the IDE you are running in and pass --agent-guidance-filename accordingly ( GEMINI.md for Gemini CLI, CLAUDE.md for Claude Code, AGENTS.md for OpenAI Codex/other). When enhancing an existing project, check where the agent code lives. If it's not in app/ , pass --agent-directory
(e.g. --agent-directory agent ). Getting this wrong causes enhance to miss or misplace files. Reference Files File Contents references/flags.md Full flag reference for create and enhance commands Enhance an Existing Project agents-cli scaffold enhance . --deployment-target < target agents-cli scaffold enhance . --cicd-runner < runner
Run this from inside the project directory (or pass the path instead of . ). Upgrade a Project Upgrade an existing project to a newer agents-cli version, intelligently applying updates while preserving your customizations: agents-cli scaffold upgrade
Upgrade current directory
agents-cli scaffold upgrade < project-path
Upgrade specific project
agents-cli scaffold upgrade --dry-run
Preview changes without applying
agents-cli scaffold upgrade --auto-approve
Auto-apply non-conflicting changes
Execution Modes The CLI defaults to strict programmatic mode — all required params must be supplied as CLI flags or a UsageError is raised. No approval flags needed. Pass all required params explicitly. Common Workflows Always ask the user before running these commands. Present the options (CI/CD runner, deployment target, etc.) and confirm before executing.
Add deployment to an existing prototype (strict programmatic)
agents-cli scaffold enhance . --deployment-target agent_runtime
Add CI/CD pipeline (ask: GitHub Actions or Cloud Build?)
agents-cli scaffold enhance . --cicd-runner github_actions Template Options Template Deployment Description adk Agent Runtime, Cloud Run, GKE Standard ADK agent (default) adk_a2a Agent Runtime, Cloud Run, GKE Agent-to-agent coordination (A2A protocol) agentic_rag Agent Runtime, Cloud Run, GKE RAG with data ingestion pipeline Deployment Options Target Description agent_runtime Managed by Google (Vertex AI Agent Runtime). Sessions handled automatically. cloud_run Container-based deployment. More control, requires Dockerfile. gke Container-based on GKE Autopilot. Full Kubernetes control. none No deployment scaffolding. Code only. "Prototype First" Pattern (Recommended) Start with --prototype to skip CI/CD and Terraform. Focus on getting the agent working first, then add deployment later with scaffold enhance :
Step 1: Create a prototype
agents-cli scaffold create my-agent --agent adk --prototype
Step 2: Iterate on the agent code...
Step 3: Add deployment when ready
agents-cli scaffold enhance . --deployment-target agent_runtime Agent Runtime and session_type When using agent_runtime as the deployment target, Agent Runtime manages sessions internally. If your code sets a session_type`, clear it — Agent Runtime overrides it. Step 3: Load Dev Workflow After scaffolding, save DESIGN_SPEC.md to the project root if it isn't there already. Then immediately load /google-agents-cli-workflow — it contains the development workflow, coding guidelines, and operational rules you must follow when implementing the agent. Key files to customize: app/agent.py (instruction, tools, model), app/tools.py (custom tool functions), .env (project ID, location, API keys). Files to preserve: pyproject.toml [tool.agents-cli] section (CLI reads this), deployment configs under deployment/ , Makefile , app/init.py (the App(name=...) must match the directory name — default app ). RAG projects ( agentic_rag ) — provision datastore first: Before running agents-cli playground or testing your RAG agent, you must provision the datastore and ingest data: agents-cli infra datastore
Provision datastore infrastructure
agents-cli data-ingestion
Ingest data into the datastore
Use
infra datastore
—
not
infra single-project
. Both provision the datastore, but
infra datastore
is faster because it skips unrelated Terraform. Without this step, the agent won't have data to search over.
Vector Search region:
vector_search_location
defaults to
us-central1
, separate from
region
(
us-east1
). It sets both the Vector Search collection region and the BQ ingestion dataset region, kept colocated to avoid cross-region data movement. Override per-invocation with
agents-cli data-ingestion --vector-search-location