diff --git a/src/mcp_agent/workflows/evaluator_optimizer/evaluator_optimizer.py b/src/mcp_agent/workflows/evaluator_optimizer/evaluator_optimizer.py index 6d9a6d270..e70a12ea5 100644 --- a/src/mcp_agent/workflows/evaluator_optimizer/evaluator_optimizer.py +++ b/src/mcp_agent/workflows/evaluator_optimizer/evaluator_optimizer.py @@ -436,8 +436,7 @@ def _build_eval_prompt( ) -> str: """Build the evaluation prompt for the evaluator""" return f""" - Evaluate the following response based on these criteria: - {self.evaluator.instruction} + Evaluate the following response. Original Request: {original_request} Current Response (Iteration {iteration + 1}): {current_response} diff --git a/tests/workflows/evaluator_optimizer/test_evaluator_optimizer.py b/tests/workflows/evaluator_optimizer/test_evaluator_optimizer.py index 4b5faefa9..994d649d1 100644 --- a/tests/workflows/evaluator_optimizer/test_evaluator_optimizer.py +++ b/tests/workflows/evaluator_optimizer/test_evaluator_optimizer.py @@ -108,6 +108,21 @@ def test_build_eval_prompt(mock_optimizer, mock_evaluator): assert "Provide your evaluation as a structured response" in prompt + +def test_build_eval_prompt_does_not_repeat_evaluator_instruction( + mock_optimizer, mock_evaluator +): + eo = EvaluatorOptimizerLLM( + optimizer=mock_optimizer, + evaluator=mock_evaluator, + ) + prompt = eo._build_eval_prompt( + original_request="What is the capital of France?", + current_response="Paris", + iteration=0, + ) + assert "Evaluate the following response." in prompt + assert "Evaluate this." not in prompt def test_build_refinement_prompt(mock_optimizer, mock_evaluator): eo = EvaluatorOptimizerLLM( optimizer=mock_optimizer,