Create, validate, and run eval.yaml suites for agent skill evaluation.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "vally-eval" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/GitHub-Copilot-for-Azure/main/.github/skills/vally-eval/SKILL.md 2. Save it as ~/.claude/skills/vally-eval/SKILL.md 3. Reload skills and tell me it's ready
Create a vally eval.yaml suite for a customer support agent with 5 test cases, input stimuli, expected behaviors, and scoring rules.
A complete eval.yaml draft with test samples and scoring configuration.
Validate this eval.yaml for missing fields, formatting errors, or grader configuration issues, and suggest fixes.
A list of configuration issues, explanations, and directly usable fixes.
Convert 10 existing manual test cases into vally eval.yaml format and map an appropriate grading standard to each one.
Structured eval.yaml content with migrated test mappings and corresponding grading logic.
Skills in the azure-skills plugin are required to have integration tests that run prompts against an LLM agent to evaluate whether they help the agent accomplish goals in target scenarios. Such integration tests are written as vally eval suites, using vally as the underlying tool for running tests and grading the agent outcome.
Vally eval suites are written as yaml documents. All eval suites share eval spec.
Refer to the official documentation on the schema of the spec and the schema of the eval suites writing-eval-specs.
Vally eval suites for azure-skills plugin have the following file layout. The shared eval spec is located at <repo-root>/.vally.yaml. The eval suites are categorized by skills. The eval suites for each skill are located at <repo-root>/evals/<skill-name>/eval.yaml, e.g. <repo-root>/evals/azure-ai/eval.yaml. If a skill needs fixture files for its eval suites, it should organize such fixture files in a fixture directory under its directory, e.g. <repo-root>/evals/azure-ai/fixture/.
azure-skills plugin have implemented JavaScript integration test using Jest as the underlying test runner. All such integration tests are under tests/**/integration.test.ts files.
To migrate integration test for a skill to vally suites, create its eval suite spec at <repo-root>/evals/<skill-name>/eval.yaml, add a suite that runs the same prompt and uses vally's built-in graders to grade the trajectory of the agent run. If the integration test grades the agent run in a way that vally's built-in graders don't support, refer to the official documentation on how to create a custom grader writing-custom-grader.
The legacy Jest based integration test framework implemented features that vally doesn't support yet, such as early termination, follow up, system prompt modification, screenshot taking, etc. Besides, the azure-skills plugin runs automated integration tests, collects its exported data and feeds the data to a dashboard web app under <repo-root>/dashboard/ to monitor skill integration test results.
If you intend to have your vally suites use any of the extended features or have their results be consumed by the dashboard, you MUST use the custom executor in your vally suites.
The custom executor in azure-skills plugin uses special tag values to control the behavior of the custom executor. See tag-helpers.ts to learn what special tags are supported.
Note: If an eval suite specifies an earlyTerminate condition, the suite MUST NOT use the
completedgrader because early terminated runs will always fail thecompletedgrader by design.
Vally eval suites for azure-skills plugin follow certain conventions. For example, all eval suites must have a type, tier, cost and area tag so they can be run for a corresponding target group. To ensure all eval suites follow the conventions, a script is added to validate the eval suites and report errors when it sees any violation. To run the script, execute this command from the scripts/ directory.
# cwd as <repo-root>/scripts/
npm run vally validate-stimulus
Extended features such as early termination are implemented using tags and many of them use serialized JSON objects as input. This validation script also validates the values of these special tags.
Use vally-cli to run vally eval suites. In most cases, you would like to use a command like this.
# In tests/
npm run test:vally -- --skill $SKILL
…
Analyze and compress Markdown to reduce tokens and improve AI efficiency.
Write, review, and standardize Agent Skills to match agentskills.io requirements.
Discover Azure OpenAI capacity, quotas, and best regions for deployment.
Query and analyze logs, telemetry, and time-series data in Azure Data Explorer.
Quickly deploy Azure OpenAI to the best available region automatically.
Assess AKS Automatic readiness and generate fixes for migration blockers.
Build formal evaluations for Claude Code sessions with eval-driven development.
Validate EU, UK, and AU VAT numbers with e-invoicing compliance support.
Validate JSON, emails, and other inputs for agents and applications.
Validate VAST ad tags against IAB specs and identify rule violations.
Generate test scenarios and measure how well agents follow skills and rules.
Autonomously evaluate web apps to uncover functionality, performance, and usability issues.