From 79d8e1c63ef3ec854fec7233f612eea77d5946ef Mon Sep 17 00:00:00 2001 From: A Vertex SDK engineer Date: Tue, 10 Mar 2026 11:18:38 -0700 Subject: [PATCH] feat: GenAI Client(evals): Add candidate name to local ADK agent scraping PiperOrigin-RevId: 881533088 --- .../vertexai/genai/replays/test_evaluate_instances.py | 2 +- tests/unit/vertexai/genai/test_evals.py | 6 +++--- vertexai/_genai/_evals_common.py | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/unit/vertexai/genai/replays/test_evaluate_instances.py b/tests/unit/vertexai/genai/replays/test_evaluate_instances.py index 2ebabb8641..5a1d02a9e8 100644 --- a/tests/unit/vertexai/genai/replays/test_evaluate_instances.py +++ b/tests/unit/vertexai/genai/replays/test_evaluate_instances.py @@ -180,7 +180,7 @@ def test_run_inference_with_agent(client): agent="projects/977012026409/locations/us-central1/reasoningEngines/7188347537655332864", src=test_df, ) - assert inference_result.candidate_name is None + assert inference_result.candidate_name == "agent_engine_0" assert inference_result.gcs_source is None diff --git a/tests/unit/vertexai/genai/test_evals.py b/tests/unit/vertexai/genai/test_evals.py index 0fa05aa2cc..34e5aba200 100644 --- a/tests/unit/vertexai/genai/test_evals.py +++ b/tests/unit/vertexai/genai/test_evals.py @@ -1236,7 +1236,7 @@ def test_run_inference_with_agent_engine_and_session_inputs_dict( } ), ) - assert inference_result.candidate_name is None + assert inference_result.candidate_name == "agent_engine_0" assert inference_result.gcs_source is None @mock.patch.object(_evals_utils, "EvalDatasetLoader") @@ -1315,7 +1315,7 @@ def test_run_inference_with_agent_engine_and_session_inputs_literal_string( } ), ) - assert inference_result.candidate_name is None + assert inference_result.candidate_name == "agent_engine_0" assert inference_result.gcs_source is None @mock.patch.object(_evals_utils, "EvalDatasetLoader") @@ -1499,7 +1499,7 @@ def run_async_side_effect(*args, **kwargs): ), expected_df.sort_values(by="prompt").reset_index(drop=True), ) - assert inference_result.candidate_name is None + assert inference_result.candidate_name == "mock_agent" assert inference_result.gcs_source is None def test_run_inference_with_litellm_string_prompt_format( diff --git a/vertexai/_genai/_evals_common.py b/vertexai/_genai/_evals_common.py index 6bc0b2b728..97e56c9e19 100644 --- a/vertexai/_genai/_evals_common.py +++ b/vertexai/_genai/_evals_common.py @@ -1143,6 +1143,13 @@ def _execute_inference( candidate_name=candidate_name, ) elif agent_engine or agent: + candidate_name = None + if agent_engine: + candidate_name = "agent_engine_0" + elif agent: + agent_config = types.evals.AgentConfig.from_agent(agent) + candidate_name = agent_config.agent_id or "agent_0" + if ( agent_engine and not isinstance(agent_engine, str) @@ -1181,6 +1188,7 @@ def _execute_inference( evaluation_dataset = types.EvaluationDataset( eval_dataset_df=results_df, + candidate_name=candidate_name, ) else: raise ValueError("Either model, agent_engine or agent must be provided.")