Agentic AIPythonverifiedVerified
Evaluator-Optimizer Agent Pattern in Python
An iterative refinement loop where an 'Evaluator' provides granular feedback on an 'Optimizer’s' output until quality thresholds are met.
How to Implement the Evaluator-Optimizer Agent Pattern in Python
1Step 1: Define the Feedback, Optimizer, and Evaluator types
from dataclasses import dataclass
@dataclass
class Feedback:
is_pass: bool
critique: str
score: float
class Optimizer:
async def generate(self, task: str) -> str:
"""Generate initial output for the task."""
...
async def refine(self, current: str, feedback: str) -> str:
"""Refine output based on evaluator feedback."""
...
class Evaluator:
async def check(self, output: str) -> Feedback:
"""Evaluate output against quality rubric."""
...2Step 2: Implement the iterative refinement loop
MAX_ITERATIONS = 5
async def refinement_loop(
task: str,
optimizer: Optimizer,
evaluator: Evaluator,
) -> str:
current_output = await optimizer.generate(task)
for _ in range(MAX_ITERATIONS):
feedback = await evaluator.check(current_output)
if feedback.is_pass:
return current_output
current_output = await optimizer.refine(
current_output, feedback.critique
)
return current_outputEvaluator-Optimizer Agent Pattern Architecture
hourglass_empty
Rendering diagram...
lightbulb
Evaluator-Optimizer Agent Pattern in the Real World
“Think of a student writing an essay (Optimizer) and a teacher grading it with detailed feedback (Evaluator). The student revises based on the red-ink comments and resubmits. This cycle repeats until the essay meets the teacher’s standards—or the deadline (max iterations) is reached.”