Overview
A solver defines how the model under test is used and how its responses are collected. AI GO! provides declarative solvers for common interaction patterns, and a Python solver for cases that require fully custom logic. Each task defines exactly one solver inline in its YAML file under the solver key, and its output is passed to the task’s scorers.
# tasks/my_task.yaml
definition:
solver:
type: single_turn_solver
input_builder:
type: chat_completion
input_messages:
- role: user
content: "{{ sample.question }}"Available Solvers
| Solver | Type value | Description |
|---|---|---|
| Single Turn Solver | single_turn_solver |
Sends input messages to the model once and collects a single response. Use this for question-answering, summarisation, and any task with no back-and-forth. |
| Multi Turn Solver | multi_turn_solver |
Runs a multi-turn conversation driven by a configurable sequence of message builders. Use this for dialogue evaluation and agentic tasks. |
| Python Solver | python |
Runs a custom Python function as the solver. Use this when the declarative solvers cannot express the interaction you need. |
| Pass Through Solver | pass_through_solver |
Reads a pre-recorded trace from a dataset column instead of calling a model. Use this to score outputs generated outside AI GO! or to replay a conversation. |