Self-Reflection Loop
Based on Reflexion (NeurIPS 2023) — verbal reinforcement learning
GroundednessEvaluator evaluator = new();
for (int i = 0; i < 3; i++)
{
AgentResponse agentResponse = await agent.RunAsync(currentPrompt, session);
EvaluationResult result = await evaluator.EvaluateAsync(
messages, chatResponse, config, additionalContext: [groundingContext]);
double score = result.Get<NumericMetric>(
GroundednessEvaluator.GroundednessMetricName).Value ?? 0;
if (score >= 4.0) break;
currentPrompt = $"Your answer scored {score}/5. Improve grounding.";
}