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.")