From 9f4084b98654425e80ea60620e57b2bbe33dd815 Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Thu, 14 Aug 2025 08:06:40 -0700 Subject: [PATCH] feat: Add `--extra_packages` option to `adk deploy agent_engine` PiperOrigin-RevId: 795043180 --- src/google/adk/cli/cli_deploy.py | 10 +++++++++- src/google/adk/cli/cli_tools_click.py | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/google/adk/cli/cli_deploy.py b/src/google/adk/cli/cli_deploy.py index e3b4661e9..3a7c6ec66 100644 --- a/src/google/adk/cli/cli_deploy.py +++ b/src/google/adk/cli/cli_deploy.py @@ -262,6 +262,7 @@ def to_agent_engine( description: Optional[str] = None, requirements_file: Optional[str] = None, env_file: Optional[str] = None, + extra_packages: Optional[list[str]] = None, ): """Deploys an agent to Vertex AI Agent Engine. @@ -306,6 +307,8 @@ def to_agent_engine( If not specified, the `.env` file in the `agent_folder` will be used. The values of `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` will be overridden by `project` and `region` if they are specified. + extra_packages (list[str]): Any additional packages to install. Default is + None. """ app_name = os.path.basename(agent_folder) agent_src_path = os.path.join(temp_folder, app_name) @@ -435,13 +438,18 @@ def to_agent_engine( sys_paths=[temp_folder[1:]], agent_framework='google-adk', ) + if extra_packages: + extra_packages = list(extra_packages) + extra_packages.append(temp_folder) + else: + extra_packages = [temp_folder] agent_config = dict( agent_engine=agent_engine, requirements=requirements_file, display_name=display_name, description=description, env_vars=env_vars, - extra_packages=[temp_folder], + extra_packages=extra_packages, ) if not agent_engine_id: diff --git a/src/google/adk/cli/cli_tools_click.py b/src/google/adk/cli/cli_tools_click.py index 13a0a620a..512d6a61d 100644 --- a/src/google/adk/cli/cli_tools_click.py +++ b/src/google/adk/cli/cli_tools_click.py @@ -1141,6 +1141,11 @@ def cli_deploy_cloud_run( " NOTE: This flag is temporary and will be removed in the future." ), ) +@click.option( + "--extra_packages", + help="Optional. Any additional packages to install.", + multiple=True, +) @click.argument( "agent", type=click.Path( @@ -1161,6 +1166,7 @@ def cli_deploy_agent_engine( env_file: str, requirements_file: str, absolutize_imports: bool, + extra_packages: Optional[list[str]], ): """Deploys an agent to Agent Engine. @@ -1184,6 +1190,7 @@ def cli_deploy_agent_engine( env_file=env_file, requirements_file=requirements_file, absolutize_imports=absolutize_imports, + extra_packages=extra_packages, ) except Exception as e: click.secho(f"Deploy failed: {e}", fg="red", err=True)