Major Features
Ground Truth Assertion Support for Goal Success Rate Evaluator — PR#180
The GoalSuccessRateEvaluator now supports a second evaluation mode: assertion-based evaluation. When expected_assertion is provided on the evaluation case, the judge LLM evaluates whether the agent’s behavior satisfies explicit success assertions rather than inferring goals from the conversation. This enables precise, reproducible evaluation with human-authored success criteria.
from strands_evals import Casefrom strands_evals.evaluators import GoalSuccessRateEvaluator
# Basic mode (existing) — judge infers goals from conversationcase_basic = Case( session_id="session-1", goal="Help user book a flight",)
# Assertion mode (new) — judge evaluates against explicit criteriacase_assertion = Case( session_id="session-2", goal="Help user book a flight", expected_assertion="Agent confirmed departure city, destination, and date before searching for flights",)
evaluator = GoalSuccessRateEvaluator()Basic mode uses a Yes/No scoring rubric (Yes=1.0, No=0.0). Assertion mode uses SUCCESS/FAILURE scoring (SUCCESS=1.0, FAILURE=0.0).
Provider as Task Callable — PR#183
TraceProvider now exposes an as_task() method that returns a task callable, eliminating the need to write wrapper functions when running evaluations against traced sessions.
from strands_evals.providers import TraceProvider
provider = TraceProvider(...)
# Before: manual wrappertask = lambda case: provider.get_evaluation_data(case.session_id)
# After: built-in conveniencetask = provider.as_task()