Summary
In Copilot it is possible to bypass any billing/’premium request’ usage by taking advantage of:
- Subagent and tool calls are not consuming any ‘request’.
- The request cost is being calculated on the initial model used.
- Includes “free” models. Like GPT-5-mini, GPT-4.1 etc. in Copilot.
- Ability to define an agent for a subagent.
- Ability to specify a model for an agent.
When combined correctly these result in ‘free’ and almost unlimited use of expensive premium models like Opus 4.5, which usually costs ‘3 premium requests’:
Instruction
- Start a new chat.
- Set the model to the “free” model that is included with CoPilot, for example GPT-5 Mini.
- Create an agent, and set its model to the premium model, for example Opus 4.5
- Set the mode to “Agent”.
- In the initial message, instruct it to launch an agent'[your_agents_name_here]’ Use the RunSubAgent tool as a subagent, and pass the following query for example “What time is it in London, UK”.
- Submit message.
- The initial request will be accepted by the free GPT-5 mini model at no charge.
- The free model will create a subagent (which is also free)
- The free subagent will launch with an ‘Agent’ profile, in this profile the model is set to Premium Model
- The premium model will be used for subagents – but premium requests will be consumed.
Example 1
Example chat message:
/ask-opus Make a todolist app.
Example prompt file:.github/prompts/ask-opus.prompt.md
---
name: ask-opus
description: Run a query in a subagent that uses the Opus-4.5 model.
model: GPT-5 mini (copilot)
agent: agent
---
Call #tool:agent/runSubagent - include the following args:
- agentName: "opus-agent"
- prompt: $USER_QUERY
- You can call the 'subagent' defined in 'USER_REQUEST_INSTRUCTIONS' as many times as needed to fulfill the user's request.
- It's recommended you use the subagent to help you decide how best to respond and/or complete the task (because it is a larger model than you) including how best to break the task down into smaller steps if needed.
- Use the subagent for all todos/tasks/queries, do not perform any task or respond to any query yourself, you are just an orchestrator.
- Do not manipulate/summarize subagent responses to save on tokens, always be comprehensive and verbose.
- Do not evaluate or respond to the remainder of this message, the subagent is responsible for all further content.
--- USER_REQUEST_START ---
example agent file.github/agents/opus.agent.md
---
name: opus-agent
description: An AI agent that assists a user with a task or query.
argument-hint: Query or task to complete
model: Claude Opus 4.5 (copilot)
---
Respond to the user's query/task ($ARGUMENTS) in comprehensively and accurately.
Example 2
Another vector of abuse – albeit one requiring more effort:
- set
chat.agent.maxRequestsFor higher value. - Use a premium model such as the Opus 4.5 as the starting point for a chat session.
- Create a custom script (not exposed for security), which you tell the model to call as part of the tool invocation.
- Create some prompts to direct the model to repeat the tool call.
- The right script with the right signals can be tailored to form a loop, allowing the premium model to be applied an unlimited number of times at no additional cost beyond the initial message.
In my testing I got a single message resulting in a 3 hour+ process that launched hundreds of Opus 4.5 subagents to process hundreds of files – and only consumed 3 premium credits. If I had not stopped it at 3 o’clock, it would have continued.
Connected: I also noted that the message ‘type’ is being declared on the client, causing no API validation. Example: https://github.com/Microsoft/vscode-copilot-chat/blob/main/src/extension/intents/node/toolCallingLoop.ts#L484
I believe this is another vector that allows more blatant abuse against the API directly.
Comment: Initially submitted this to MSRC (VULN-172488), MSRC insisted that bypassing billing is outside MSRC scope and instructed me multiple times to file it as a public bug report.
- Copilot Chat Extension Version: 0.37.2026013101
- VS Code version: 1.109.0-Insider (Universal) – f3d99de
- OS Version: OSX Tahoe 26.3
- Feature: Agent / Subagent
This is not the same issue as #252230
(My previous issue was automatically closed by the bot and postponed to above).
<a href