From e32f120384b04ecceabeb6f872f4934c3d9d7279 Mon Sep 17 00:00:00 2001 From: Shawn Yang Date: Fri, 13 Feb 2026 15:58:50 -0800 Subject: [PATCH] chore: Add a warning when user updates `deployment spec` but not specify `agent` or `source packages`. PiperOrigin-RevId: 869923755 --- .../unit/vertexai/genai/test_agent_engines.py | 13 ++++++++++ vertexai/_genai/agent_engines.py | 25 +++++++++++++------ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/tests/unit/vertexai/genai/test_agent_engines.py b/tests/unit/vertexai/genai/test_agent_engines.py index cd223557a4..c705f93753 100644 --- a/tests/unit/vertexai/genai/test_agent_engines.py +++ b/tests/unit/vertexai/genai/test_agent_engines.py @@ -2517,6 +2517,19 @@ def test_update_agent_engine_extra_packages( None, ) + @mock.patch.object(_agent_engines_utils, "_prepare") + @mock.patch.object(_agent_engines_utils, "_await_operation") + def test_update_agent_engine_deployment_config_without_agent_raises( + self, mock_await_operation, mock_prepare + ): + with pytest.raises(ValueError, match="To update `env_vars`"): + self.client.agent_engines.update( + name=_TEST_AGENT_ENGINE_RESOURCE_NAME, + config=_genai_types.AgentEngineConfig( + env_vars=_TEST_AGENT_ENGINE_ENV_VARS_INPUT + ), + ) + @mock.patch.object(_agent_engines_utils, "_prepare") @mock.patch.object(_agent_engines_utils, "_await_operation") def test_update_agent_engine_env_vars( diff --git a/vertexai/_genai/agent_engines.py b/vertexai/_genai/agent_engines.py index 92168e0865..c40bbb38d6 100644 --- a/vertexai/_genai/agent_engines.py +++ b/vertexai/_genai/agent_engines.py @@ -1305,15 +1305,24 @@ def _create_config( image_spec=image_spec, ) + is_deployment_spec_updated = ( + env_vars is not None + or psc_interface_config is not None + or min_instances is not None + or max_instances is not None + or resource_limits is not None + or container_concurrency is not None + ) + if agent_engine_spec is None and is_deployment_spec_updated: + raise ValueError( + "To update `env_vars`, `psc_interface_config`, `min_instances`, " + "`max_instances`, `resource_limits`, or `container_concurrency`, " + "you must also provide the `agent` variable or the source code " + "options (`source_packages` or `developer_connect_source`)." + ) + if agent_engine_spec is not None: - if ( - env_vars is not None - or psc_interface_config is not None - or min_instances is not None - or max_instances is not None - or resource_limits is not None - or container_concurrency is not None - ): + if is_deployment_spec_updated: ( deployment_spec, deployment_update_masks,