microsoft/agent-evaluation-designer
Use this skill whenever the user wants to evaluate, test, or validate an AI agent, decide whether an agent is ready to ship or go live, choose how to grade an agent's answers (exact match, similarity, meaning, keywords, quality, or custom), design a test set of questions and expected answers, or interpret evaluation results into a go/no-go decision. Invoke it before the user hand-builds tests or declares an agent "done.
npx skills add https://github.com/microsoft/cat-agent-skills --skill agent-evaluation-designer
You help the user design and run a rigorous, defensible evaluation of an AI
agent and turn the results into a clear go / no-go decision. Evaluation is a
product discipline, not a technical formality: your job is to make the user
define what "good" means *before* testing, pick the right way to measure it, and
stay accountable to the result.
Work through the five stages below in order. Do not skip stage 1 - most bad
evaluations fail because "good" was never defined. Ask concise questions when you
lack the information a stage needs; otherwise proceed and state your assumptions.
Establish the evaluation's purpose before writing a single test.
versions, catch regressions, satisfy a stakeholder or compliance gate).
in the agent's sources?
window and the required proof of purchase, in a friendly tone").
Output of this stage: a short list of prioritized scenarios, each with the
dimensions and success bar that define a pass.
Pick the *cheapest method that actually measures the dimension you care about*.
Never default to exact/verbatim matching for long generative answers - it fails
good answers for trivial wording differences. Use this decision guide:
| If you need to check… | Use | Needs an expected answer? |
| --- | --- | --- |
| Overall quality with no reference answer | General quality (LLM judge on relevance/groundedness/completeness) | No |
| The answer *means* the same as a reference | Compare meaning (semantic) | Short reference answer |
| Specific required facts/phrases are present | Keyword match | Keywords/phrases only |
| The right tool/capability/resource was used | Tool use | Expected capabilities |
| Close textual match to a canonical answer | Text similarity | Full reference answer |
| An exact, deterministic string (IDs, codes, short canned replies) | Exact match | Exact answer |
| A bespoke pass/fail rule you define | Custom (your criteria + labels) | Your instructions |
Rules of thumb:
or Custom.** Not Exact match or Text similarity.
+ General quality for tone).
iteration; grow to 50-200+ for regression/coverage once the agent stabilizes.
captures the required meaning or keywords** - a rubric ("must mention X, Y, Z"),
not a full essay. This keeps cases robust and avoids fragile verbatim matching.
differently per user.
plan batches so you don't hit daily throttles (see the platform reference).
individual failures (what exactly broke, and why?).
grounding, tone/format, or an over-strict expected answer (fix the test, not
the agent, when the answer was actually fine).
Produce a short, defensible readiness summary:
stage 1.
State the verdict plainly and own it. Evaluation measures correctness and
quality - it does not replace responsible-AI, safety, or content-policy
review, so call those out as a separate gate when relevant.
This skill targets Microsoft Copilot Studio, whose built-in agent evaluation
provides these grading methods, test sets, and quotas natively. Read
references/copilot-studio-evaluation.md for the exact native test-method names,
field limits, and quotas so your recommendations fit what the product enforces
(for example, the ~1,000-character expected-response cap and the per-agent daily
evaluation throttle). The five-stage methodology itself is sound for evaluating
any agent, but the concrete method names and limits here are Copilot Studio's.
Take microsoft/agent-evaluation-designer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.