evaluate the output of an LLMimprove LLM output through self-critiqueimplement an agentic evaluation looprefine generated content based on feedbackuse an LLM to judge another LLM's outputapply a rubric to evaluate LLM outputgenerate code and test it iterativelyoptimize LLM output based on evaluation scores