Skip to content

Fix #16226: route all-language SDK generation to the pipeline tool#16295

Open
helen229 wants to merge 6 commits into
mainfrom
fix/16226-route-sdk-generation
Open

Fix #16226: route all-language SDK generation to the pipeline tool#16295
helen229 wants to merge 6 commits into
mainfrom
fix/16226-route-sdk-generation

Conversation

@helen229

@helen229 helen229 commented Jul 7, 2026

Copy link
Copy Markdown
Member

Fixes #16226.

Problem

The azsdk agent ran the wrong tools for "run SDK generation for all languages for release " — it reached for azsdk_release_sdk / PR-link tools instead of the pipeline generation tool.

Changes

  • Tool descriptions (SpecWorkFlowTool.cs, SdkReleaseTool.cs)
    • azsdk_run_generate_sdk: enriched with trigger phrases, that it accepts a release plan / work item ID, and that it generates one language per call (call once per language).
    • azsdk_release_sdk: clarified it publishes an already-generated package and does not generate SDK code.
  • New skill azsdk-common-generate-sdk-pipeline routes all-language / pipeline / release-plan generation to azsdk_run_generate_sdk (get_release_plan -> run_generate_sdk -> get_sdk_pull_request_link). The local-generation skill''s redirect now points at it.
  • Vally 0.7 bump (eng/skill-eval/package.json + lock) for multi-turn eval support.
  • Mock workflow evals for local-vs-pipeline routing:
    • single-turn scenarios added to release-planner-workflows.eval.yaml,
    • multi-turn conversations added to multi-turn-release-workflows.eval.yaml (vague opening -> clarify to local vs pipeline; local -> switch to pipeline mid-session).
  • CHANGELOG entry.

- Enrich azsdk_run_generate_sdk description with trigger phrases and usage
  (pipeline / no-local-clone generation, one language per call).
- Disambiguate azsdk_release_sdk description (publishes an already-generated
  package; does NOT generate SDK code).
- Add azsdk-common-generate-sdk-pipeline skill routing all-language / pipeline
  / release-plan generation to azsdk_run_generate_sdk; update the local-gen
  skill redirect to point at it.
- Bump @microsoft/vally-cli 0.5.0 -> 0.7.0 (multi-turn eval support).
- Add mock workflow evals for local-vs-pipeline routing (single-turn scenarios
  in release-planner-workflows + multi-turn conversations in
  multi-turn-release-workflows).
- CHANGELOG entry.
Copilot AI review requested due to automatic review settings July 7, 2026 20:59
@helen229 helen229 requested review from a team as code owners July 7, 2026 20:59
@github-actions github-actions Bot added the azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli label Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

📊 GEPA Skill Quality Scores

Skill Quality Triggers Tests
sensei ⚠️ 0.57 N/A ---
azsdk-common-prepare-release-plan ✅ 0.86 N/A ---
azsdk-common-apiview-feedback-resolution ✅ 1.00 N/A ---
azsdk-common-generate-sdk-locally ✅ 1.00 N/A ---
azsdk-common-generate-sdk-pipeline ✅ 1.00 N/A ---
azsdk-common-pipeline-troubleshooting ✅ 1.00 N/A ---
azsdk-common-sdk-release ✅ 1.00 N/A ---
azure-typespec-author ✅ 1.00 N/A ---
markdown-token-optimizer ✅ 1.00 N/A ---
sdk-ai-bot-eval-dataset ✅ 1.00 N/A ---
sdk-ai-bot-run-evaluation ✅ 1.00 N/A ---
skill-authoring ✅ 1.00 N/A ---

11/12 skills at quality ≥ 0.80

How to improve
# Score a specific skill
python .github/skills/sensei/scripts/gepa/auto_evaluator.py score --skill <name> --skills-dir .github/skills --tests-dir tests

# Optimize a skill with GEPA
python .github/skills/sensei/scripts/gepa/auto_evaluator.py optimize --skill <name> --skills-dir .github/skills --tests-dir tests

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes routing for prompts like “run SDK generation for all languages for release <id>” so the agent uses the pipeline SDK generation tool (azsdk_run_generate_sdk) rather than release/publish tooling, and adds/updates eval coverage to prevent regressions.

Changes:

  • Clarifies MCP tool descriptions to disambiguate pipeline SDK generation (azsdk_run_generate_sdk) from package release (azsdk_release_sdk).
  • Adds a dedicated pipeline-generation skill (azsdk-common-generate-sdk-pipeline) and updates local-generation skill guidance to redirect all-language/pipeline requests to it.
  • Bumps @microsoft/vally-cli to 0.7.0 and adds new mock workflow eval scenarios, including a new multi-turn suite.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/azsdk-cli/Azure.Sdk.Tools.Vally/evals/workflow-scenarios/mock/release-planner-workflows.eval.yaml Adds mock routing scenarios covering pipeline-vs-local generation and disallowed tool/skill selections.
tools/azsdk-cli/Azure.Sdk.Tools.Vally/evals/workflow-scenarios/mock/multi-turn-release-workflows.eval.yaml New multi-turn routing capability suite to exercise session-resume behavior and mid-conversation routing changes.
tools/azsdk-cli/Azure.Sdk.Tools.Cli/Tools/ReleasePlan/SpecWorkFlowTool.cs Expands azsdk_run_generate_sdk tool description to steer prompts toward pipeline generation and away from release/link tools.
tools/azsdk-cli/Azure.Sdk.Tools.Cli/Tools/Package/SdkReleaseTool.cs Clarifies azsdk_release_sdk as publish-only and points generation prompts to azsdk_run_generate_sdk.
tools/azsdk-cli/Azure.Sdk.Tools.Cli/CHANGELOG.md Documents the routing fix and the new pipeline skill.
eng/skill-eval/package.json Pins @microsoft/vally-cli to 0.7.0.
eng/skill-eval/package-lock.json Lockfile update for the Vally CLI bump and transitive dependencies.
.github/skills/azsdk-common-generate-sdk-pipeline/SKILL.md New skill defining the pipeline-generation workflow and routing rules.
.github/skills/azsdk-common-generate-sdk-locally/SKILL.md Updates local-generation rules to redirect all-language/pipeline requests to the new pipeline skill.
Files not reviewed (1)
  • eng/skill-eval/package-lock.json: Generated file

Comment thread .github/skills/azsdk-common-generate-sdk-pipeline/SKILL.md Outdated
Comment thread .github/skills/azsdk-common-generate-sdk-pipeline/SKILL.md Outdated
helen229 added 3 commits July 7, 2026 14:30
- SKILL.md: azsdk_run_generate_sdk requires explicit TypeSpec project path,
  SDK release type (beta/stable) and language (validated); instruct the agent
  to fetch these from azsdk_get_release_plan first, then pass per language.
- Fix prettier CI failure on the new SKILL.md (formatting).
- Vally 0.7 added a scoring.weights must-sum-to-1.0 validator; normalize
  weights across all affected eval files (1/N per grader, threshold unchanged
  so semantics are preserved).
- Use config: (repo convention) instead of defaults: in the new multi-turn
  eval for consistency.
Comment thread .github/skills/azsdk-common-generate-sdk-locally/SKILL.md Outdated
Comment thread tools/azsdk-cli/Azure.Sdk.Tools.Cli/Tools/Package/SdkReleaseTool.cs Outdated
helen229 added 2 commits July 7, 2026 16:11
…lures

The vague/multi-step scenarios (link-spec-pr-then-regenerate, vague-then-clarify, vague-then-local) asserted skill/tool routing pinned to a specific conversation turn. But the agent legitimately front-loads work onto the first actionable turn (or spreads a required tool across steps), so the required skills/tools landed in a different turn slice than the grader inspected -> false failures despite correct routing. Assert these as whole-conversation properties instead. Re-grading the recorded trajectories confirms all three now pass 2/2 graders.
…l description

1. locally/SKILL.md: redirect all-language/pipeline requests to the azsdk-common-generate-sdk-pipeline skill without hard-coding azsdk_run_generate_sdk (that tool is one of several the pipeline skill owns).

2. SdkReleaseTool.cs: trim the duplicated 'generate an SDK from a TypeSpec project' wording while keeping the 'all languages / release plan' disambiguation cue that steers routing away from the release tool.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli

Projects

None yet

Development

Successfully merging this pull request may close these issues.

azsdk agent is running wrong tools for SDK generation

3 participants