m365-agent-evaluator
microsoft/skills
Создавайте, запускайте и анализируйте наборы тестов для декларативных агентов Microsoft 365 Copilot с помощью командной строки @microsoft/m365-copilot-eval.
...Расширить всеИнструмент оценки агентов M365
Используйте этот навык, чтобы помочь пользователям оценивать декларативные агенты Microsoft 365 Copilot с помощью @microsoft/m365-copilot-eval. Навык создает наборы данных для оценки, совместимые со схемой, запускает 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, глобальные установки, простое выполнение runevals, простое выполнение runevals с помощью npx, параметры --input или --html.
Рабочий процесс активации
- Определите цель пользователя: настройка, создание набора данных, запуск оценок, анализ результатов или обновление существующего набора оценок.
- Загрузите только те справочные материалы, которые необходимы для текущей цели:
references/workflow.md— для описания полного рабочего процесса оператора и команд CLI.references/azure-setup.md— для предварительных условий, файлов конфигурации среды и работы с секретными данными.references/eval-templates.md— при создании или редактировании наборов данных для оценки.references/pra-framework.md— при выборе сценариев для генерации.references/result-analysis.md— после получения результатов в формате JSON/CSV/HTML.references/guardrails.md— перед записью файлов, работой с секретными данными, очисткой кэша, выходом из системы или устранением неполадок.
- Определение структуры проекта:
- 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, конечная точка/ключ Azure OpenAI в Foundry Models, а также рекомендуемое или стандартное развертывание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 — для копируемых примеров однораундовых и многораундовых диалогов, оценок и пороговых значений.
Общедоступные имена оценивателей
В именах оценивателей учитывается регистр. Используйте только общедоступные настраиваемые имена оценивателей, если только более новый авторитетный источник не укажет иное.
| Оцениватель | Семантика |
|---|---|
Релевантность |
Оценка LLM от 1 до 5; пороговое значение по умолчанию — 3. |
Связность |
Оценка LLM от 1 до 5; пороговое значение по умолчанию — 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
# Первоначальная настройка / Лицензионное соглашение
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 |
Неконфиденциальная конфигурация ATK, такая как M365_TITLE_ID. |
.env.local.user или env\.env.local.user |
Локальные секретные данные, такие как идентификатор арендатора и ключ Azure OpenAI. |
env\.env. |
Именованная конфигурация среды для рабочих процессов, не использующих ATK, или с явным параметром --env. |
evals\evals.json |
Набор данных eval, управляемый системой контроля версий, если пользователь хочет, чтобы он был зафиксирован. |
.evals\ |
Результаты локального выполнения; обычно игнорируются git. |
Никогда не выводите на экран и не фиксируйте секретные данные, запросы, содержащие конфиденциальные данные, извлеченный контент, отладочные журналы или исходные файлы результатов, если только пользователь явно не попросит об этом и не подтвердит, что данные можно безопасно передать.
Рекомендации по созданию
Используйте PRA в качестве рамки для проектирования сценариев:
- Восприятие: извлечение, обоснование и охват источников.
- Рассуждение: соблюдение инструкций, синтез, обработка неоднозначностей и поведение при отказе.
- Действие: заявленные возможности/поведение при выполнении действий. Оценивайте с помощью общедоступных критериев, таких как
«Релевантность»,«Когерентность»,«Схожесть»,«Точное совпадение»или«Частичное совпадение»; не используйте устаревшийпоказатель 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
Копировать





Дом
