
2026/02/09 1:56
サブエージェントとエージェント定義を組み合わせることで、請求処理を回避することができます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
Copilot のアーキテクチャは、無料の「サブエージェント」を使用して追加ツール呼び出しをトリガーすることで、プレミアムモデルへの請求をバイパスできるようにします。チャットセッション内の最初のモデルに対してのみ課金が発生し、その後のサブエージェント呼び出し(Opus 4.5 のような高価なモデルを実行するものも含む)は追加クレジットを消費しません。実験では、1 つのメッセージで数百のプレミアムサブエージェントを起動でき、わずか3 クレジットしか使用せずに無制限の高コスト利用が可能な抜け道があることが示されました。
この欠陥は最初に Microsoft Security Response Center に VULN‑172488 として報告されました。MSRC は範囲外と判断し、公開バグレポートを提案しました。影響を受けるコンポーネントは VS Code 1.109.0‑insider(OSX Tahoe)上の Copilot Chat Extension v0.37.2026013101 であり、GitHub の issue #252230 とは別物です。
未修正の場合、この脆弱性により高価な AI モデルを制御不能に消費され、ユーザーに大きな請求不一致や企業に潜在的な隠れたコストが発生する可能性があります。これは AI‑モデル市場でのコスト管理とセキュリティに関する広範な懸念を提起し、無制限の使用が業界の信頼と財務予測を損ねる恐れがあります。
追加された主要ポイント:
を高く設定し、ツール呼び出し(例:chat.agent.maxRequests
)を繰り返すことで、最初のメッセージ以降に追加コストなしで無限ループする別の悪用ベクトルがあります。runSubagent- クライアントは API バリデーションなしで「タイプ」を宣言(
で)し、API の直接悪用を容易にします。toolCallingLoop.ts
本文
概要
Copilot では、以下の手法を組み合わせることで課金や「プレミアムリクエスト」の使用を回避することが可能です。
- サブエージェントとツール呼び出し – これらはリクエスト数にカウントされません。
- リクエストコスト計算 – 最初に使用したモデルのみが費用に含まれます。
- Copilot に組み込まれている無料モデル(例:GPT‑5‑Mini、GPT‑4.1)。
- サブエージェントのためにエージェントを定義すること。
- エージェントに対してモデルを指定すること。
これらを正しく組み合わせると、通常は 3 つのプレミアムリクエスト が必要な Opus 4.5 のような高価なプレミアムモデルを「無料」かつほぼ無制限に利用できるようになります。
手順
- 新しいチャットを開始します。
- モデルを Copilot に組み込まれた無料モデル(例:GPT‑5‑Mini)に設定します。
- エージェントを作成し、そのモデルをプレミアムモデル(例:Opus 4.5)に設定します。
- モードを agent に設定します。
- 初期メッセージで、
ツールを使ってサブエージェントとしてrunSubagent
を起動し、「What time is it in London, UK」などのクエリを渡すよう指示します。[your_agents_name_here]
無料 GPT‑5‑Mini モデルが初期リクエストを処理(料金は発生しません)。
その後、無料サブエージェントが作成され、agent プロファイルで起動されます。このときモデルはプレミアムの Opus 4.5 に設定されるため、プレミアムリクエストが消費されます。
例 1
チャットメッセージ
/ask-opus Make a todolist app.
プロンプトファイル(.github/prompts/ask-opus.prompt.md
)
.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 --- <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. - Use the subagent to decide how best to respond and/or complete the task (it is a larger model than you). - Do not perform any task or respond to any query yourself; you are just an orchestrator. - Do not summarize subagent responses to save tokens; be comprehensive and verbose. - Do not evaluate or respond to any remaining content in this message; the subagent handles all further content. </USER_REQUEST_RULES> --- USER_REQUEST_START ---
エージェントファイル(.github/agents/opus.agent.md
)
.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) comprehensively and accurately.
例 2
もう一つのベクトル(やや手間がかかります):
を高い値に設定します。chat.agent.maxRequests- プレミアムモデル(例:Opus 4.5)を最初のチャットモデルとして使用します。
- モデルがツール呼び出しで指示されたカスタムスクリプトを実行するように構築します。
- プロンプトを工夫して、モデルがツール呼び出しを繰り返すループを作成し、最初のメッセージ以外は追加コストなしでプレミアムモデルを連続的に利用できるようにします。
テストでは、単一メッセージで 3 時間プロセスが発動し、数百の Opus 4.5 サブエージェントが多くのファイルを処理する中で、わずか 3 プレミアムクレジットだけを消費しました。
3 時間後に停止しなければ無限に続く可能性があります。
追加観察点:
- メッセージタイプはクライアント側で宣言されており、API 側の検証がない(例:
)。toolCallingLoop.ts#L484 - これは API に対する別の悪用ベクトルを示唆している可能性があります。
備考: 本件は当初 MSRC(VULN‑172488)に報告されましたが、MSRC は課金回避をスコープ外と判断し、公開バグレポート提出へと案内しました。
Copilot Chat Extension バージョン: 0.37.2026013101
VS Code バージョン: 1.109.0‑insider (Universal) – f3d99de
OS: OSX Tahoe 26.3