[Agent evals] Add Vally coverage for Python skills and onboard the shared eval pipeline
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- azure, python
- Ambito
- ci-cd, devops, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 5.6k
- Fork
- 3.4k
- Merge medio
- 2g 12h
- PR unite (30g)
- 210
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/azure-sdk-for-python
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI releaseForse già presa @jianingwang123 l’ha presa 7 giorni fa. Apertacustomer-reported question
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Azure/azure-sdk-for-python#49548 · 1 commento · 2 reazioni · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Azure/azure-sdk-for-python#49477 · 6 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
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)Forse già presa @pujitha24 l’ha presa 23 giorni fa. ApertaEvaluation Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Azure/azure-sdk-for-python#49190 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Update CODEOWNERSAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
Azure/azure-sdk-for-python#49183 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
azure-ai-evaluation: PromptyEvaluatorBase falls back to the first digit anywhere in the judge's reply, and the threshold turns a stray digit into a wrong pass/fail (15 evaluators)Forse già presa @wasim-builds l’ha presa 17 giorni fa. ApertaEvaluation Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Azure/azure-sdk-for-python#49153 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Azure/azure-sdk-for-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
volcengine/OpenViking#6445 ·
I maintainer di solito rispondono entro 1 giorno
-
BUG:Edit Album strips spaces from the password so albums with a leading/trailing space in the password can't be editedForse già presa @ManyaJain111 l’ha presa oggi. Apertabug enhancement possible-duplicate
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
AOSSIE-Org/PictoPy#1637 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
deepspeedai/DeepSpeed#8884 ·
I maintainer di solito rispondono entro 3 giorni
-
Flaky: test_advisor_live_calibrates_an_unmeasured_circuit ranks engines by a 1.8ms sleep marginAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
flagos-ai/FlagQuantum#718 ·
I maintainer di solito rispondono entro 1 giorno
-
bug CI-failure high priority
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
vllm-project/afd-plugin#483 ·
I maintainer di solito rispondono entro 1 giorno