[Agent evals] Add Vally coverage for Python skills and onboard the shared eval pipeline
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- azure, python
- Área
- ci-cd, devops, testing-qa
Línea de trabajo
Start with the listed Skill eval authoring workflow and inspect each Python skill's .github/skills//SKILL.md, then compare the eval.yaml and .vally.yaml examples. Review eng/pipelines/skill-eval.yml requirements and run strict Vally lint plus focused local evals using the mock MCP. Done means all nine skills have routed coverage, required boundaries and graders pass, and the report-only pipeline publishes its standard artifacts.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
This tracks the Python rollout for Azure/azure-sdk-tools#16348
Before enabling the shared language-repository eval pipeline, add current-format Vally coverage for the Python-specific Agent Skills. Shared azsdk-common-* skills already carry centrally synced evals and should not be duplicated or independently modified here.
Use these sources of truth:
- Skill eval authoring workflow
- Eval authoring guide
- Skill eval layout example
- Vally configuration example
- Shared skill-eval entrypoint
- Shared eval archetype
Do not copy the eval-authoring-* meta-skills into this repository.
Skill eval work
Add Vally coverage for every Python-owned skill under .github/skills/:
agentic-workflowscreate-api-reviewcreate-package-skillfind-package-skillfix-blackfix-mypyfix-pylintfix-sphinxgenerate-api-markdown
For each skill:
- Read its
SKILL.md, especially its activation boundaries, guardrails, and invoked tools or commands. - Put routing and capability coverage in
.github/skills/<skill>/evals/eval.yaml. Split into additional<behavior>.eval.yamlfiles only when coverage is genuinely large. - Add at least three realistic triggers and three anti-triggers using
skill-invocation. - For a boundary prompt, mount the closest competing skill, require that skill, and disallow the skill under test.
- Add capability or guardrail stimuli using
tool-callsand deterministic output, file, or command graders where applicable. - Supply concrete Python package names, repository paths, diagnostics, target branches, or other identifiers needed to complete the request.
- Use hermetic fixtures and the mock MCP. Do not use secrets, network-dependent writes, or production targets.
- Set
tags.areato the exact skill name, usedefaults:, and setscoring.threshold: 0.8.
Cover meaningful boundaries, including:
fix-black,fix-mypy,fix-pylint, andfix-sphinx; each diagnostic must route only to the correct fixer.create-api-reviewversusgenerate-api-markdownand shared APIView feedback resolution.create-package-skillversusfind-package-skilland ordinary package modification.agentic-workflowsversus Azure SDK CI, package, or release workflows.
Capability fixtures for the fixer skills should contain small representative diagnostics and source files. Grade the expected correction and verification command rather than relying on a response keyword. Do not contact GitHub or create real pull requests from evals.
Repository configuration
Add .github/skills/.vally.yaml following the tools-repo layout:
- Register every local and synced skill eval directory.
- Define
azsdk-mcp-mockusing../../artifacts/mcp/mock/azsdk-mock.dll. - Set
cwd: .for the MCP server so paths remain stable in Vally trial workspaces. - Add
.github/skills/.gitignorefor Vally results and caches.
Pipeline
Add eng/pipelines/skill-eval.yml as a thin entrypoint extending:
/eng/common/pipelines/templates/stages/archetype-eval.yml
Required configuration:
- Declare
Azure/azure-sdk-toolsas repository resourceazure-sdk-tools, using endpointAzureandrefs/heads/main. - Use
/eng/common/pipelines/templates/steps/eval-mcp-setup.yml. - Set
TestType: mockandtoolsRepo: azure-sdk-tools. - Set
vallyRoot: .github/skills. - Discover both
*/evals/eval.yamland*/evals/*.eval.yamlso local and synced suites run. - Use
threshold: 0.8,failOnFailedTests: false, andshardTimeoutInMinutes: 20. - Reference
/eng/pipelines/templates/variables/image.ymlandAzSDK_Eval_Variable_group. - Start manual/scheduled on
mainwithtrigger: noneandpr: none. Add selective PR triggers or blocking only after the pilot is stable.
Do not copy or customize shared eng/common framework files in this repository. Framework fixes belong in azure-sdk-tools and must arrive through the normal sync.
Register the YAML as the python - skill eval Azure DevOps pipeline and authorize its repository resource and variable group.
Acceptance criteria
- Every current Python-owned skill has current-format Vally routing coverage.
- The four fixer skills have discriminating boundary and capability tests.
- Supported capabilities and critical guardrails have deterministic graders.
- Shared
azsdk-common-*evals remain centrally sourced. - Strict Vally lint passes for every added or changed eval.
- Focused local eval runs pass and their commands and pass counts are recorded in the PR.
- The scheduled, report-only pipeline completes and publishes standard summary, JUnit, and failure-debug artifacts.
- No production writes, credentials, or real customer identifiers are used.
- Any deferred live-only behavior is documented in a follow-up issue.
- Lenguaje dominante
- Python
- Estrellas
- 5.6k
- Forks
- 3.4k
- Merge medio
- 2 d 7 h
- PR fusionados (30 d)
- 206
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Azure/azure-sdk-for-python
-
EngSys
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Azure/azure-sdk-for-python#49614 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI releasePosiblemente ocupada @jianingwang123 la tomó hace 5 días. Abiertocustomer-reported question
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Azure/azure-sdk-for-python#49548 · 1 comentario · 2 reacciones · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Azure/azure-sdk-for-python#49477 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
azure-ai-evaluation: a content-harm score of 0 (no harm) is parsed as NaN in _parse_content_harm_response (numeric branch uses 0 < x instead of 0 <= x)Posiblemente ocupada @pujitha24 la tomó hace 21 días. AbiertoEvaluation Service Attention
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Azure/azure-sdk-for-python#49190 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Update CODEOWNERSAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Azure/azure-sdk-for-python#49183 · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de Azure/azure-sdk-for-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
mihai-vlc/sublime-jsfmt#56 ·
-
comp/cli comp/plugins P2 type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
NousResearch/hermes-agent#141917 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Go device SDK: Whisper transcriber keeps buffering and transcribing audio appended after Stop()Posiblemente ocupada @apoorvdarshan la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
BasedHardware/omi#22770 ·
Los mantenedores suelen responder en 1 día
-
bug needs-acceptance wg/router-models-inference-runtime
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
vllm-project/semantic-router#5295 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/huggingface_hub#5210 ·
Los mantenedores suelen responder en 1 día