-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Use the SFT + RL CAPI proxy model to power the Search Subagent #2929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
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 updates the Search Subagent feature to use a fine-tuned Qwen3-4b model accessed via a CAPI proxy endpoint. The changes replace the dynamic endpoint selection logic with a hardcoded endpoint for the specialized agentic-search-v1 model.
Changes:
- Created a new
ProxyAgenticSearchEndpointclass that connects to the fine-tuned model via CAPI proxy - Simplified
SearchSubagentToolCallingLoopto always use the specialized endpoint instead of dynamically selecting one - Enabled the Search Subagent feature by default (changed configuration default from
falsetotrue)
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/platform/endpoint/node/proxyAgenticSearchEndpoint.ts |
New endpoint implementation for the agentic-search-v1 model with tool calling capabilities |
src/extension/prompt/node/searchSubagentToolCallingLoop.ts |
Removed dynamic endpoint selection logic, now always uses ProxyAgenticSearchEndpoint; removed unused endpointProvider parameter |
src/platform/configuration/common/configurationService.ts |
Changed default value for SearchSubagentToolEnabled from false to true |
package.json |
Updated github.copilot.chat.searchSubagent.enabled configuration default to true |
| @ILogService logService: ILogService, | ||
| @IRequestLogger requestLogger: IRequestLogger, | ||
| @IEndpointProvider private readonly endpointProvider: IEndpointProvider, | ||
| @IEndpointProvider endpointProvider: IEndpointProvider, |
Copilot
AI
Jan 16, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The endpointProvider parameter is no longer used in this class after the refactoring to always use ProxyAgenticSearchEndpoint. This parameter should be removed from the constructor entirely, along with the corresponding parameter in the super() call on line 49. The base class ToolCallingLoop still requires it, but this derived class doesn't need to accept it as a constructor parameter.
| capabilities: { | ||
| type: 'chat', | ||
| family: model, | ||
| tokenizer: TokenizerType.O200K, |
Copilot
AI
Jan 16, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The tokenizer type O200K is typically associated with OpenAI's GPT-4 and GPT-4o models. According to the PR description, this endpoint is for a fine-tuned Qwen3-4b model. Verify that O200K is the correct tokenizer for this model, as Qwen models typically use their own tokenizers. If the model was fine-tuned to be compatible with O200K tokenization, this is acceptable, but it should be documented why this choice was made.
| tokenizer: TokenizerType.O200K, | |
| tokenizer: TokenizerType.Unknown, |
Dogfooding the fine-tuned Qwen3-4b model for the search subagent