[Agent evals] Add Vally coverage for Python skills and onboard the shared eval pipeline
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- azure, python
- Lĩnh vực
- ci-cd, devops, testing-qa
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 5.6k
- Fork
- 3.4k
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 210
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Azure/azure-sdk-for-python
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI releaseCó thể đã có người làm @jianingwang123 đã nhận 7 ngày trước. Đang mởcustomer-reported question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Azure/azure-sdk-for-python#49548 · 1 bình luận · 2 reaction · 2 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Azure/azure-sdk-for-python#49477 · 6 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
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)Có thể đã có người làm @pujitha24 đã nhận 23 ngày trước. Đang mởEvaluation Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Azure/azure-sdk-for-python#49190 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update CODEOWNERSĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
Azure/azure-sdk-for-python#49183 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
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)Có thể đã có người làm @wasim-builds đã nhận 18 ngày trước. Đang mởEvaluation Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Azure/azure-sdk-for-python#49153 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Azure/azure-sdk-for-python
Issue tương tự
-
[Resource]: glyphcss-diagramsĐang mởresource-submission validation-passed
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
hesreallyhim/awesome-claude-code#3214 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
room-commons replace accepts an empty old string and silently prepends the new text to the pageĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
doobidoo/mcp-memory-service#1650 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ml-explore/mlx-lm#2002 ·
Maintainer thường phản hồi trong vòng 2 ngày