[Agent evals] Add Vally coverage for Python skills and onboard the shared eval pipeline
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- azure, python
- 领域
- ci-cd, devops, testing-qa
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- Python
- 星标
- 5.6k
- 派生
- 3.4k
- 平均合并
- 2 天 13 小时
- 30 天内合并 PR
- 213
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Azure/azure-sdk-for-python 的其他 Issue
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI release可能已有人在做 @jianingwang123 于 10 天前认领。 未关闭customer-reported question
难度 2/5 1-3 小时 新手友好度 62/100
Azure/azure-sdk-for-python#49548 · 1 条评论 · 2 个 reaction · 已指派 2 人 ·
维护者通常 1 天内回复
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
难度 2/5 1-3 小时 新手友好度 78/100
Azure/azure-sdk-for-python#49477 · 6 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
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)可能已有人在做 @pujitha24 于 26 天前认领。 未关闭Evaluation Service Attention
难度 2/5 1-3 小时 新手友好度 84/100
Azure/azure-sdk-for-python#49190 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 90/100
Azure/azure-sdk-for-python#49183 · 1 个 reaction ·
维护者通常 1 天内回复
-
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)可能已有人在做 @wasim-builds 于 20 天前认领。 未关闭Evaluation Service Attention
难度 2/5 1-3 小时 新手友好度 75/100
Azure/azure-sdk-for-python#49153 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
查看 Azure/azure-sdk-for-python 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
google-agentic-commerce/AP2#388 ·
-
area:codegen backend:cuda backend:hip bug direction:input
难度 2/5 1-3 小时 新手友好度 78/100
CrossGL/crosstl#3061 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
rlaope/oh-my-hermes#2304 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
mochan-tk/agentic-dev-kit-for-codex#64 ·
维护者通常 1 天内回复
-
bug docs performance
难度 1/5 1 小时以内 新手友好度 85/100
维护者通常 3 天内回复