Run a full tournament
tournament_evaluateRuns 1-4 AI models across benchmark scenarios, uses judge panels to score responses, and saves a ranked leaderboard. Requires prior planning and user confirmation; paid model calls.
Instructions
Costs money. Makes paid model calls and writes results to disk. Call tournament_plan_run first and get the user's yes in chat. Clients that support forms will also get a confirm form. Runs 1-4 models across a bench's scenarios and saves a leaderboard. Can take several minutes. judgePanel picks judge models and personas per seat and overrides judges and judgeModels. turns sets one turn count for every scenario. participantModel picks the simulated user model. synthesizerModel reconciles judge scores. OpenRouter is the default; anthropic: refs bill the user's Anthropic API key. Use tournament_quick_test for a cheap check.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| turns | No | 1-10 turns for every scenario. Omit to use each scenario's own default. | |
| judges | No | Number of judges on the scoring panel, 1-5. Defaults to 3. Ignored when `judgeModels` is provided. | |
| models | Yes | 1-4 model refs to compare. Bare IDs use OpenRouter. anthropic: refs use your Anthropic API key. Add @level to set how hard a model thinks, e.g. "openai/gpt-6.1-sol@high". Levels: none, minimal, low, medium, high, xhigh, max; each model accepts only some (see tournament_options). Leave it off for the model's default. The same model may appear twice at different levels. | |
| plugin | No | Bench to run, e.g. "dnd" or "coding". Defaults to "dnd". | dnd |
| scenarios | No | Scenario IDs to run. Omit to run every scenario in the bench. | |
| judgePanel | No | 1-5 judge seats. Each may set model and either persona or customPersona with a lens (1-1000 characters) and optional name (1-60 characters). Add @level to set how hard a model thinks, e.g. "openai/gpt-6.1-sol@high". Levels: none, minimal, low, medium, high, xhigh, max; each model accepts only some (see tournament_options). Leave it off for the model's default. The same model may appear twice at different levels. | |
| judgeModels | No | 1-5 OpenRouter model IDs, one per judge seat, filled in this fixed order: 1. Rules Judge (accuracy, tool_usage); 2. Creative Judge (clarity, creativity, communication); 3. Holistic Judge (overall_quality, task_completion); 4. Authentic Voice Judge (authentic_voice); 5. Context Judge (context, consistency). When provided, the panel size equals the length of this list and overrides `judges`. Omit to use the default model for each seat. Add @level to set how hard a model thinks, e.g. "openai/gpt-6.1-sol@high". Levels: none, minimal, low, medium, high, xhigh, max; each model accepts only some (see tournament_options). Leave it off for the model's default. The same model may appear twice at different levels. | |
| participantModel | No | Model ref for the simulated user who sends follow-up messages. Omit for the default. Add @level to set how hard a model thinks, e.g. "openai/gpt-6.1-sol@high". Levels: none, minimal, low, medium, high, xhigh, max; each model accepts only some (see tournament_options). Leave it off for the model's default. The same model may appear twice at different levels. | |
| synthesizerModel | No | OpenRouter model ID that reconciles the judges' scores into one final score. Omit to use the default synthesizer model. Add @level to set how hard a model thinks, e.g. "openai/gpt-6.1-sol@high". Levels: none, minimal, low, medium, high, xhigh, max; each model accepts only some (see tournament_options). Leave it off for the model's default. The same model may appear twice at different levels. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | ||
| judges | Yes | ||
| plugin | Yes | ||
| status | Yes | ||
| entries | Yes | ||
| message | No | ||
| failures | Yes | ||
| resultsDir | Yes | ||
| judgeFailures | Yes |