1. はじめに
この記事を作成する背景は、GitHub Copilotへ多くのファイルや長い説明を渡せば回答が良くなるとは限らず、会話履歴、添付、ツール出力、カスタム指示が積み重なると、必要な情報がコンテキストに収まりにくくなることです。公式ガイドも、明確な依頼、関連コンテキストの先出し、新しい会話やタスク分割を効率化の基本として挙げています。[^copilot-optimize-ai-usage]
この記事の目的は、GitHub Copilotで使う入力を必要十分にし、コンテキストの余白、応答待ち時間、手戻りを改善する再現可能な手順を示すことです。本記事はChatとエージェントの利用効率と計測に焦点を当てます。
| 最適化の対象 | 直接確認するもの | 期待する業務上の変化 |
|---|---|---|
| 入力コンテキスト | 添付、選択範囲、履歴、指示 | 関連情報がコンテキストへ収まりやすい |
| 対話の進め方 | ターン数、再質問、手戻り | 採用できる結果までの往復が減る |
| モデルと作業単位 | 選択モデル、AI credits、処理時間 | タスクに過剰な能力を割り当てない |
2. トークン最適化とCopilotの課金を分けて考える
まず、「トークンを減らす」と「請求額を減らす」を同義にしないことが重要です。入力を整理する主な目的は、コンテキストへ必要な情報を収め、信号対雑音比を上げ、応答時間や追加対話を抑えることです。
2026年9月4日時点では、GitHub Copilotの通常プランは、入力、出力、キャッシュなどのトークンとモデル別単価からAI creditsを算出する使用量ベースの方式です。2026年6月1日より前のPremium requestsとモデル倍率はレガシー方式となり、移行せず既存の年間契約を継続している一部のPro/Pro+ユーザーに限って契約終了まで残ります。[^copilot-pricing][^copilot-billing-change] したがって、通常プランについて「1回の依頼で常にPremium requestを1件消費する」と説明するのは現在の公式仕様と一致しません。
| 観点 | 通常の使用量ベース課金 | 一部の既存年間プラン |
|---|---|---|
| 利用量の表現 | モデルと消費トークンから換算するAI credits | Premium requestsとモデル倍率 |
| 対象 | 現行のCopilotプラン | レガシー課金を継続中のPro/Pro+年間プラン |
| 最適化時の確認先 | モデル料金、AI credits、コンテキスト量 | Premium request残量とモデル倍率 |
| 注意点 | 単価、モデル、利用可能性は変更される | 倍率、対象モデル、契約条件は変更される |
モデル、単価、利用可能性、レガシー方式の倍率は変わり得ます。本記事では壊れやすい完全なモデル一覧や固定単価を転載しません。確認基準日は2026年9月4日であり、利用時点の公式料金ページと契約画面を正としてください。固定の金額削減や削減率も、実測なしには主張できません。
3. 方法1・2:プロンプトと添付コンテキストを絞る
3.1 方法1:短さより「目的、範囲、完了条件」を優先する
曖昧な一言は短くても、Copilotが対象を探索し、意図を推測し、追加質問をする原因になります。公式ガイドは、タスク定義、関連コンテキスト、停止条件を明確にすることを推奨しています。[^copilot-optimize-ai-usage]
| Before | After |
|---|---|
| 「ログインが遅い。全部調べてベストプラクティスで直して、詳しく説明して」 | 対象、症状、変更範囲、受け入れ条件、検証コマンドを指定する |
| 背景説明を何段落も追加する | 判断に必要な事実と制約を箇条書きにする |
| 「良い感じに」「必要なら何でも変更」 | 「このテストが通れば完了」「公開APIは変更しない」と止めどきを示す |
改善前
ログインが遅いのでリポジトリ全体を調べて直してください。
将来の拡張も考慮して、ベストプラクティスを詳しく説明してください。
改善後
目的:
- `src/auth/session.ts` の `refreshSession` がタイムアウトする原因を特定する
参照する範囲:
- `refreshSession` の選択範囲
- `src/auth/client.ts`
- 直近の失敗ログ20行
制約:
- 公開APIとデータベーススキーマは変更しない
- まず原因候補を3点以内で示し、承認後に最小差分を実装する
完了条件:
- 既存テストと追加する回帰テストが通る
- 実行コマンドは `npm test -- auth`
改善後は文字数が必ずしも最短ではありません。しかし、探索範囲と停止条件を先に固定するため、無関係な調査や再質問を減らしやすくなります。
3.2 方法2:リポジトリ全体ではなくファイルと選択範囲を指定する
VS Codeでは、現在のエディター状態などから暗黙のコンテキストが選ばれるほか、Add Context、#メンション、ファイル、フォルダー、シンボル、選択範囲などを使って明示的に追加できます。実際に選択される情報は、Chat、エージェント、CLIなどの製品サーフェス、モード、バージョンによって異なります。すべての開いているタブや全ファイルが毎回そのまま送られる、と仮定しないでください。[^vscode-context]
コードベース検索も、ワークスペースを無条件にすべて添付する機能ではありません。Copilotが質問に応じて検索手段を選び、関連箇所を取得する仕組みです。[^vscode-workspace-context]
次の順で範囲を広げます。
- エラー箇所や変更対象を選択範囲として渡す
- 依存する型、テスト、呼び出し元を特定ファイルとして追加する
- 場所が不明なときだけ、フォルダーやコードベース検索を使う
dist/、生成物、依存パッケージ、古いログなど、不要な情報は添付しない
| 状況 | 最初に渡す範囲 | 広げる条件 |
|---|---|---|
| 1関数の不具合 | 選択範囲+対応テスト | 呼び出し元との不整合が疑われる |
| 型エラー | エラー箇所+型定義 | 型の生成元が別パッケージにある |
| 仕様と実装の差 | 該当仕様節+実装ファイル | 受け入れ条件が複数機能へまたがる |
| 原因箇所が不明 | 短いエラー全文+検索語 | 検索結果から候補ファイルを絞る |
セキュリティ上の注意: 添付範囲の最適化は、機密情報のアクセス制御ではありません。Content exclusionの対応範囲はサーフェスごとに異なります。秘密情報をプロンプトへ貼り付けず、利用中のサーフェスがContent exclusionに対応しているかを公式の対応表と組織ポリシーで確認してください。[^copilot-content-exclusion]
4. 方法3:安定したルールを簡潔なカスタム指示へ移す
リポジトリで毎回繰り返す技術スタック、テストコマンド、禁止事項は、.github/copilot-instructions.mdへ移します。ファイル種別だけに適用するルールは、.github/instructions/**/*.instructions.mdとapplyToでスコープを限定できます。対応する指示形式はクライアントごとに異なるため、利用中のIDEの対応表も確認してください。[^copilot-custom-instructions]
| カスタム指示へ置く | その都度のプロンプトへ置く |
|---|---|
| 採用言語、フレームワーク、ディレクトリ構成 | 今回だけの目的と症状 |
| 常に使うビルド、テスト、lintコマンド | 今回の変更対象ファイル |
| チーム共通の設計制約、禁止API | 一時的な回避策や調査仮説 |
| 頻発する誤りを防ぐ短い注意 | 今回の完了条件と優先順位 |
最初は次のような必要最小限の内容にします。
# Repository instructions
- TypeScriptはstrictモードで記述し、`any`を追加しない
- HTTPアクセスは`src/api/client.ts`経由に限定する
- 変更後は`npm run lint`と関連するVitestを実行する
- 生成ファイル`dist/`は編集しない
「一般的なベストプラクティスをすべて守る」のような曖昧な長文や、まれにしか使わない手順を常設すると、毎回のコンテキストにノイズが入ります。公式ガイドも、指示は短く、具体的で、実際のリポジトリに根差した内容にするよう勧めています。[^copilot-optimize-ai-usage]
5. 方法4・5:会話履歴を新しいスレッドと要約で整理する
5.1 方法4:無関係な課題へ移るときは新しいスレッドを始める
長いセッションでは、メッセージ、応答、ツール実行結果などがコンテキストへ蓄積します。VS Codeのセッション管理画面では、現在のコンテキスト使用量を確認できます。上限へ近づくと、会話履歴は自動的に圧縮されます。新しい課題に以前の試行錯誤が不要なら、履歴を引き継ぐより新しいChatセッションを始める方が明確です。[^vscode-session-management]
| 同じスレッドを続ける | 新しいスレッドを始める |
|---|---|
| 同じ不具合の仮説を検証している | 別のIssueや別機能へ移る |
| 直前の差分をレビューしている | 以前の方針を破棄してやり直す |
| 同じ受け入れ条件で修正を続ける | 過去の履歴が現在の判断を混乱させる |
| 重要な判断がまだ履歴だけにある | 必要事項を短い引き継ぎに整理できた |
VS Code、GitHub.com、Copilot CLIでは、操作や自動圧縮の仕様が同じとは限りません。現在のVS Codeでは自動圧縮に加えて/compactを手動で実行できます。利用中のクライアントのUIと公式ドキュメントを確認し、どの製品にも同じコマンドがあるとは仮定しないでください。[^vscode-session-management]
5.2 方法5:続きが必要なら短い引き継ぎ要約を渡す
長い履歴を丸ごと維持する代わりに、決定事項と次の作業だけを新しいスレッドへ渡します。
目的:
- 認証タイムアウトの修正を完了する
確定事項:
- 原因は`refreshSession`の再試行間隔
- 公開APIは変更しない
変更済み:
- `src/auth/session.ts`
- `tests/auth/session.test.ts`
未解決:
- 429応答時の上限回数
次の作業:
- 上限を3回として回帰テストを追加する
検証:
- `npm test -- auth`
Copilot CLIでは/contextで現在の内訳を確認し、/compactで履歴を要約できます。圧縮後は細部が失われる可能性があり、元の履歴へ不可逆に戻せない点に注意が必要です。[^copilot-cli-context] VS Codeも/compactを備えますが、ここで説明した/contextの内訳やチェックポイントはCLIの仕様です。
新しいスレッドへ移す前に、未解決事項、変更ファイル、検証コマンドを人が確認した短い要約へ固定すると安全です。
6. 方法6・7:モデルをタスクで選び、検証可能な単位へ分ける
6.1 方法6:モデル名ではなくタスクの複雑さで選ぶ
単純な整形や小さな編集に、常に最も高い推論能力を持つモデルを使う必要はありません。一方、設計判断や複数要因が絡む障害解析では、推論向けモデルの方が追加対話を減らせる場合があります。GitHubの公式比較ページは、一般的な実装、単純作業、深い推論やデバッグなど、タスク領域別にモデルを整理しています。[^copilot-model-comparison]
| タスク | 選択の出発点 | 切り替えを検討する条件 |
|---|---|---|
| 整形、定型文、小さな1ファイル修正 | 高速・軽量寄り | 制約を守れない、テストが通らない |
| 日常的な実装、説明、レビュー | 汎用モデル | 複数ファイルの因果関係を扱えない |
| 設計、難しいデバッグ、大規模変更 | 深い推論向け | 計画確定後は実装向けモデルへ移せる |
| 判断に迷う | Auto | 組織ポリシーや再現性の都合で固定が必要 |
Autoは特定のモデル名ではなく、タスクの複雑さやモデルの稼働状況などに応じて選択する仕組みです。[^copilot-auto-model-selection] モデルの提供状況、料金、Autoの対象は動的です。2026年9月4日時点の公式モデル比較・料金ページを正とし、固定された完全一覧は「GitHub Copilotのモデル選択戦略:性能とAI creditsを最適化する」と公式ページで再確認してください。コンテキストサイズとの関係は「GitHub Copilot のコンテキストウィンドウ徹底比較」で解説しています。
6.2 方法7:調査、計画、実装、検証を分ける
大きな依頼を一度に渡すと、探索結果、設計議論、実装差分、テスト出力が同じ履歴へ蓄積します。公式ガイドは、調査、計画、実装を分け、各フェーズに必要なコンテキストだけを使う進め方を示しています。[^copilot-optimize-ai-usage]
| フェーズ | Copilotへ渡すもの | 成果物と終了条件 |
|---|---|---|
| 1. 調査 | 症状、短いログ、検索範囲 | 関連ファイルと原因候補を列挙 |
| 2. 計画 | 原因候補、制約、受け入れ条件 | 変更単位と検証方法を合意 |
| 3. 実装 | 1つの変更単位、対象ファイル | 最小差分を作成 |
| 4. 検証 | 差分、関連テスト、失敗出力 | 合否と残課題を記録 |
たとえば「認証機能を改善する」ではなく、「失敗テストを1件再現する」「原因箇所を特定する」「最小差分を実装する」「関連テストを通す」と分割します。各ステップでテストやlintの合否を得れば、誤った前提のまま長い実装を続ける手戻りを抑えられます。
7. 効果を捏造せずに測る
GitHub Copilotのすべてのサーフェスで、各プロンプトの入力、出力、キャッシュトークンを同じ粒度で取得できるわけではありません。2026年9月4日時点のVS Code公式ドキュメントでは、応答ごとのAI creditsを確認できます。セッション情報には、累積のコンテキストウィンドウ使用量とAI creditsも表示されます。Copilot CLIの/contextは、現在使用中のトークンとカテゴリ別内訳を表示します。[^vscode-optimize-usage][^copilot-cli-context]
これらは有用な観測値ですが、全クライアント共通の「各プロンプトの入力・出力・キャッシュ別の請求トークン明細」と同一ではありません。
そのため、本記事では実測していない削減率を掲載しません。次の表は実績値ではなく、読者が同じ代表タスクでBefore/Afterを記録するための測定テンプレートです。
| 記録項目 | Before | After | 測り方 |
|---|---|---|---|
| タスクと受け入れ条件 | 記入 | 同一条件 | 同じコミットまたは同等の検証用ブランチを使う |
| クライアントとバージョン | 記入 | 記入 | VS Code、GitHub.com、CLIなどを記録 |
| モデル/選択方式 | 記入 | 原則同じ | コンテキスト施策だけを比べるときは固定 |
| 採用可能な結果までのプロンプト数 | 記入 | 記入 | 最初の依頼から受け入れ条件を満たすまで数える |
| コンテキスト使用量の表示値 | 表示値または取得不可 | 表示値または取得不可 | 完了時点のVS Code表示やCLIの/contextを記録 |
| AI credits | 表示値または取得不可 | 表示値または取得不可 | 応答またはセッション表示がある場合だけ記録 |
| Premium requests | レガシー契約のみ | レガシー契約のみ | 契約画面に表示される場合だけ記録 |
| 採用までの経過時間 | 記入 | 記入 | 同じ開始・終了条件で測る |
| 手戻り件数 | 記入 | 記入 | 要件逸脱、再実装、不要差分の取り消しを数える |
| テスト合格 | 合/否 | 合/否 | 同じテストコマンドで品質を固定 |
比較では一度に複数の条件を変えません。まず添付範囲だけ、次にカスタム指示、最後にモデル選択という順で評価します。代表タスクを複数回試し、中央値と失敗例を残すと、一度だけの偶然を採用しにくくなります。
| 施策 | まず見る指標 | 悪化したときの見直し |
|---|---|---|
| 添付を限定 | ターン数、コンテキスト量 | 必要な型やテストまで削っていないか |
| 指示を短縮 | 要件逸脱、手戻り | 必須ルールを消していないか |
| 新しいスレッド | 初回回答の適合度 | 引き継ぎ要約に決定事項があるか |
| 軽量モデルへ変更 | AI credits、時間、テスト合否 | タスク難度に対して能力不足でないか |
| タスク分割 | 各段階の合否、総ターン数 | 分割が細かすぎて説明を重複していないか |
8. まとめ
| 実践方法 | 要点 |
|---|---|
| 1. プロンプトを具体化 | 目的、範囲、制約、完了条件を書く |
| 2. コンテキストを限定 | 選択範囲、特定ファイル、短いログから始める |
| 3. カスタム指示を整理 | 安定したルールだけを短く、適用範囲を限定する |
| 4. 新しいスレッドを使う | 無関係な課題や誤った方針を持ち越さない |
| 5. 要約で引き継ぐ | 決定事項、変更済み、未解決、次の検証を残す |
| 6. モデルを選ぶ | 固定名ではなくタスク難度と実測で選ぶ |
| 7. タスクを分割 | 調査、計画、実装、検証ごとに合否を得る |
トークン最適化は、文章を機械的に短くする作業ではありません。必要な情報を必要な段階だけに渡し、採用できる結果までの総対話と手戻りを減らす情報設計です。まず代表タスクを1つ選び、添付範囲を限定したBefore/Afterから測定してください。課金への影響を評価するときは、通常のAI credits方式と一部年間プランのレガシー方式を分け、利用時点の公式ページを確認します。
9. 参考情報
- Optimizing your AI usage to maximize efficiency and reduce cost — モデル、プロンプト、コンテキスト、タスク分割を横断した公式ガイド
- Context — VS Codeが扱う暗黙・明示コンテキストと追加方法
- Adding repository custom instructions for GitHub Copilot in your IDE — リポジトリ指示とパス別指示の設定手順
- Manage agent sessions in VS Code — セッション履歴、コンテキスト使用量、圧縮の管理
- AI model comparison — タスク領域別の現行モデル比較
- Optimize AI credit usage in VS Code — 応答・セッション単位の使用量確認と最適化
- Models and pricing for GitHub Copilot — 現行モデルのトークン単価とAI creditsの換算
[^copilot-optimize-ai-usage]: Optimizing your AI usage to maximize efficiency and reduce cost — GitHub Docs(確認日: 2026-09-04)
[^copilot-pricing]: Models and pricing for GitHub Copilot — GitHub Docs(確認日: 2026-09-04)
[^copilot-billing-change]: What changed with Copilot billing (legacy) — GitHub Docs(確認日: 2026-09-04)
[^vscode-context]: Context — Visual Studio Code Docs(確認日: 2026-09-04)
[^vscode-workspace-context]: Workspace context — Visual Studio Code Docs(確認日: 2026-09-04)
[^copilot-content-exclusion]: Content exclusion — GitHub Docs(確認日: 2026-09-04)
[^copilot-custom-instructions]: Adding repository custom instructions for GitHub Copilot in your IDE — GitHub Docs(確認日: 2026-09-04)
[^vscode-session-management]: Manage agent sessions in VS Code — Visual Studio Code Docs(確認日: 2026-09-04)
[^copilot-cli-context]: Managing context in GitHub Copilot CLI — GitHub Docs(確認日: 2026-09-04)
[^copilot-model-comparison]: AI model comparison — GitHub Docs(確認日: 2026-09-04)
[^copilot-auto-model-selection]: About Copilot auto model selection — GitHub Docs(確認日: 2026-09-04)
[^vscode-optimize-usage]: Optimize AI credit usage in VS Code — Visual Studio Code Docs(確認日: 2026-09-04)
この記事の執筆にあたり、AIの支援を受けています。掲載内容は2026年9月4日時点の公式ドキュメントに基づきます。モデル、料金、利用可能性は変更されるため、利用時点の公式情報をご確認ください。






