m365-agent-evaluator
microsoft/skills
@microsoft/m365-copilot-eval CLI를 사용하여 Microsoft 365 Copilot 선언형 에이전트에 대한 평가 스위트를 생성, 실행 및 분석합니다.
...모든 것을 확장하십시오M365 에이전트 평가기
이 스킬을 사용하여 사용자가 @microsoft/m365-copilot-eval을 통해 Microsoft 365 Copilot 선언형 에이전트를 평가할 수 있도록 지원합니다. 이 스킬은 스키마와 호환되는 평가 데이터 세트를 설계하고, 공개 미리 보기 CLI를 실행하며, 결과를 분석하고, 구체적인 수정 사항을 권장합니다.
Microsoft 365 Agents Toolkit(ATK) 프로젝트가 감지되면 이를 기본값으로 사용하지만, 현재 디렉터리가 ATK가 아니라는 이유만으로 강제로 중지하지는 않습니다. 또한 CLI는 명시적인 M365_AGENT_ID 또는 --m365-agent-id를 사용하여 배포된 에이전트를 평가할 수도 있습니다.
항상 다음 CLI 호출을 사용하십시오.
npx -y --package @microsoft/m365-copilot-eval@latest runevals
구형 비공개 aka.ms 설치 프로그램, 전역 설치, runeval만 단독으로 실행, npx runeval만 단독으로 실행, --input 또는 --html은 권장하지 않습니다.
활성화 워크플로
- 사용자 목표(설정, 데이터 세트 작성, 평가 실행, 결과 분석 또는 기존 평가 제품군 업데이트)를 파악합니다.
- 현재 목표에 필요한 참조 자료만 불러오세요:
- 엔드투엔드 운영자 워크플로 및 CLI 명령어에 대해서는
references/workflow.md를참조하십시오. - 필수 구성 요소, 환경 파일 및 비밀 정보 처리에 대해서는
references/azure-setup.md를참조하십시오. - 평가 데이터셋을 생성하거나 편집할 때는
references/eval-templates.md를참조하십시오. - 생성할 시나리오를 결정할 때는
references/pra-framework.md를참조하세요. - JSON/CSV/HTML 결과가 생성된 후에는
references/result-analysis.md를참조하십시오. references/guardrails.md: 파일 작성, 시크릿 처리, 캐시 지우기, 로그아웃 또는 문제 해결을 수행하기 전에 참조하십시오.
- 엔드투엔드 운영자 워크플로 및 CLI 명령어에 대해서는
- 프로젝트 구조 파악:
- ATK:
.env.local,.env.local.user,env\.env.local.user,m365agents.yml또는appPackage\declarativeAgent.json. - ATK 이외: eval 데이터셋과
M365_AGENT_ID,--m365-agent-id, 또는env\.env.dev와 같은 명명된 환경 파일.
- ATK:
- 값을 노출하지 않고 필수 조건을 확인하려면:
- Node.js 24.12.0 이상.
- Microsoft 365 Copilot 라이선스 및 배포된 M365 Copilot 에이전트.
- WorkIQ 클라이언트 앱에 대한 테넌트 관리자의 동의.
TENANT_ID, Foundry Models 엔드포인트/키의 Azure OpenAI, 권장/기본gpt-4o-mini배포.
- 워크플로를 선택하십시오:
- 데이터 세트가 없는 경우:
evals\evals.json생성. - 기존 데이터 세트: 실행, 이전 결과 분석 또는 변경 사항 제안.
- 간단한 확인: 인라인 프롬프트 사용.
- 탐색: 대화형 모드를 사용하세요.
- 데이터 세트가 없는 경우:
현재 데이터셋 계약
루트 항목 배열이 포함된 스키마 버전 1.2.0 문서를 생성합니다. 이전 PromptsObject 또는 루트 프롬프트 형식은 생성하지 마십시오.
최소 구조:
{
"schemaVersion": "1.2.0",
"metadata": {
"name": "에이전트 평가 제품군",
"tags": ["starter"]
},
"default_evaluators": {
"Relevance": {},
"Coherence": {}
},
"items": [
{
"prompt": "이 에이전트가 무엇을 도와줄 수 있나요?",
"expected_response": "에이전트는 지원되지 않는 기능을 임의로 만들어내지 않고, 지원되는 범위를 설명합니다."
}
]
}
로컬 스키마 소스로 references\prompts-schema.json을 사용하고, 복사 가능한 단일 턴, 다중 턴, 평가기 및 임계값 예제는 references\eval-templates.md를 참조하십시오.
공개 평가기 이름
평가기 이름은 대소문자를 구분합니다. 더 새로운 권위 있는 출처에서 달리 명시되지 않는 한, 공개적으로 구성 가능한 평가기 이름만 사용하십시오.
| 평가기 | 의미론 |
|---|---|
관련성 |
1~5점의 LLM 점수; 기본 임계값 3. |
일관성 |
1~5점의 LLM 점수; 기본 임계값 3. |
근거성 |
문맥/기대되는 증거에 대한 LLM 점수(1~5점); 기본 임계값 3. |
유사성 |
예상 응답에 대한 LLM 점수(1~5점); 기본 임계값 3. |
인용 |
카운트 기반 인용 확인; 기본 임계값 1. |
ExactMatch |
부울 값을 사용하는 문자열의 정확한 일치 여부 확인. |
PartialMatch |
0.0~1.0 범위의 문자열 유사도; 기본 임계값 0.5. |
작성 시 ToolCallAccuracy를 레거시/비공개로 취급합니다. 현재의 공개 CLI/스키마 문서에서 명시적으로 재도입하지 않는 한, 생성된 데이터 세트에 이를 추가하지 마십시오.
일반적인 명령어
# 버전/도움말 확인
npx -y --package @microsoft/m365-copilot-eval@latest runevals --version
npx -y --package @microsoft/m365-copilot-eval@latest runevals --help
# 초기 설정 / EULA
npx -y --package @microsoft/m365-copilot-eval@latest runevals accept-eula
npx -y --package @microsoft/m365-copilot-eval@latest runevals --init-only
# 명시적인 JSON 출력을 사용하여 일괄 실행
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.json
# 사람이 검토하기 쉬운 HTML 또는 스프레드시트용 CSV
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.html
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.csv
# 빠른 확인
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts "무엇을 도와드릴까요?" --expected "에이전트가 지원하는 범위를 설명합니다."
# ATK가 아닌 환경 또는 지정된 환경
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --m365-agent-id --env dev
--concurrency 옵션은 1~5 사이의 값으로만 사용하십시오. 디버깅 시에는 1 로 시작하고, 환경이 안정화된 후에만 값을 늘리십시오.
버전 및 PATH 안전성
에이전트 동작을 진단하기 전에 어떤 실행 파일이 실행 중인지 확인하십시오:
Get-Command runevals -All
npm list -g @microsoft/m365-copilot-eval --depth=0
npm view @microsoft/m365-copilot-eval version
npx -y --package @microsoft/m365-copilot-eval@latest runevals --version
npx -y --package @microsoft/m365-copilot-eval@latest where runevals
단순히 runevals를 실행했을 때 “이 버전의 M365 Evals CLI는 더 이상 작동하지 않으며 업데이트해야 합니다”라는 메시지가 표시된다면, 이는 오래된 PATH/글로벌 설치로 간주하십시오. 위의 npx --package ...@latest 명령을 사용하여 다시 실행한 다음, npm uninstall -g @microsoft/m365-copilot-eval을 사용하여 전역 쉴드를 제거하기 전에 확인 메시지를 표시하십시오.
파일 명명 규칙
| 경로 | 목적 |
|---|---|
.env.local |
M365_TITLE_ID와 같은 비기밀 ATK 구성. |
.env.local.user 또는 env\.env.local.user |
테넌트 ID 및 Azure OpenAI 키와 같은 로컬 비밀 정보. |
env\.env. |
ATK가 아닌 경우 또는 명시적인 --env 워크플로를 위한 명명된 환경 구성. |
evals\evals.json |
사용자가 커밋하기를 원하는 경우, 소스 제어되는 eval 데이터 세트입니다. |
.evals\ |
로컬 실행 결과물; 일반적으로 gitignored로 처리됩니다. |
사용자가 명시적으로 요청하고 데이터 공유가 안전함을 확인하지 않는 한, 비밀 정보, 민감한 데이터가 포함된 프롬프트, 검색된 콘텐츠, 디버그 로그 또는 원시 결과 파일을 절대 출력하거나 커밋하지 마십시오.
생성 지침
PRA를 시나리오 설계 프레임워크로 활용하십시오:
- 인식: 검색, 근거 확립, 출처 포괄성.
- 추론: 지시 사항 준수, 종합, 모호성 처리 및 거부 행동.
- Act: 선언된 기능/행동 양상.
Relevance,Coherence,Similarity,ExactMatch또는PartialMatch와같은 공개 평가기를 사용하여 점수를 매기십시오. 구식ToolCallAccuracy는사용하지 마십시오.
기존 데이터셋을 덮어쓰기 전에 확인하십시오. 생성된 평가 결과를 기록할 때는 먼저 임시 파일에 작성한 후, 성공 시 파일 이름을 변경하십시오.
결과 분석 지침
존재하는 평가 기준 키만 분석하십시오. 점수 키가 누락된 경우, 이는 일반적으로 해당 항목에 대해 평가기가 구성되지 않았음을 의미하며, 평가에 실패했음을 의미하지는 않습니다.
존재하는 경우 현재 점수 키( relevance, coherence, groundedness, similarity, citations, exactMatch, partialMatch)를 사용하십시오. 실패 사례를 가능한 근본 원인으로 그룹화하십시오: 지시문 문제, 근거 문제, 인용 문제, 예상 답변 불일치, 역량 격차, 인증/환경 문제 또는 평가 품질 문제.
사용자가 필요한 테넌트, 에이전트 및 Azure OpenAI 구성을 제공하거나 승인하지 않은 경우, 실제 테넌트 기반 평가를 실행하지 마십시오.
---
name: m365-agent-evaluator
description: Create, run, and analyze evaluation suites for Microsoft 365 Copilot declarative agents using the @microsoft/m365-copilot-eval CLI.
---
# M365 Agent Evaluator
Use this skill to help users evaluate Microsoft 365 Copilot declarative agents with `@microsoft/m365-copilot-eval`. The skill designs schema-compatible eval datasets, runs the public preview CLI, analyzes results, and recommends targeted fixes.
Default to Microsoft 365 Agents Toolkit (ATK) projects when detected, but do not hard-stop solely because the current directory is not ATK. The CLI can also evaluate deployed agents with an explicit `M365_AGENT_ID` or `--m365-agent-id`.
## Always use this CLI invocation
```powershell
npx -y --package @microsoft/m365-copilot-eval@latest runevals
```
Do not recommend the old private `aka.ms` installer, global installs, bare `runevals`, bare `npx runevals`, `--input`, or `--html`.
## Activation workflow
1. Identify the user goal: setup, dataset authoring, running evals, analyzing results, or updating an existing eval suite.
2. Load only the reference needed for the current goal:
- `references/workflow.md` for the end-to-end operator workflow and CLI commands.
- `references/azure-setup.md` for prerequisites, env files, and secret handling.
- `references/eval-templates.md` when creating or editing eval datasets.
- `references/pra-framework.md` when deciding what scenarios to generate.
- `references/result-analysis.md` after JSON/CSV/HTML results exist.
- `references/guardrails.md` before writing files, handling secrets, clearing cache, signing out, or troubleshooting.
3. Detect project shape:
- ATK: `.env.local`, `.env.local.user`, `env\.env.local.user`, `m365agents.yml`, or `appPackage\declarativeAgent.json`.
- Non-ATK: an eval dataset plus `M365_AGENT_ID`, `--m365-agent-id`, or a named environment file such as `env\.env.dev`.
4. Verify prerequisites without exposing values:
- Node.js 24.12.0 or newer.
- Microsoft 365 Copilot license and a deployed M365 Copilot agent.
- Tenant admin consent for the WorkIQ Client App.
- `TENANT_ID`, Azure OpenAI in Foundry Models endpoint/key, and recommended/default `gpt-4o-mini` deployment.
5. Choose the workflow:
- No dataset: create `evals\evals.json`.
- Existing dataset: run, analyze prior results, or propose changes.
- Quick check: use inline prompts.
- Exploration: use interactive mode.
## Current dataset contract
Generate schema version `1.2.0` documents with a root `items` array. Do not generate the old `PromptsObject` or root `prompts` format.
Minimum shape:
```json
{
"schemaVersion": "1.2.0",
"metadata": {
"name": "Agent evaluation suite",
"tags": ["starter"]
},
"default_evaluators": {
"Relevance": {},
"Coherence": {}
},
"items": [
{
"prompt": "What can this agent help me with?",
"expected_response": "The agent explains its supported scope without inventing unsupported capabilities."
}
]
}
```
Use `references\prompts-schema.json` as the local schema source and `references\eval-templates.md` for copyable single-turn, multi-turn, evaluator, and threshold examples.
## Public evaluator names
Evaluator names are case-sensitive. Use only the public configurable evaluator names unless a newer authoritative source proves otherwise.
| Evaluator | Semantics |
|---|---|
| `Relevance` | LLM score from 1-5; default threshold 3. |
| `Coherence` | LLM score from 1-5; default threshold 3. |
| `Groundedness` | LLM score from 1-5 against `context`/expected evidence; default threshold 3. |
| `Similarity` | LLM score from 1-5 against `expected_response`; default threshold 3. |
| `Citations` | Count-based citation check; default threshold 1. |
| `ExactMatch` | Boolean exact string match. |
| `PartialMatch` | String similarity from 0.0-1.0; default threshold 0.5. |
Treat `ToolCallAccuracy` as legacy/private for authoring. Do not add it to generated datasets unless current public CLI/schema documentation explicitly reintroduces it.
## Common commands
```powershell
# Version/help checks
npx -y --package @microsoft/m365-copilot-eval@latest runevals --version
npx -y --package @microsoft/m365-copilot-eval@latest runevals --help
# First-time setup / EULA
npx -y --package @microsoft/m365-copilot-eval@latest runevals accept-eula
npx -y --package @microsoft/m365-copilot-eval@latest runevals --init-only
# Batch run with explicit JSON output
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.json
# Human-review HTML or spreadsheet-friendly CSV
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.html
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --output .evals\results.csv
# Quick checks
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts "What can you help me with?" --expected "The agent describes its supported scope."
# Non-ATK or named environment
npx -y --package @microsoft/m365-copilot-eval@latest runevals --prompts-file evals\evals.json --m365-agent-id <agent-id> --env dev
```
Use `--concurrency` only with values 1-5. Start with `1` for debugging and increase only after setup is stable.
## Version and PATH safety
Before diagnosing agent behavior, confirm which executable is running:
```powershell
Get-Command runevals -All
npm list -g @microsoft/m365-copilot-eval --depth=0
npm view @microsoft/m365-copilot-eval version
npx -y --package @microsoft/m365-copilot-eval@latest runevals --version
npx -y --package @microsoft/m365-copilot-eval@latest where runevals
```
If bare `runevals` prints `This version of the M365 Evals CLI has stopped working and must be updated`, treat it as a stale PATH/global install. Re-run with the `npx --package ...@latest` command above, then ask before removing global shims with `npm uninstall -g @microsoft/m365-copilot-eval`.
## File conventions
| Path | Purpose |
|---|---|
| `.env.local` | Non-secret ATK config such as `M365_TITLE_ID`. |
| `.env.local.user` or `env\.env.local.user` | Local secrets such as tenant ID and Azure OpenAI key. |
| `env\.env.<environment>` | Named environment config for non-ATK or explicit `--env` workflows. |
| `evals\evals.json` | Source-controlled eval dataset if the user wants it committed. |
| `.evals\` | Local run outputs; usually gitignored. |
Never print or commit secrets, prompts containing sensitive data, retrieved content, debug logs, or raw result files unless the user explicitly asks and confirms the data is safe to share.
## Generation guidance
Use PRA as a scenario-design framework:
- Perceive: retrieval, grounding, and source coverage.
- Reason: instruction adherence, synthesis, ambiguity handling, and refusal behavior.
- Act: declared capability/action behavior. Score with public evaluators such as `Relevance`, `Coherence`, `Similarity`, `ExactMatch`, or `PartialMatch`; do not use legacy `ToolCallAccuracy`.
Ask before overwriting an existing dataset. When writing generated evals, write to a temporary file first and rename on success.
## Result analysis guidance
Analyze only evaluator keys that are present. Missing score keys usually mean the evaluator was not configured for that item, not that it failed.
Use current score keys when present: `relevance`, `coherence`, `groundedness`, `similarity`, `citations`, `exactMatch`, and `partialMatch`. Group failures into likely root causes: instruction issue, grounding issue, citation issue, expected-answer mismatch, capability gap, auth/environment issue, or eval-quality issue.
Do not run real tenant-dependent evals unless the user has provided or approved the necessary tenant, agent, and Azure OpenAI configuration.
모든 파일
17개 파일m365-agent-evaluator 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/microsoft/skills/tree/main/.github/plugins/microsoft-365-agents-toolkit/skills/m365-agent-evaluator # Copy SKILL.md to your .claude/skills/ directory
복사





집
