# A single trajectory: one complete agent interaction traj = art.Trajectory( messages_and_choices=[ {"role": "system", "content": "You are a RAG support agent..."}, {"role": "user", "content": "What is the refund policy?\n\n[Context]: ..."}, Choice(finish_reason="stop", index=0, message=ChatCompletionMessage(role="assistant", content="...")), ], reward=0.0, # RULER fills this in ) # A group: multiple trajectories for the same scenario group = art.TrajectoryGroup([traj_a, traj_b, traj_c, traj_d]) # Score the entire group relatively judged_group = await ruler_score_group(group, "openai/o3")