Visual Studio CodeでCodeGPTを利用する際、チャット欄にコード断片を貼り付けるだけの使い方では、プロジェクト全体の依存関係やアーキテクチャを踏まえた回答は得られません。CodeGPTをリポジトリ全体を理解するAIアシスタントへ進化させる鍵は、カスタムAPIキー(BYOK方式およびカスタムエンドポイント)の接続と**ローカルワークスペースのインデックス作成(Codebase Indexing)**の2点にあります。これらを整えることで、内蔵のセマンティック検索ツール(Semantic Search Tool)とプロファイルモードが機能し、複数ファイルにまたがるコードの解説や安全なリファクタリングがエディタ内で完結します。
1. カスタムAPIキーの接続(BYOKとカスタムエンドポイント)
CodeGPTはハイブリッドな料金体系を採用しています。新規ユーザーには月間30回の無料インタラクション枠が提供されますが、本格的な開発では**BYOK(Bring Your Own Key)**プランまたはチーム向けサブスクリプションの利用が一般的です。BYOKを利用すると、CodeGPT側のメッセージ上限を気にすることなく、モデルのToken利用料を各AIプロバイダーへ直接支払う形で運用できます。
プロバイダーとAPIキーの設定手順
- 拡張機能のインストールとアカウント同期:VS Codeの拡張機能マーケットプレイスで
DanielSanMediumが提供するCodeGPT: AI Coding Agents & Chatをインストールします。サイドバーでCodeGPTを開き、Google、GitHub、またはメールでログインしてアカウントを同期します。 - プロバイダー設定画面を開く:
- CodeGPTチャット下部の Manage Models ボタンをクリックし、Providers タブを開きます。
- または、VS Codeのコマンドパレット(Windows/Linuxは
Ctrl+Shift+P、macOSはCmd+Shift+P)を開き、CodeGPT: Set API KEYを実行します。
- AIプロバイダーの選択:
- CodeGPTは、OpenAI、Anthropic、Google AI Studio、DeepSeek、Mistral、Cohere、Groq、Cerebras、Perplexityのほか、ローカル環境のOllamaやLM Studioに標準対応しています。
- 利用するプロバイダーのコンソールで発行したシークレットAPIキーを入力します(組織管理がある場合はOrganization IDも設定可能)。
- OpenAI互換カスタムエンドポイントの接続(Custom Provider):
- 社内プライベートクラウド、自社ホストのLLM(vLLMやリモートOllama環境)、OpenRouter等のプロキシを利用する場合は、プロバイダー一覧から Custom を選択します。
- 対象のモデル名(例:
cognitivecomputations/dolphin3.0-mistral-24b:freeや独自タグ)を入力します。 - APIキーを入力します。
- エンドポイントの完全なURL(Custom Link、例:
/chat/completionsのHTTP URL)を入力します。 - Connect をクリックして接続を確立します。
- BYOK利用時の必須操作:APIキー登録後、チャット画面上部のモデル選択メニューから使用するモデルを明示的に選択してください。モデルが未選択の状態でプロンプトを送信すると、「You must select a model first」というエラーが発生します。
2. ローカルワークスペースのインデックス作成(Augmented Context)
通常の大規模言語モデルは、エディタで開いていないファイルや別階層のモジュール構成を認識できません。CodeGPTの**Codebase Indexing(拡張コンテキスト)**は、ローカルにベクトルインデックスを構築し、プロジェクト全体の文脈をAIに提供します。
コード選択とコードベースインデックスの使い分け
- コード選択(Highlighting):単一関数のロジック確認、特定のエラー箇所の修正、簡易的な質問など、プロジェクト全体の情報が不要な場合に適しています。
- コードベースインデックス(Codebase Indexing):別ディレクトリにあるインターフェース定義の参照、複数モジュール間のデータフロー把握、プロジェクト規約に沿ったリファクタリングに不可欠です。
ワークスペースのインデックス構築手順
- CodeGPTサイドバーのメインメニューから、Augmented Context内の Codebase ボタンをクリックします。
- Create Codebase Index をクリックします。
- フォルダ選択ダイアログで、インデックス対象とするワークスペースのルートフォルダを選択します。
- プロジェクト内のソースコードが解析され、ローカルベクトルインデックスが生成されます。
- 作成が完了すると、AIエージェントに Semantic Search Tool(セマンティック検索ツール) が自動的に付与されます。
会話内でのコンテキスト注入方法
- 自動セマンティック検索:別ファイルに関連する質問を投げると、CodeGPTは自動的にSemantic Search Toolを呼び出し、関連するコードスニペットを特定してプロンプトに注入します。
- 特定ファイルの明示的ピン留め:チャット入力欄下の
+Add Contextから#Filesを選んで特定ファイルを追加したり、入力欄で@を入力してアクティブなバッファや関数を直接指定できます。 - 作業中ファイルの自動追加:CodeGPTの設定(
⚙️アイコン)で、現在開いているエディタファイルを自動的にコンテキストへ含める設定を有効化できます。
3. ワークスペース文脈を活用したコード解説
大規模なコードベースや引き継いだ既存システムを読み解く際、単体の構文だけを見ても設計意図は把握できません。
推奨プロファイルモード:Search Mode(検索モード)
CodeGPTのチャットには3種類のプロファイルモードが用意されています:
- Chat Mode:ファイル操作ツールを使用せず、一般的なプログラミングの質問や概念解説に特化。
- Search Mode(コード解説に最適):読み取り専用モード。ファイル構造の調査、セマンティック検索、関連ファイルの読み込みを実行できますが、ファイルの書き換えは一切行わないため、安全に深層調査が可能です。
- Agent Mode:ファイルの作成・編集・削除、ターミナルコマンド実行のフル権限を持ち、実装作業向け。
コード解説の手順
- 解説したいコードの選択:VS Codeエディタ上で、理解したい関数やクラス、複雑な処理ブロックをハイライトします。
/Explainコマンドの実行:- CodeGPTチャット入力欄に
/Explainと入力して Enter を押します。 - または、エディタ内で右クリックし、コンテキストメニューから Explain CodeGPT を選択します。
- CodeGPTチャット入力欄に
- プロジェクト全体の文脈を踏まえた出力:インデックスが機能しているため、呼び出しているユーティリティがどこで定義されているか、受け取る引数がどのレイヤーから渡されているかを含めた、構造的な解説が生成されます。
- 追加の深掘り質問:Search Modeのまま、さらに踏み込んだ質問が可能です:
- 「このハンドラーはワークスペース内のどのルーティングから呼び出されているか?」
- 「この型定義とデータベース層のリポジトリとの関連性を説明してほしい」
4. ワークスペース全体を意識した安全なリファクタリング
部分的なリファクタリングは、呼び出し側のシグネチャ不整合やプロジェクト規則の破壊を招きがちです。CodeGPTはスラッシュコマンドと適切な権限設定により、安全なコード改善を支援します。
リファクタリングの手順
- リファクタリング対象の選択:可読性改善や最新構文化(async/await化など)を行いたいコードブロックを選択します。
/Refactorコマンドの実行:- チャット入力欄に
/Refactorと要望(例:/Refactor コールバックチェーンをasync/awaitに書き換え、バリデーションロジックを分離して)を入力して Enter を押します。 - または右クリックメニューから Refactor CodeGPT を選択します。
- チャット入力欄に
- 差分の確認と適用:
- Search Mode または Chat Mode の場合:チャットパネル内にリファクタリング後のコードブロックが提示されます。内容を確認後、コードブロック右上の Insert code(矢印アイコン)をクリックしてエディタのアクティブファイルへ直接反映します。
- Agent Mode の場合:内蔵の
Edit Fileツールを呼び出してディスク上のファイルを直接編集します。設定でAuto-Approveを無効にしていれば、変更前の承認ステップが挟まれます。
確実性を高めるベストプラクティス
- 「まずSearch、次にAgent」の段階的運用:リファクタリング前にまず Search Mode で影響を受ける周辺ファイルをAIに調査させ、改修計画が固まった段階で Agent Mode に切り替えてファイル変更を実行します。
- ターミナルでのテスト検証:Agent Modeでは、内蔵の
Run Terminal Commandツールを利用してnpm testやpytestなどのテストスイートを実行させ、リファクタリングによるデグレが発生していないか即座に確認できます。 - インデックスの定期更新:大幅なコード改修やGitのブランチ切り替えを行った後は、Codebaseメニューから再インデックスを実行し、ベクトルデータを最新状態に保ちましょう。