AGT-29Recommended
Run the tool evals on more than one model
Run the task set against at least two model families, and against the clients most of your agent traffic comes from. Run each task at least three times.
How to do it
Descriptions that one model reads well can confuse another, and your callers choose their own models. Read the client names from io.modelcontextprotocol/clientInfo in your logs to see which clients matter. Give each model only your tool list and the task, with no hints. Models answer differently each run, so repeat each task as Run each case several times says. Report each model's result on its own line, never only the average.
Examples
JavaScript example
const MODELS = ['provider-a/large', 'provider-b/large'];
const RUNS_PER_TASK = 3;
for (const model of MODELS) for (const c of cases) for (let run = 0; run < RUNS_PER_TASK; run++) results.push(await runTask(model, tools, c));
Python example
MODELS = ["provider-a/large", "provider-b/large"]
RUNS_PER_TASK = 3
results = [run_task(model, tools, case) for model in MODELS for case in cases for _ in range(RUNS_PER_TASK)]
How to check
The eval report lists at least two model families, with every task run at least three times on each. The three clients that sent the most MCP requests in the last 30 days appear in the report.
Related rules
- AIF-28 Run each case several times in AI features
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/agents-as-users/tool-choice-evals/tool-evals-several-models">Agent Wranglers agents as users playbook</a>. In code you write, add a comment next to it with the same link.