世界を動かす技術を、日本語で。

エージェント定義を用いたサブエージェントの組み合わせで請求を回避できる

概要

  • Copilot のエージェント・サブエージェント機能を利用した 課金回避手法 の説明
  • 無料モデル で初期リクエストを行い、 高額プレミアムモデル をサブエージェントで利用
  • リクエスト消費計算 の仕組みとエージェント設定の悪用
  • ツール呼び出しループ による無制限利用の可能性
  • MSRCへの報告結果 と関連情報の共有

Copilotのエージェント・サブエージェント経由によるプレミアムモデル課金回避

  • Copilot の初期リクエストを 無料モデル (例:GPT-5 Mini, GPT-4.1等)で実行
  • エージェント を作成し、そのモデルを Opus 4.5 等の プレミアムモデル に指定
  • サブエージェント 起動時、無料モデル経由で 高額モデル を無制限利用可能
  • リクエスト課金 は初期の無料モデルのみで計算される仕様
  • サブエージェントツールコール は追加リクエスト消費なし

手順概要

  • 新規チャット開始、 モデルを無料モデル に設定
  • エージェント作成、 モデルをプレミアムモデル (例:Opus 4.5)に設定
  • モードを agent に切り替え
  • 初回メッセージで runSubagentツール を使い、サブエージェントにクエリを渡すよう指示
  • 実質的に 無料でプレミアムモデル の無制限利用が可能

例:ask-opusプロンプトファイル

  • エージェント名 :ask-opus
  • モデル :GPT-5 mini(copilot)
  • サブエージェント :opus-agent(モデル: Claude Opus 4.5)
  • 指示 :全ての処理・応答はサブエージェントのみで実施、オーケストレーターとして振る舞う

例:opus-agentエージェントファイル

  • エージェント名 :opus-agent
  • モデル :Claude Opus 4.5(copilot)
  • 役割 :与えられたクエリ/タスクに包括的・正確に応答

ツール呼び出しループによるさらなる悪用

  • chat.agent.maxRequests を高値に設定
  • チャットセッション初期モデルを Opus 4.5 等のプレミアムモデルに指定
  • カスタムスクリプト(非公開)+プロンプトで ツールコールを繰り返すループ を作成
  • 1回のメッセージで 数百回のサブエージェント起動、3時間以上無限実行も可能
  • 実際に 3プレミアムクレジット のみ消費で数百ファイル処理実績

APIバリデーションの欠如と追加の悪用ベクトル

  • メッセージタイプ がクライアント宣言のみで API側の検証なし
  • 例:https://github.com/microsoft/vscode-copilot-chat/blob/main/src/extension/intents/node/toolCallingLoop.ts#L484
  • API直接悪用 の余地

報告経緯とMSRC対応

  • MSRC(VULN-172488) へ初回報告済み
  • 課金回避はMSRCのスコープ外 として却下、公開バグレポート推奨
  • Copilot Chat Extension バージョン :0.37.2026013101
  • VS Code バージョン :1.109.0-insider (Universal) - f3d99de
  • OS :OSX Tahoe 26.3
  • 対象機能 :Agent / SubAgent
  • 過去Issueとの違い 明記(#252230とは別件)

Hackerたちの意見

最後のコメントは、Microsoftのメンテナーを装っている人だね。こういう人たちが増えていく気がする。人気のリポジトリを探し回って「貢献」しようとするバイブエンジニアが出てくるんじゃないかな(提案された修正が曖昧なのも気になる)。だから、ホワイトリストの貢献者だけにしているプロジェクトがあるのも理解できるよ。もうめちゃくちゃになってきてる。

それに加えて、他の理由でそういう状態になってるのもあるよ。「カテドラルとバザール」で説明されてるカテドラルモデルみたいにね。

一部のプロジェクトがホワイトリストの貢献者だけにしている理由は完全に理解できる。もうめちゃくちゃになってきてる。そのリポジトリだけで1.1kのオープンプルリクエストがあるんだから、狂気だよ。

コメントの中で、彼らがMicrosoftで働いているとは一言も言ってないよ。これはピアレビューだね。

一方で…最近、Azureのサービスの劣化/サイレントフェイルについて公式のMicrosoftサポートとやり取りしなきゃいけなかったんだけど、彼らのメールの返事はほぼ全部これだった — 完全にGPTが書いたもの。あのやり取りで唯一良かったのは、GPTが俺が含めたすべての詳細や観察がMicrosoft側のサービス劣化と失敗を指していることをすぐに認めてくれたこと。純粋な人間の思考なら、責任を認めるのを避けるために、もう少し遠回しに言ったり、時間をかけたり、選択肢を残したりしてたと思う。

全く同感だよ。この反応は「ChatGPTからコピーした」って感じがする。「貢献」とか言ってるコメントや、通りすがりのPRはオープンソースやソフトウェア開発全般にとって呪いだと思う。細かいところまで気を使うのが誇りな私としては、最低限の努力しかしない人には耐えられない。今週の初め、別のチームの内部ソフトウェアプロジェクトのバグ報告を作成したんだ。奇妙な挙動だったから、好奇心と本当に役に立ちたい気持ちで、数時間かけて問題を小さく再現可能なテストケースに絞り込んだ。チームの誰かにも再現手順を試してもらって、少なくとも他の環境でも再現できることを確認した。翌日、別のチームのPMからAIの会話のスクリーンショットが送られてきて、「問題は君の方で、標準CLIツールを誤用してる」と言われた。色んな意味で腹が立ったよ。一つには、私はそのCLIツールを説明されている使い方で使ってなかったし、仮に使ってたとしてもバグには影響しない。それに、AIの会話のスクリーンショットが受け入れられる回答だと思ってるのが大きな問題だよ。これからは半技術的な役割の人と話すのがこんな感じになるの?他の人を介してLLMと議論しなきゃいけないの?マジで無理。

そうそう、私のリポジトリやtldrawの問題に対しても、こういう知ったかぶりのコメントを見たことがある。会話に何も追加しないし、ただ会話をコーディングツールにペーストして情報を吐き出すだけ。

誰もがMicrosoftのメンテナだね。みんながバグだらけの製品をテストしてて、情報が漏れ出すのはまるでワイヤーの傘みたいだ。コパイロットを使ってる人が、何百万ガロンもの新鮮な飲み水を使ってそれを訓練してるって知ってるのは悲しいことだよ。前はめちゃくちゃだったし、これからもっと悪化するだろうけど、少なくとも1日に4回は仕事ができるからいいかな。

GitHubのエチケットは完全に崩壊してるよ。最近見る問題は、真剣な技術的議論というより、redditのスレッドに似てることが多い。私の受信箱は「バンプ」コメントで汚染されてることがよくある。LLMが基準を下げるにつれて、さらに悪化するだろうね。

俺の予想だと、誰かが社内でこれを提起して、「大丈夫だよ」って言われたか、知ってたけど言い出さなかったんじゃないかな。どうせ無視されるって分かってたから。

ハックなしでも、CopilotはClaudeモデルを使うには安い方法だよ: - 月額$10 - Claude CodeタイプのCLI用のCopilot CLI、GUI用のVS Code - Sonnet 4.5で300リクエスト(プロンプト)、Opus 4.6で100(3倍) - 一つのプロンプトは、使用するトークンに関わらず常に一つのリクエストを消費 - エージェントが自動でタスクを計画してPRを作成 - VS Codeの「New Agent」はローカルでエージェントを実行 - 「New Cloud Agent」はクラウドでエージェントを実行(https://github.com/copilot/agents) - 追加リクエストは一つあたり$0.04

+1。トークンについての投稿を見て、「誰がトークンで支払ってるの?」って思った。

Claude Sonnet 4.5にアクセスする最も安い方法みたいだけど、モデルの配布はclaude.aiのClaude Sonnet 4.5に比べて明らかに制限されてるね。とはいえ、他のどこでLLMアクセスにお金を払う理由があるのか分からない。今のところ、ChatGPTとclaude.ai(無料)、GitHub Copilot Pro(年間100ドル)がベストな組み合わせだと思う。

つまり、月に100リクエストのOpus?それは少ないね。

一度のプロンプトでOpusが13個のプレミアムメッセージを消費したことがあるよ。Copilotのハーネスは、メッセージからトークンを抽象化するためにかなり制限されてる。私が知ってるCopilotを使い始めた人たちは、CCを試してみてその力の違いに驚いてたよ。ゴルフカートから降りて、次のステップへ。

注:最初にこれをMSRCに提出した(VULN-172488)、MSRCは請求のバイパスはMSRCの範囲外だと主張し、何度も公開バグレポートとして提出するように指示してきた。いい仕事だね、Microsoft。

「私の仕事じゃない」賞の受賞者だね。私たちは「Managed Azure DevOps Pool」を使ってるんだけど、これのおかげで好きなAzure VMタイプをビルドエージェントに使えるんだ。ただ、通常の管理されたビルドエージェントと同じイメージも使えるから、OSの管理(アップデートとか)をしたくない私たちにはピッタリ。ハードウェアのスペックも選べるのがいいんだけど、Microsoftのイメージは「Gen 1」VMでしか動かないっていう面倒な制限があるんだよね。誰かがMicrosoftのフォーラムかGitHubのリポジトリに「イメージをGen 2 VMでも動くようにアップデートしてほしい」って投稿してたけど、どのフォーラムかは今は思い出せないな。たぶん「Azure Managed DevOps Pools」フォーラムだったと思う。返事は「これについては何もできません。他のチームのフォーラムに投稿してください。問題はクローズです」って感じだった。私からすると、全部Microsoft Azureなのに、なんで別の投稿をしなきゃいけないの?せめて問題を正しい場所に移すか、もっと良いのは他のチームと内部で話し合うべきだよね。自分たちの「製品」を大きく制限してるのに。無能で怠け者な社員たちだ。

数週間前にそれやったよ: https://news.ycombinator.com/item?id=46757318

これらのAIエージェントやエージェンティックIDEが、デバイス上でビジネスロジックやガードレールをローカルに実装していることを確認したよ。(出典:別のエージェンティックLLMプロバイダーに似た問題を提出した)

Copilotは最近、異なるモデルを使ってサブエージェントを実行するサポートを追加したんだけど、この報告が正しければ、サブエージェントの請求が正しく実装されてなくて、より高価なモデルを無料でサブエージェントとして実行できるようになってるみたい。

「プレミアムリクエスト」の請求モデルは、呼び出しごとに支払うもので、使用量に対してではないから、持続可能なアプローチじゃないのは明らかだよね。特に、シンプルなワンショットのチャット質問から、長時間のエージェントセッションにシフトしてる中で、応答の質を下げるインセンティブが生まれる(例:Microsoftが応答の質を劣化させる)。これは非常に明白な根本的な不適合で、システムはますます置き換えが必要になってる。使用量にリンクした(トークンごとに支払う)モデルが多分ベストだと思うし、業界標準でもあるよね。

トークンごとに支払うのも質の低下を促進するだけで、今度はお金を払うことになるよね。もし彼らが微妙に質を下げたり、ワンショットの解決策の確率を下げたりできれば、もっとトークンを払わせることができる。現在の経済モデルやインセンティブ構造の下では、エンシティフィケーション(質の低下)は避けられないよ。長期的にそれを最適化してるからね。

正しいスクリプトとプロンプトを使えばループを作れるから、プレミアムモデルを無限に呼び出せるようになる。追加のコストは初回メッセージの分だけで済む。ラルフは無料でループする...

最初の例で何か見落としてる気がするんだけど、誰か教えてくれない?指示の最後の行にはこう書いてある:> プレミアムモデルはサブエージェントに使われるが、プレミアムリクエストは消費される。これって、プレミアムリクエストを使うなら、プレミアムモデルを直接呼び出すのと何が違うの?