Skip to main content

run-evals

Run evaluation tests for prompt quality. Use for: run evals, validate prompt changes, check prompt quality, eval recording, evaluation failure, debug eval, use recording.

Informações da origem

Repositório
Azure/azure-sdk-tools
Última atividade na origem
6 de abril de 2026 às 20:16
Idioma detectado do SKILL.md
inglês
Estrelas
134
Forks
262

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
run-evals
description
Run evaluation tests for prompt quality. Use for: run evals, validate prompt changes, check prompt quality, eval recording, evaluation failure, debug eval, use recording.
# Run Evaluations ## When to Use - After modifying any `.prompty` file to validate quality hasn't regressed - Debugging failing or partial eval results - Iterating on prompts with cached recordings to avoid LLM costs ## Running Evals Always activate the virtualenv first: `.venv\Scripts\activate` (Windows) or `source .venv/bin/activate` (Linux/macOS). ### Via CLI ```bash # Run all workflows avc test eval # Run a specific workflow avc test eval --test-paths evals/tests/mention_action # Run a single test file avc test eval --test-paths evals/tests/filter_existing_comment/discard_azure_sdk_repeat_comment.yaml # Multiple runs (median result kept) avc test eval --num-runs 5 --test-paths evals/tests/filter_comment_metadata # Use recordings (cached LLM responses) — first run saves, subsequent runs reuse avc test eval --use-recording --test-paths evals/tests/mention_action # Verbose output (show passing tests too) avc test eval --style verbose ``` ### Via run.py directly ```bash cd evals python run.py --test-paths tests/mention_action ``` ## Existing Workflows | Workflow directory | Kind | Target function in `_custom.py` | Prompt tested | |---|---|---|---| | `mention_action` | `prompt` | `_mention_action_workflow` | `parse_conversation_action.prompty` | | `mention_summarize` | `summarize_prompt` | `_mention_summarize_workflow` | `summarize_github_actions.prompty` | | `thread_resolution_action` | `prompt` | `_thread_resolution_action_workflow` | `parse_thread_resolution_action.prompty` | | `filter_comment_metadata` | `prompt` | `_filter_comment_metadata` | `filter_comment_with_metadata.prompty` | | `filter_existing_comment` | `prompt` | `_filter_existing_comment` | `filter_existing_comment.prompty` | | `deduplicate_parser_issue` | `prompt` | `_deduplicate_parser_issue` | `deduplicate_parser_issue.prompty` | | `deduplicate_guidelines_issue` | `prompt` | `_deduplicate_guidelines_issue` | `deduplicate_guidelines_issue.prompty` | | `filter_generic_comment` | `prompt` | `_filter_generic_comment` | `filter_generic_comment.prompty` | | `judge_comment_confidence` | `prompt` | `_judge_comment_confidence` | `judge_comment_confidence.prompty` | | `merge_comments` | `summarize_prompt` | `_merge_comments` | `merge_comments.prompty` | | `generate_correlation_ids` | `prompt` | `_generate_correlation_ids` | `generate_correlation_ids.prompty` | ### Evaluator kinds - **`prompt`** — Action-based. Compares expected vs actual action, then similarity-scores the rationale. Wrong action = 0%. - **`summarize_prompt`** — Summary-based. Uses `SimilarityEvaluator` on full output. Success threshold: score > 70%. ## Recordings - Stored in `evals/recordings/<workflow_name>/<testcase_id>.json` - Gitignored — each dev builds their own cache - If you change a test file, delete its recording or run without `--use-recording` - `--use-recording` on first run makes LLM calls and saves; subsequent runs reuse cached responses ## Gotchas - **Use `python cli.py` not `.\avc`**: The `avc.bat` script calls bare `python` which may resolve to the system Python instead of the venv. Use `.venv\Scripts\activate; python cli.py test eval ...` to ensure the venv Python is used. - **Field name mismatch**: Test YAML fields must exactly match target function parameter names (excluding `testcase` and `response`) - **Stale recordings**: After changing a prompt, delete recordings or run without `--use-recording` to get fresh results - **Testcase uniqueness**: The `testcase` field must be unique across all test files in a workflow — it's the cache key - **Kind validation**: The `kind` in `test-config.yaml` must be registered in `_config_loader.py` (`prompt` or `summarize_prompt`)
Ver no GitHub