It's possible in Copilot to bypass any billing / 'premium request' usage by taking advantage of:
Combining these correctly results in 'free' and almost unlimited, usage of expensive premium models like Opus 4.5 which would usually cost '3 premium requests':
Example Chat Message:
/ask-opus Make a todolist app.
Example Prompt File:
--- name: ask-opus description: Run a query in a subagent that uses the Opus-4.5 model. model: GPT-5 mini (copilot) agent: agent --- <USER_REQUEST_INSTRUCTIONS> Call #tool:agent/runSubagent - include the following args: - agentName: "opus-agent" - prompt: $USER_QUERY </USER_REQUEST_INSTRUCTIONS> <USER_REQUEST_RULES> - 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_RULES> --- USER_REQUEST_START ---
Example Agent File
--- 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.
Another vector for abuse - albeit requiring more effort is:
chat.agent.maxRequests to a high value.In my testing I had a single message result in a 3hr+ process that launched hundreds of Opus 4.5 subagents to process hundreds of files - and only consumed 3 premium credits. Had I not stopped it at 3hrs, it would have continued.
Related: I also noted the message 'types' are being declared on the client, inferring no API validation e.g: https://github.com/microsoft/vscode-copilot-chat/blob/main/src/extension/intents/node/toolCallingLoop.ts#L484
I believe this is another vector that allows for more blatant abuse directly against the API.
Note: Initially submitted this to MSRC (VULN-172488), MSRC insisted bypassing billing is outside of MSRC scope and instructed me multiple times to file as a public bug report.
This is NOT the same issue as #252230