Skip to content

Implement subagent default setting to Auto without overriding models - #333663

Draft
SteVen Batten (sbatten) wants to merge 1 commit into
mainfrom
sbatten/agents/subagent-default-auto-setting
Draft

Implement subagent default setting to Auto without overriding models#333663
SteVen Batten (sbatten) wants to merge 1 commit into
mainfrom
sbatten/agents/subagent-default-auto-setting

Conversation

@sbatten

Copy link
Copy Markdown
Member

This pull request introduces a new setting, chat.subagents.defaultToAuto, which allows local subagents to default to the Auto model when no specific model is specified. Key changes include:

  • New Setting Implementation: The setting is off by default and only affects unspecified non-BYOK subagents, allowing them to use the eligible Copilot Auto model.
  • Model Resolution Logic: The logic for model resolution has been updated to ensure that explicit and agent-configured models take precedence over the Auto model.
  • Cache-First Lookup: The Auto model lookup is now cache-first, activating the provider only when necessary.
  • Testing: Comprehensive tests have been added to validate participant routing, cache behavior, eligibility, precedence, and fallback scenarios. All tests have passed successfully.

This change enhances the flexibility of subagent behavior while maintaining existing configurations and ensuring backward compatibility.

Copilot AI balanced review requested due to automatic review settings August 31, 2026 22:21

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.

Copilot review overview

Review tier: Balanced
Findings: 1 Medium severity · 1 Low severity

New issues introduced by this change (2)
Severity Finding
Medium severity src/​vs/​workbench/​contrib/​chat/​common/​tools/​builtinTools/​runSubagentTool.ts — When agentName is omitted, subagent is always undefined, even though this tool inherits the…
Low severity src/​vs/​workbench/​contrib/​chat/​test/​common/​tools/​builtinTools/​runSubagentTool.test.ts — This and the following direct-invocation Auto test are inside the nested subagent depth tracking
What changed in this PR

Adds an experimental setting to default eligible local subagents to Copilot Auto while preserving explicit, agent-configured, and BYOK model selections.

Changes:

  • Registers chat.subagents.defaultToAuto.
  • Adds cache-first Auto model resolution and eligibility checks.
  • Expands model precedence, fallback, and routing tests.
File Description
chat.shared.contribution.ts Registers the setting.
constants.ts Adds its configuration key.
runSubagentTool.ts Implements Auto model resolution.
runSubagentTool.test.ts Adds routing and fallback coverage.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +540 to +544
if (
!explicitModelResolved
&& !subagent?.model?.length
&& (!mainModelMetadata || !isByokModel(mainModelMetadata))
&& this.configurationService.getValue<boolean>(ChatConfiguration.SubagentsDefaultToAuto) === true
assert.deepStrictEqual(capturedRequests[0].modeInstructions, currentModeInstructions);
});

test('passes prepared Auto model to participant without resolving it again', async () => {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants