From 0273b8e6b0e8ceee1180d1c931ffd842643ce54a Mon Sep 17 00:00:00 2001 From: asdaxzcwqsa <1730574646@qq.com> Date: Wed, 24 Jun 2026 21:26:49 +0800 Subject: [PATCH 1/3] fix(evaluator): avoid duplicating evaluator instructions --- .../workflows/evaluator_optimizer/evaluator_optimizer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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} From 1043b5dfadb8eb7b4a772d905d242f5470a7472c Mon Sep 17 00:00:00 2001 From: asdaxzcwqsa <1730574646@qq.com> Date: Wed, 24 Jun 2026 21:27:04 +0800 Subject: [PATCH 2/3] test(evaluator): cover duplicate evaluator prompt regression --- .../test_evaluator_optimizer.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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, From cbbf4520983b50cfffafc53ae41577cd3dff8760 Mon Sep 17 00:00:00 2001 From: asdaxzcwqsa <1730574646@qq.com> Date: Wed, 24 Jun 2026 21:27:31 +0800 Subject: [PATCH 3/3] style(test): separate evaluator prompt regression test