agentleFS
Microsoft AzureKnown publisherAzure/azure-sdk-tools/.github/skills/sdk-ai-bot-run-evaluation/SKILL.md

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
  1. Very specific:

    Run the Azure SDK QA bot evaluation locally with evals_run.py in the package tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation.

    line 13
  2. Very specific:

    Run all commands from tools/sdk-ai-bots/azure-sdk-qa-bot-evaluation with the package .venv active and az login done.

    line 17
  3. Distinctive:

    USE FOR: run an evaluation on a curated dataset (basic or perf).

    line 22
  4. Distinctive:

    WHEN: "run evaluation", "run eval", "evaluate the bot", "run perf evaluation", "run basic evaluation", "run a single test case", "evaluate …

    line 23
  5. Distinctive:

    DO NOT USE FOR: preparing or uploading datasets, pipeline troubleshooting, knowledge-graph indexing

    line 24
  6. Very specific:

    Use --is_ci False locally (uses az login).

    line 30
  7. Very specific:

    Default evaluators are all seven.

    line 32
  8. Very specific:

    Ensure the required env vars are set.

    line 67
  9. Very specific:

    Run python evals_run.py --dataset <...> --is_ci False (add --baseline_check False for ad-hoc runs, --evaluators to subset).

    line 69

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  • --dataset accepts a local evaluation_datasets/<target>/<scenario>.jsonl path or a Foundry asset name qa-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 False locally (uses az login); CI uses pipeline identity.
  • The bot endpoint comes from BOT_SERVICE_ENDPOINT; if unset it defaults to the local http://localhost:8089 — start the agent server.py first for local runs.
  • Default evaluators are all seven; pass --evaluators to 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):

PurposeVariables
Foundry gradingAZURE_AI_PROJECT_ENDPOINT, AZURE_EVALUATION_MODEL_NAME, EVALUATE_THRESHOLD (default 3)
Deployed botBOT_SERVICE_ENDPOINT + (BOT_AGENT_TOKEN_RESOURCE or BOT_AGENT_ACCESS_TOKEN)
Local botnone — run agent server.py (defaults to http://localhost:8089)
Tenant routingSTORAGE_BLOB_ACCOUNT, BOT_CONFIG_CONTAINER, BOT_CONFIG_CHANNEL_BLOB
Authaz 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 False

For a single test case, all scenarios, the deployed bot, and reading results / the gate, see running evaluations.

Steps

  1. Ensure the required env vars are set; for a local run, start the agent server.py.
  2. Choose the dataset: a scenario file, an asset name, or a one-row file for a single case.
  3. Run python evals_run.py --dataset <...> --is_ci False (add --baseline_check False for ad-hoc runs, --evaluators to subset).
  4. Open the printed Foundry Report URL and review the per-case score table.
  5. With --cache_result full, inspect cache/<scenario>-*.json for per-case and failed-case detail.

Download now (ZIP)

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.