A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.
The BenchGen AI agent is the default agent in the platform chat. It works as you: it creates
benchmarks, launches runs, and starts training jobs on your account, with your permissions and
your credits. New to it? See the overview for where to open the chat, or the prompt library for prompts to paste.
The agent cannot stop or delete a training job, and it cannot delete or unpublish a benchmark.
Do those from the web app.
Create a benchmark
Describe what the benchmark should measure. The agent writes the questions and shows you a preview
with the correct answers. Nothing exists yet: reply Create it to create the benchmark, or say
what to change.
Create a multiple choice benchmark in English called "Solar System Basics" with 30 questionsabout the solar system and space: planets, moons, orbits, missions, stars and galaxies.4 options each, exactly one correct, mixed difficulty.
It supports question and answer benchmarks, multiple choice benchmarks, and custom formats (tool
calling, number answers, open answers scored on key points) that it builds as a bundle.The benchmark is created as a draft. The agent reports its id and link, then asks what to do next:
publish it, run a model on it, or leave it as a draft.
A draft cannot be run. If you ask for a run on a draft, the agent tells you so and offers to
publish it first. To do both in one step, say “publish it and run <model name> on it”.
Creating a benchmark: the request, the preview, the confirmation, and the draft with its link and next steps
You do not need to ask for the correct answers to be spread across A, B, C and D. The agent’s
tooling reorders the options so the correct letters come out even.
Large benchmarks
A benchmark can hold up to 2,000 questions. One chat turn is limited to about 15 minutes, so the
agent writes a large benchmark in parts of about 25 questions, checks them for duplicates, and
submits them as a single benchmark.
Create a multiple choice benchmark in English called "Solar System 100" with 100 questions,in 4 groups of 25: planets, moons, missions, stars and galaxies. 4 options each, exactly one correct.
Around 150 questions fit in one turn. For more, the agent stops after a batch, tells you how many
questions are written, and continues when you reply continue.
A benchmark keeps the evaluation and scoring programs it was created with. Platform improvements
to those programs apply to benchmarks created afterwards, so compare scores within one benchmark
rather than across an old one and a new one.
Run a benchmark on a model
Run this benchmark on <model name>.
The benchmark must be published. Use a model name from the catalogue or one of your own models;
if several models match, the agent says which one it picked. It replies with the run id
and a link. When you ask for the status later, it reports the overall score and the breakdown by
category.To compare models, run the same benchmark on each and ask:
Show the scores of these runs side by side with the run links.
Look inside a run
A finished run of a question and answer or multiple choice benchmark produces a dataset. Ask the
agent to show it:
Show the dataset of run <id> in mode all, 10 rows.
Mode
What you see
failures
The questions the model got wrong, with the correct answers.
all
Every question, the correct answer, and what the model actually answered.
distill
The questions the model got right, with its own full answer, reasoning included.
One row in mode distill: the exact prompt the benchmark sent, and the strong model's own answer with its reasoning. This pair is what a distilled model learns from.
Mode all is the fastest way to understand a surprising score. If a model scores lower than you
expect, read what it actually answered before drawing conclusions: a low score is often an answer
format problem, such as a missing final answer line, rather than missing knowledge.
Analyze a run and fix the benchmark
A low score is not always the model’s fault. Before you train anything, ask what actually went
wrong: an answer key that rejects correct answers in other words will make every model look bad,
and training against it teaches the wrong answer.
Review benchmark <id> and tell me everything that looks wrong with it.
Analyse run <id>'s wrong answers, and prove any scoring fix you suggest before offering it.
The agent explains each miss from what the scoring saw rather than from reading the answer, and
it proves a fix on the run’s already saved answers before offering it, so nothing is guessed and
no model is called.In one case a model went from 3 out of 10 to 6 out of 10 with no question made easier: the
benchmark had been rejecting correct answers for using different words.
Fix a benchmark by talking to it
The whole conversation, message by message, with the proof and the before and after.
Train a model
The agent can launch LoRA fine-tuning, reinforcement learning (GRPO), continued training of an
existing adapter, and training on the results of a benchmark run.Training holds a GPU and spends credits, so it is always two steps:
1
Ask for a plan
Plan a LoRA fine-tune of Qwen/Qwen2.5-0.5B-Instruct on the dataset yahma/alpaca-cleaned,1 epoch, 50 steps maximum.
The agent shows exactly what it would submit: job type, base model, dataset, hyperparameters,
and GPU availability. Nothing has started yet.
2
Confirm in your next message
Reply yes. Anything else cancels. To change something, say what to change and ask for the
updated plan first.
3
Follow the job
Ask training status or training logs. When the job completes, the trained model is
registered in your catalogue and you can run benchmarks on it.
The base model for training is a Hugging Face repository id such as
Qwen/Qwen2.5-0.5B-Instruct, not a catalogue display name. Check the base_model line in the
plan before you confirm.
Close the full improvement loop
The most useful workflow chains the steps above: measure a model, train it on what the benchmark
revealed, and measure again.
1
Benchmark the model
Run a benchmark on the model you want to improve and wait for the score.
2
Train on the run
Plan a from-run training from run <id>.
By default this trains on the questions the model got wrong. Confirm with yes.
3
Benchmark the trained model
Run the same benchmark on the model this training produced.
4
Compare
Ask for both scores side by side. The agent does not claim an improvement before the second
run has finished.
Distill a strong model into a small one
You can also teach a small open-source model from a strong model’s run. The benchmark records how
the strong model reasoned on every question. Distillation keeps the answers it got right and
trains the small model on that reasoning.
1
Run the strong model
Run the benchmark on a frontier model. This is the ceiling.
2
Run the small model
Run the same benchmark on the open-source model. This is the baseline.
3
Plan the distillation
Plan a from-run training from run <strong model's run id>, dataset mode distill,base model Qwen/Qwen2.5-0.5B-Instruct.
The plan states how many correct trajectories the run holds. Always name the base model: the
strong model’s run does not say which model to train.
A distillation plan: source run, dataset mode, the number of correct trajectories, and the hyperparameters. Nothing is launched until you confirm.
4
Confirm, then benchmark the result
Reply yes, wait for the job to complete, run the same benchmark on the trained model, and
ask for the three scores side by side.
In one of our runs on a 30-question multiple choice benchmark, a frontier model scored 100%, a
0.5B open-source model scored 46.7%, and the same 0.5B model scored 73.3% after distillation.
The result of one distillation loop, reported by the agent: the strong model, the base model, and the distilled model on the same benchmark
Three things make distillation work well:
Match the language. A small model that scores at guessing level on a benchmark, for example
25% with four options, has little to build on. Use a benchmark language the small model reads
well.
Give it capacity. A larger student, such as a 1.5B model, gains more and more steadily.
Check on new questions. Training and testing on the same questions includes memorisation.
For an honest number, create a second benchmark on the same topic with different questions and
compare the base and distilled models there.
Merge and publish a trained model
A trained adapter is served on top of its base model by default, and that is enough to benchmark
it. Merging is an explicit export, for when you want standalone weights:
Merge the adapter of job <id> and publish it as "my-model-merged".
The agent states the model id and the name it will get, asks for confirmation, and publishes the
merged model to your catalogue once the merge is available.
Limits and troubleshooting
What you see
What it means
What to do
”The agent took too long to finish this turn.”
One chat turn is limited to about 15 minutes.
Split the request. For large benchmarks, reply continue.
”The agent is offline.”
The agent’s gateway is restarting or disconnected.
Wait a minute and send the message again.
A 403 when launching training
The credential for that turn did not carry training permission.
Send the request again. If it persists, the deployment does not allow it yet.
The trained model scores below its baseline
Usually an answer format problem, not lost knowledge.
Ask for the run’s dataset in mode all and read what the model answered.
The agent mixes up runs or models
The conversation covers too many of them.
Start a new chat and refer to runs by id.
Tips for talking to the agent
Be specific: give names, counts, and ids (“30 questions”, “run 1081”).
Ask for one action per message. Each step that spends credits gets its own confirmation.
When it asks a numbered question, reply with the number.
Runs and training take minutes. Ask “what is the status?” instead of waiting.
Start a new chat for a new piece of work.
You never paste an API token into the chat, and the agent never prints one.
Related
Agent skills
The capabilities the agent is built from, with what each one covers.
BenchGen AI agent overview
Where to open the chat and what to ask first.
Create a benchmark (API)
The same creation flow, called from your own code.
Run a benchmark (API)
Launch runs and read their status programmatically.
Launch training (API)
Start training jobs without the chat.
Last modified on September 30, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"BenchGen Documentation","description":"Documentation for BenchGen, the benchmarking infrastructure for AI agents. Evaluate agent behavior, build simulation environments, analyze trajectories, and improve AI systems with reliable benchmarks.","colors":{"primary":"#F97316","light":"#FB923C","dark":"#EA580C"},"logo":{"light":"https://mintcdn.com/benchgen-8fc81371/2OCozHVviHUGu126/logo/light.svg?fit=max\u0026auto=format\u0026n=2OCozHVviHUGu126\u0026q=85\u0026s=c30524148fb8e976f6d0169b615c4c23","dark":"https://mintcdn.com/benchgen-8fc81371/2OCozHVviHUGu126/logo/dark.svg?fit=max\u0026auto=format\u0026n=2OCozHVviHUGu126\u0026q=85\u0026s=26d34c6d3c6d42c461506af79abb9af1"},"favicon":"https://mintcdn.com/benchgen-8fc81371/2OCozHVviHUGu126/favicon.svg?fit=max\u0026auto=format\u0026n=2OCozHVviHUGu126\u0026q=85\u0026s=49dc1756d3e07c92100156d977d96a5f","navbar":{"links":[{"href":"mailto:contact@benchgen.com","label":"Support"}],"primary":{"type":"button","label":"Platform","href":"https://benchgen.com/benchmarks"}},"footer":{"socials":{"x":"https://x.com/BenchGenAI","github":"https://github.com/benchgen-ai","linkedin":"https://www.linkedin.com/company/benchgen"}},"seo":{"metatags":{"canonical":"https://benchgen.com/docs","og:site_name":"BenchGen Documentation","og:type":"website","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@BenchGenAI"},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"benchgen-8fc81371","hasAudioNarration":false,"actualSubdomain":"benchgen-8fc81371","customDomains":["benchgen.com"],"gitSource":{"type":"gitlab","owner":"benchgen","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"projectId":82401822,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb360346b60ddf4f035503","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"API reference","count":54},{"language":"default","tag":"Platform","count":47},{"language":"default","tag":"Agents","count":20},{"language":"default","tag":"Benchmark creation","count":18},{"language":"default","tag":"Eval","count":14},{"language":"default","tag":"Agent Builder","count":12},{"language":"default","tag":"Fine-tuning and serving","count":9},{"language":"default","tag":"Agent skills","count":8},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Train","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/benchgen-ai-agent/working-with-the-agent","slug":"/guides/benchgen-ai-agent/working-with-the-agent","pageMetadata":{"title":"Working with the BenchGen AI agent","description":"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.","icon":"robot","href":"/guides/benchgen-ai-agent/working-with-the-agent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The BenchGen AI agent is the default agent in the platform chat. It works `,_jsx(_components.strong,{children:`as you`}),`: it creates\nbenchmarks, launches runs, and starts training jobs on your account, with your permissions and\nyour credits. New to it? See the `,_jsx(_components.a,{href:`/guides/benchgen-ai-agent/overview`,children:`overview`}),` for where to open the chat, or the `,_jsx(_components.a,{href:`/self-improvement-agent`,children:`prompt library`}),` for prompts to paste.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`The agent cannot stop or delete a training job, and it cannot delete or unpublish a benchmark.\nDo those from the web app.`})}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-benchmark`,children:`Create a benchmark`}),`\n`,_jsxs(_components.p,{children:[`Describe what the benchmark should measure. The agent writes the questions and shows you a preview\nwith the correct answers. Nothing exists yet: reply `,_jsx(_components.code,{children:`Create it`}),` to create the benchmark, or say\nwhat to change.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Create a multiple choice benchmark in English called \"Solar System Basics\" with 30 questions`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`about the solar system and space: planets, moons, orbits, missions, stars and galaxies.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`4 options each, exactly one correct, mixed difficulty.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`It supports question and answer benchmarks, multiple choice benchmarks, and custom formats (tool\ncalling, number answers, open answers scored on key points) that it builds as a bundle.`}),`\n`,_jsx(_components.p,{children:`The benchmark is created as a draft. The agent reports its id and link, then asks what to do next:\npublish it, run a model on it, or leave it as a draft.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`A draft cannot be run. If you ask for a run on a draft, the agent tells you so and offers to\npublish it first. To do both in one step, say “publish it and run `,_jsx(_components.code,{children:`\u003cmodel name>`}),` on it”.`]})}),`\n`,_jsx(Frame,{caption:`Creating a benchmark: the request, the preview, the confirmation, and the draft with its link and next steps`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=a0538474484c78472522268a1a7e27a9`,alt:`Chat with the BenchGen AI agent: a request for a 10-question multiple choice benchmark, the agent's preview of the questions and answers, the user's confirmation, and the agent's report that the benchmark was created as a draft with a link and three numbered next steps`,\"data-og-width\":`2368`,width:`2368`,\"data-og-height\":`1948`,height:`1948`,\"data-path\":`images/guides/benchgen-ai-agent/01-create-benchmark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=280\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=a24634c9fc3afae360a2c8ed746a4e81 280w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=560\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=102343437c149de7a408088457e238c2 560w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=840\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=0d554b59ab16af2d6927e96c5be5d053 840w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=c6f32aa6e7a901ab6066c4f1ed34c376 1100w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=ab2099100f4d4315d6c5832a36dc2676 1650w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/01-create-benchmark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=6ffba2eee32c44612516b0483f11ee60 2500w`})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`You do not need to ask for the correct answers to be spread across A, B, C and D. The agent’s\ntooling reorders the options so the correct letters come out even.`})}),`\n`,_jsx(Heading,{level:`3`,id:`large-benchmarks`,children:`Large benchmarks`}),`\n`,_jsx(_components.p,{children:`A benchmark can hold up to 2,000 questions. One chat turn is limited to about 15 minutes, so the\nagent writes a large benchmark in parts of about 25 questions, checks them for duplicates, and\nsubmits them as a single benchmark.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Create a multiple choice benchmark in English called \"Solar System 100\" with 100 questions,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`in 4 groups of 25: planets, moons, missions, stars and galaxies. 4 options each, exactly one correct.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Around 150 questions fit in one turn. For more, the agent stops after a batch, tells you how many\nquestions are written, and continues when you reply `,_jsx(_components.code,{children:`continue`}),`.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`A benchmark keeps the evaluation and scoring programs it was created with. Platform improvements\nto those programs apply to benchmarks created afterwards, so compare scores within one benchmark\nrather than across an old one and a new one.`})}),`\n`,_jsx(Heading,{level:`2`,id:`run-a-benchmark-on-a-model`,children:`Run a benchmark on a model`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Run this benchmark on \u003cmodel name>.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The benchmark must be published. Use a model name from the catalogue or one of your own models;\nif several models match, the agent says which one it picked. It replies with the run id\nand a link. When you ask for the status later, it reports the overall score and the breakdown by\ncategory.`}),`\n`,_jsx(_components.p,{children:`To compare models, run the same benchmark on each and ask:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show the scores of these runs side by side with the run links.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`look-inside-a-run`,children:`Look inside a run`}),`\n`,_jsx(_components.p,{children:`A finished run of a question and answer or multiple choice benchmark produces a dataset. Ask the\nagent to show it:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show the dataset of run \u003cid> in mode all, 10 rows.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Mode`}),_jsx(_components.th,{children:`What you see`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`failures`})}),_jsx(_components.td,{children:`The questions the model got wrong, with the correct answers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`all`})}),_jsx(_components.td,{children:`Every question, the correct answer, and what the model actually answered.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`distill`})}),_jsx(_components.td,{children:`The questions the model got right, with its own full answer, reasoning included.`})]})]})]}),`\n`,_jsx(Frame,{caption:`One row in mode distill: the exact prompt the benchmark sent, and the strong model's own answer with its reasoning. This pair is what a distilled model learns from.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=ce51420d270a539e1777c1613fab9f59`,alt:`Chat with the BenchGen AI agent showing one dataset row in mode distill: the full multiple choice prompt with its answer format instruction, followed by the benchmarked model's reasoning and its final answer D`,\"data-og-width\":`2368`,width:`2368`,\"data-og-height\":`1468`,height:`1468`,\"data-path\":`images/guides/benchgen-ai-agent/02-trajectories.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=280\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=a1105bda1e87551ff11142f5d3072640 280w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=560\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=6b5170afabc9ecec69335ab4839f6c6b 560w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=840\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=ea6f61e176840c1d954ddf806c8875a8 840w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=2920b574971b726805b37e526651f43e 1100w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=0b9e6e925890a6f146f245d5bb3aefcc 1650w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/02-trajectories.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=82f4809812cc3d2db5c1adfee9450087 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Mode `,_jsx(_components.code,{children:`all`}),` is the fastest way to understand a surprising score. If a model scores lower than you\nexpect, read what it actually answered before drawing conclusions: a low score is often an answer\nformat problem, such as a missing final answer line, rather than missing knowledge.`]}),`\n`,_jsx(Heading,{level:`2`,id:`analyze-a-run-and-fix-the-benchmark`,children:`Analyze a run and fix the benchmark`}),`\n`,_jsx(_components.p,{children:`A low score is not always the model’s fault. Before you train anything, ask what actually went\nwrong: an answer key that rejects correct answers in other words will make every model look bad,\nand training against it teaches the wrong answer.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Review benchmark \u003cid> and tell me everything that looks wrong with it.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Analyse run \u003cid>'s wrong answers, and prove any scoring fix you suggest before offering it.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The agent explains each miss from what the scoring saw rather than from reading the answer, and\nit proves a fix on the run’s already saved answers before offering it, so nothing is guessed and\nno model is called.`}),`\n`,_jsx(_components.p,{children:`In one case a model went from 3 out of 10 to 6 out of 10 with no question made easier: the\nbenchmark had been rejecting correct answers for using different words.`}),`\n`,_jsx(Card,{title:`Fix a benchmark by talking to it`,icon:`wrench`,href:`/guides/benchgen-ai-agent/fixing-a-benchmark`,children:_jsx(_components.p,{children:`The whole conversation, message by message, with the proof and the before and after.`})}),`\n`,_jsx(Heading,{level:`2`,id:`train-a-model`,children:`Train a model`}),`\n`,_jsx(_components.p,{children:`The agent can launch LoRA fine-tuning, reinforcement learning (GRPO), continued training of an\nexisting adapter, and training on the results of a benchmark run.`}),`\n`,_jsx(_components.p,{children:`Training holds a GPU and spends credits, so it is always two steps:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Ask for a plan`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Plan a LoRA fine-tune of Qwen/Qwen2.5-0.5B-Instruct on the dataset yahma/alpaca-cleaned,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1 epoch, 50 steps maximum.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`The agent shows exactly what it would submit: job type, base model, dataset, hyperparameters,\nand GPU availability. Nothing has started yet.`})]}),_jsx(Step,{title:`Confirm in your next message`,children:_jsxs(_components.p,{children:[`Reply `,_jsx(_components.code,{children:`yes`}),`. Anything else cancels. To change something, say what to change and ask for the\nupdated plan first.`]})}),_jsx(Step,{title:`Follow the job`,children:_jsxs(_components.p,{children:[`Ask `,_jsx(_components.code,{children:`training status`}),` or `,_jsx(_components.code,{children:`training logs`}),`. When the job completes, the trained model is\nregistered in your catalogue and you can run benchmarks on it.`]})})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The base model for training is a Hugging Face repository id such as\n`,_jsx(_components.code,{children:`Qwen/Qwen2.5-0.5B-Instruct`}),`, not a catalogue display name. Check the `,_jsx(_components.code,{children:`base_model`}),` line in the\nplan before you confirm.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`close-the-full-improvement-loop`,children:`Close the full improvement loop`}),`\n`,_jsx(_components.p,{children:`The most useful workflow chains the steps above: measure a model, train it on what the benchmark\nrevealed, and measure again.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Benchmark the model`,children:_jsx(_components.p,{children:`Run a benchmark on the model you want to improve and wait for the score.`})}),_jsxs(Step,{title:`Train on the run`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Plan a from-run training from run \u003cid>.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`By default this trains on the questions the model got wrong. Confirm with `,_jsx(_components.code,{children:`yes`}),`.`]})]}),_jsx(Step,{title:`Benchmark the trained model`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Run the same benchmark on the model this training produced.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})}),_jsx(Step,{title:`Compare`,children:_jsx(_components.p,{children:`Ask for both scores side by side. The agent does not claim an improvement before the second\nrun has finished.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`distill-a-strong-model-into-a-small-one`,children:`Distill a strong model into a small one`}),`\n`,_jsx(_components.p,{children:`You can also teach a small open-source model from a strong model’s run. The benchmark records how\nthe strong model reasoned on every question. Distillation keeps the answers it got right and\ntrains the small model on that reasoning.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Run the strong model`,children:_jsx(_components.p,{children:`Run the benchmark on a frontier model. This is the ceiling.`})}),_jsx(Step,{title:`Run the small model`,children:_jsx(_components.p,{children:`Run the same benchmark on the open-source model. This is the baseline.`})}),_jsxs(Step,{title:`Plan the distillation`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Plan a from-run training from run \u003cstrong model's run id>, dataset mode distill,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`base model Qwen/Qwen2.5-0.5B-Instruct.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`The plan states how many correct trajectories the run holds. Always name the base model: the\nstrong model’s run does not say which model to train.`}),_jsx(Frame,{caption:`A distillation plan: source run, dataset mode, the number of correct trajectories, and the hyperparameters. Nothing is launched until you confirm.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=192370956835ed53f0b997dd10fbbfb6`,alt:`The BenchGen AI agent's training plan: from-run distillation, base model Qwen2.5-0.5B-Instruct, source run 1081, dataset mode distill, 30 correct trajectories, 10 epochs, LoRA rank 16, and a note that nothing has been launched`,\"data-og-width\":`2368`,width:`2368`,\"data-og-height\":`1124`,height:`1124`,\"data-path\":`images/guides/benchgen-ai-agent/03-distillation-plan.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=280\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=4f5caf015e213721502b3add698a2576 280w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=560\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=0289f4da853f07711061e45074210e88 560w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=840\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=a080f4dc91e5966669de9be3d9e1c47e 840w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=35e1f54a1b25c7c4adfe17c8813a81b8 1100w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=e60676be9df27f16787fd41667104822 1650w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/03-distillation-plan.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=bccc44d249acaf19166458d9bcbbf36c 2500w`})})]}),_jsx(Step,{title:`Confirm, then benchmark the result`,children:_jsxs(_components.p,{children:[`Reply `,_jsx(_components.code,{children:`yes`}),`, wait for the job to complete, run the same benchmark on the trained model, and\nask for the three scores side by side.`]})})]}),`\n`,_jsx(_components.p,{children:`In one of our runs on a 30-question multiple choice benchmark, a frontier model scored 100%, a\n0.5B open-source model scored 46.7%, and the same 0.5B model scored 73.3% after distillation.`}),`\n`,_jsx(Frame,{caption:`The result of one distillation loop, reported by the agent: the strong model, the base model, and the distilled model on the same benchmark`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=beb27a75da868e331e375d40384ce8aa`,alt:`A table from the BenchGen AI agent comparing three runs on the same benchmark: the frontier model at 100, the base 0.5B model at 46.7, and the distilled 0.5B model at 73.3, each with its run link, followed by a summary of the 26.7 point gain`,\"data-og-width\":`2368`,width:`2368`,\"data-og-height\":`542`,height:`542`,\"data-path\":`images/guides/benchgen-ai-agent/04-three-scores.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=280\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=964f22afbd8848a54ce10408005ac241 280w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=560\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=fa3cdf73bb1ce59c3e017a546f5ab00a 560w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=840\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=cdd61411de1ccffe6d3f600e2a0c2115 840w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=f082bb04c535dd42d6e8fa37ebe335ce 1100w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=79421be5b41a37f06ab5fa9cb29d132e 1650w, https://mintcdn.com/benchgen-8fc81371/MiEv2r5AKjiUikhl/images/guides/benchgen-ai-agent/04-three-scores.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MiEv2r5AKjiUikhl\u0026q=85\u0026s=73cc1307426670151082cc28b4957788 2500w`})}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:`Three things make distillation work well:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Match the language.`}),` A small model that scores at guessing level on a benchmark, for example\n25% with four options, has little to build on. Use a benchmark language the small model reads\nwell.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Give it capacity.`}),` A larger student, such as a 1.5B model, gains more and more steadily.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check on new questions.`}),` Training and testing on the same questions includes memorisation.\nFor an honest number, create a second benchmark on the same topic with different questions and\ncompare the base and distilled models there.`]}),`\n`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`merge-and-publish-a-trained-model`,children:`Merge and publish a trained model`}),`\n`,_jsx(_components.p,{children:`A trained adapter is served on top of its base model by default, and that is enough to benchmark\nit. Merging is an explicit export, for when you want standalone weights:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Merge the adapter of job \u003cid> and publish it as \"my-model-merged\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`The agent states the model id and the name it will get, asks for confirmation, and publishes the\nmerged model to your catalogue once the merge is available.`}),`\n`,_jsx(Heading,{level:`2`,id:`limits-and-troubleshooting`,children:`Limits and troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What you see`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”The agent took too long to finish this turn.”`}),_jsx(_components.td,{children:`One chat turn is limited to about 15 minutes.`}),_jsxs(_components.td,{children:[`Split the request. For large benchmarks, reply `,_jsx(_components.code,{children:`continue`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”The agent is offline.”`}),_jsx(_components.td,{children:`The agent’s gateway is restarting or disconnected.`}),_jsx(_components.td,{children:`Wait a minute and send the message again.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A `,_jsx(_components.code,{children:`403`}),` when launching training`]}),_jsx(_components.td,{children:`The credential for that turn did not carry training permission.`}),_jsx(_components.td,{children:`Send the request again. If it persists, the deployment does not allow it yet.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The trained model scores below its baseline`}),_jsx(_components.td,{children:`Usually an answer format problem, not lost knowledge.`}),_jsxs(_components.td,{children:[`Ask for the run’s dataset in mode `,_jsx(_components.code,{children:`all`}),` and read what the model answered.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The agent mixes up runs or models`}),_jsx(_components.td,{children:`The conversation covers too many of them.`}),_jsx(_components.td,{children:`Start a new chat and refer to runs by id.`})]})]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Tips for talking to the agent`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Be specific: give names, counts, and ids (“30 questions”, “run 1081”).`}),`\n`,_jsx(_components.li,{children:`Ask for one action per message. Each step that spends credits gets its own confirmation.`}),`\n`,_jsx(_components.li,{children:`When it asks a numbered question, reply with the number.`}),`\n`,_jsx(_components.li,{children:`Runs and training take minutes. Ask “what is the status?” instead of waiting.`}),`\n`,_jsx(_components.li,{children:`Start a new chat for a new piece of work.`}),`\n`,_jsx(_components.li,{children:`You never paste an API token into the chat, and the agent never prints one.`}),`\n`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Agent skills`,icon:`wand-magic-sparkles`,href:`/skills/overview`,children:_jsx(_components.p,{children:`The capabilities the agent is built from, with what each one covers.`})}),_jsx(Card,{title:`BenchGen AI agent overview`,icon:`messages`,href:`/guides/benchgen-ai-agent/overview`,children:_jsx(_components.p,{children:`Where to open the chat and what to ask first.`})}),_jsx(Card,{title:`Create a benchmark (API)`,icon:`code`,href:`/api-reference/endpoint/create-benchmark`,children:_jsx(_components.p,{children:`The same creation flow, called from your own code.`})}),_jsx(Card,{title:`Run a benchmark (API)`,icon:`play`,href:`/api-reference/endpoint/run-benchmark`,children:_jsx(_components.p,{children:`Launch runs and read their status programmatically.`})}),_jsx(Card,{title:`Launch training (API)`,icon:`dumbbell`,href:`/api-reference/endpoint/train`,children:_jsx(_components.p,{children:`Start training jobs without the chat.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Working with the BenchGen AI agent","description":"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.","icon":"robot","href":"/guides/benchgen-ai-agent/working-with-the-agent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a benchmark","slug":"create-a-benchmark","depth":2,"children":[{"title":"Large benchmarks","slug":"large-benchmarks","depth":3,"children":[]}]},{"title":"Run a benchmark on a model","slug":"run-a-benchmark-on-a-model","depth":2,"children":[]},{"title":"Look inside a run","slug":"look-inside-a-run","depth":2,"children":[]},{"title":"Analyze a run and fix the benchmark","slug":"analyze-a-run-and-fix-the-benchmark","depth":2,"children":[]},{"title":"Train a model","slug":"train-a-model","depth":2,"children":[]},{"title":"Close the full improvement loop","slug":"close-the-full-improvement-loop","depth":2,"children":[{"title":"Distill a strong model into a small one","slug":"distill-a-strong-model-into-a-small-one","depth":3,"children":[]}]},{"title":"Merge and publish a trained model","slug":"merge-and-publish-a-trained-model","depth":2,"children":[]},{"title":"Limits and troubleshooting","slug":"limits-and-troubleshooting","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"benchgen-8fc81371","siteName":"BenchGen Documentation","title":"Working with the BenchGen AI agent - BenchGen Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T13:31:34.491Z","gitLastModified":"2026-09-30T22:06:49.000Z","originalFileLocation":"guides/benchgen-ai-agent/working-with-the-agent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\">\u003cmeta data-mint-head name=\"application-name\" content=\"BenchGen Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Working with the BenchGen AI agent - BenchGen Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"BenchGen Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://benchgen-8fc81371.mintlify.site/docs/_mintlify/api/og/v2?division=BenchGen+AI+Agent\u0026amp;title=Working+with+the+BenchGen+AI+agent\u0026amp;description=A+task-by-task+guide+to+the+built-in+agent%3A+create+and+run+benchmarks%2C+inspect+results%2C+train+models%2C+and+close+the+full+improvement+loop%2C+all+from+chat.\u0026amp;theme=9d7d43fe4c0665ef4885eb96\u0026amp;signature=ff841ca79959e00fd6e00df246982806107db0fd98c84a5d10fda4b43eb1a4d3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Working with the BenchGen AI agent - BenchGen Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://benchgen-8fc81371.mintlify.site/docs/_mintlify/api/og/v2?division=BenchGen+AI+Agent\u0026amp;title=Working+with+the+BenchGen+AI+agent\u0026amp;description=A+task-by-task+guide+to+the+built-in+agent%3A+create+and+run+benchmarks%2C+inspect+results%2C+train+models%2C+and+close+the+full+improvement+loop%2C+all+from+chat.\u0026amp;theme=9d7d43fe4c0665ef4885eb96\u0026amp;signature=ff841ca79959e00fd6e00df246982806107db0fd98c84a5d10fda4b43eb1a4d3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/benchgen-8fc81371/FIM6BM2AvAQ00H3A/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"BenchGen Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F97316\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/benchgen-ai-agent/working-with-the-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://benchgen.com/#organization\",\"name\":\"BenchGen Documentation\",\"url\":\"https://benchgen.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/benchgen-8fc81371/2OCozHVviHUGu126/logo/light.svg?fit=max\u0026auto=format\u0026n=2OCozHVviHUGu126\u0026q=85\u0026s=c30524148fb8e976f6d0169b615c4c23\"}},{\"@type\":\"WebSite\",\"@id\":\"https://benchgen.com/docs#website\",\"name\":\"BenchGen Documentation\",\"url\":\"https://benchgen.com/docs\",\"publisher\":{\"@id\":\"https://benchgen.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent#webpage\",\"url\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent\",\"name\":\"Working with the BenchGen AI agent\",\"description\":\"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\",\"dateModified\":\"2026-09-30T22:06:49.000Z\",\"isPartOf\":{\"@id\":\"https://benchgen.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"BenchGen AI Agent\",\"item\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working with the BenchGen AI agent\",\"item\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent#article\",\"headline\":\"Working with the BenchGen AI agent\",\"name\":\"Working with the BenchGen AI agent\",\"description\":\"A task-by-task guide to the built-in agent: create and run benchmarks, inspect results, train models, and close the full improvement loop, all from chat.\",\"url\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent\",\"mainEntityOfPage\":{\"@id\":\"https://benchgen.com/docs/guides/benchgen-ai-agent/working-with-the-agent#webpage\"},\"dateModified\":\"2026-09-30T22:06:49.000Z\",\"publisher\":{\"@id\":\"https://benchgen.com/#organization\"},\"isPartOf\":{\"@id\":\"https://benchgen.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BenchGen Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"BenchGen Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/guides/benchgen-ai-agent/working-with-the-agent.md","siteName":"BenchGen Documentation","nav":{"global":null,"tabs":[{"tab":"Platform","pages":[{"title":"Platform","href":""}]},{"tab":"Guides","groups":[{"group":"BenchGen AI Agent","icon":"robot","pages":[{"title":"BenchGen AI agent overview","sidebarTitle":"Overview","icon":"messages","href":"/guides/benchgen-ai-agent/overview"},{"title":"The autonomous loop","sidebarTitle":"Autonomous loop","description":"One message, and the BenchGen AI agent benchmarks a model, trains it on its failures, benchmarks it again and tells you whether it got better, with the price of every step.","icon":"bolt","href":"/guides/benchgen-ai-agent/autonomous-loop"},{"title":"Working with the BenchGen AI agent","icon":"robot","href":"/guides/benchgen-ai-agent/working-with-the-agent"},{"title":"Fix a benchmark that scores wrong","sidebarTitle":"Fixing a benchmark","description":"A low score often means the answer key is too narrow, not that the model is weak. How to tell which, prove the fix before applying it, and measure again.","icon":"wrench","href":"/guides/benchgen-ai-agent/fixing-a-benchmark"},{"title":"Keep your benchmarks in your own GitHub","sidebarTitle":"Benchmarks in git","icon":"code-branch","href":"/guides/benchgen-ai-agent/benchmarks-in-git"}]},{"group":"Benchmarks","pages":[{"title":"MRCRv2 with an External API model","icon":"plug","href":"/guides/benchmarks/mrcrv2-external-model"}]},{"group":"Router Models","icon":"route","pages":[{"title":"BenchGen Router Lite","icon":"diagram-project","href":"/guides/router-head/benchgen-router-lite"}]}]},{"tab":"Agent skills","pages":[{"title":"Agent skills","href":"/skills/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Working with the BenchGen AI agent - BenchGen Documentation","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-B97cnG_I.js","DynamicMarkdown-B7gJlzwx.js","zoom-image-lightbox-Dg9C7AQr.js","lightbox-handle-r17bVUz3.js"]}