sdk-ai-bot-run-evaluation
Skill135 starsChanged 2 months agoMITView on GitHub
Run Azure SDK QA bot evaluations on curated datasets locally, including a single test case. WHEN: "run evaluation", "run eval", "evaluate the bot", "run perf evaluation", "run basic evaluation", "run a single test case", "evaluate one question", "run all scenarios", "score the bot", "run evals locally". DO NOT USE FOR: preparing or uploading datasets, pipeline troubleshooting, knowledge-graph indexing.
- Reads credentials
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Run the Azure SDK QA bot evaluation locally with evals_run.py in the package tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation.
- Very specific: line 17
Run all commands from tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation with the package .venv active and az login done.
- Distinctive: line 22
USE FOR: run an evaluation on a curated dataset (basic or perf).
- Distinctive: line 23
WHEN: "run evaluation", "run eval", "evaluate the bot", "run perf evaluation", "run basic evaluation", "run a single test case", "evaluate …
- Distinctive: line 24
DO NOT USE FOR: preparing or uploading datasets, pipeline troubleshooting, knowledge-graph indexing
- Very specific: line 30
Use --is_ci False locally (uses az login).
- Very specific: line 32
Default evaluators are all seven.
- Very specific: line 67
Ensure the required env vars are set.
- Very specific: line 69
Run python evals_run.py --dataset <...> --is_ci False (add --baseline_check False for ad-hoc runs, --evaluators to subset).
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Run QA Bot Evaluation
Run the Azure SDK QA bot evaluation locally with evals_run.py in the package
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation. It calls the bot /completion endpoint
concurrently to collect answers, then grades them with the Foundry builtin LLM evaluators.
Run all commands from tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation with the package
.venv active and az login done. See running evaluations for flags, the bot endpoint options, single-case and all-scenario recipes, and how to read results.
Triggers
USE FOR: run an evaluation on a curated dataset (basic or perf); run a single scenario; run all scenarios; run a single test case; grade against the local or deployed bot; inspect results and the pass/fail gate WHEN: "run evaluation", "run eval", "evaluate the bot", "run perf evaluation", "run basic evaluation", "run a single test case", "evaluate one question", "run all scenarios", "score the bot", "run evals locally" DO NOT USE FOR: preparing or uploading datasets, pipeline troubleshooting, knowledge-graph indexing
Rules
--datasetaccepts a localevaluation_datasets/<target>/<scenario>.jsonlpath or a Foundry asset nameqa-bot-<target>-<scenario>[:version](the asset name resolves to the local file; the version is informational).- There is no single-testcase flag. To run one case, make a one-row JSONL file and pass it as
--dataset(see the reference). - Use
--is_ci Falselocally (usesaz login); CI uses pipeline identity. - The bot endpoint comes from
BOT_SERVICE_ENDPOINT; if unset it defaults to the localhttp://localhost:8089— start the agentserver.pyfirst for local runs. - Default evaluators are all seven; pass
--evaluatorsto subset.
Environment
Confirm and remind the user to set these before running (loads .env; copy and fill
tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation/env-variables):
| Purpose | Variables |
| Foundry grading | AZURE_AI_PROJECT_ENDPOINT, AZURE_EVALUATION_MODEL_NAME, EVALUATE_THRESHOLD (default 3) |
| Deployed bot | BOT_SERVICE_ENDPOINT + (BOT_AGENT_TOKEN_RESOURCE or BOT_AGENT_ACCESS_TOKEN) |
| Local bot | none — run agent server.py (defaults to http://localhost:8089) |
| Tenant routing | STORAGE_BLOB_ACCOUNT, BOT_CONFIG_CONTAINER, BOT_CONFIG_CHANNEL_BLOB |
| Auth | az login (with --is_ci False) |
Common commands
# One scenario (all evaluators), against the local server, no baseline gate:
python evals_run.py --dataset evaluation_datasets/perf/typespec.jsonl \
--is_ci False --baseline_check False --cache_result full
# Same via the asset name:
python evals_run.py --dataset "qa-bot-perf-typespec:latest" --is_ci False --baseline_check False
# Subset of evaluators:
python evals_run.py --dataset "qa-bot-basic-python:latest" \
--evaluators "bot_evals,groundedness" --is_ci False --baseline_check FalseFor a single test case, all scenarios, the deployed bot, and reading results / the gate, see running evaluations.
Steps
- Ensure the required env vars are set; for a local run, start the agent
server.py. - Choose the dataset: a scenario file, an asset name, or a one-row file for a single case.
- Run
python evals_run.py --dataset <...> --is_ci False(add--baseline_check Falsefor ad-hoc runs,--evaluatorsto subset). - Open the printed Foundry Report URL and review the per-case score table.
- With
--cache_result full, inspectcache/<scenario>-*.jsonfor per-case and failed-case detail.
In this repository43 other files it gives its agents.
- packages/python-packages/apiview-copilot/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- azsdk-common-apiview-feedback-resolutionSkill
- azsdk-common-generate-sdk-locallySkill
- azsdk-common-generate-sdk-pipelineSkill
- azsdk-common-pipeline-analysisSkill
- azsdk-common-pipeline-fixerSkill
- azsdk-common-prepare-release-planSkill
- azsdk-common-sdk-breaking-changeSkill
- azsdk-common-sdk-releaseSkill
- azsdk-common-typespec-namingSkill
- azure-typespec-assessmentSkill
- azure-typespec-authorSkill
- code-reviewSkill
- eval-authoring-skillSkill
- eval-authoring-toolSkill
- eval-authoring-workflowSkill
- markdown-token-optimizerSkill
- sdk-ai-bot-eval-datasetSkill
- skill-authoringSkill
- add-endpointSkill
- audit-filtersSkill
- dev-setupSkill
- kb-searchSkill
- report-active-reviewsSkill
- report-apiview-metricsSkill
- report-architect-commentsSkill
- report-feedbackSkill
- report-memorySkill
- report-revisionsSkill
- run-evalsSkill
- run-metricsSkill
- update-guidelinesSkill
- apiview-feedback-resolutionSkill
- azure-typespec-authorSkill
- generate-sdk-locallySkill
- azsdk-common-live-and-recorded-testsSkill
- markdown-token-optimizerSkill
- pipeline-troubleshootingSkill
- azsdk-common-prepare-release-planSkill
- azsdk-common-sdk-releaseSkill
- skill-authoringSkill
- pr-review-helpSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

