Copilot Cloud エージェントのカスタマイズ、拡張、検証
GitHub Copilot Cloud Agent は、セキュリティで保護された一時的な GitHub Actions 環境内で実行されます。 いくつかの構成手順を使用すると、この環境を準備して信頼性と速度を向上させ、モデル コンテキスト プロトコル (MCP) を使用して外部ツールを使用してエージェントの機能を拡張し、マージ前にエージェントの出力をテストおよび検証するためのベスト プラクティスを適用できます。
このユニットを終了すると、次のことができるようになります。
- エージェントの開発環境をカスタマイズするためのツール、依存関係、シークレットをプレインストールします。
- モデル コンテキスト プロトコル (MCP) を使用してエージェントの機能を拡張します。
- 変更をマージする前に、エージェントの出力を効果的にテストして検証します。
開発環境の準備
プレインストール ツールと依存関係copilot-setup-steps.yml
リポジトリの既定のブランチに .github/workflows/copilot-setup-steps.yml を作成します。 ワークフローでは、 copilot-setup-stepsという名前の 1 つのジョブを定義する必要があります。 依存関係のインストールまたはツールのセットアップに必要な手順を含めます。
TypeScript の例:
name: "Copilot Setup Steps"
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install JavaScript dependencies
run: npm ci
copilot-setup-steps ジョブに許可されている構成キー: steps, permissions, runs-on, container, services, snapshot, timeout-minutes (≤ 59)。 安全なロールバックを可能にするために、任意の actions/checkout フェッチの深さはオーバーライドされます。 セットアップ ワークフローはスタンドアロンで実行され (検証できるように)、エージェントが開始される前に自動的に実行されます。
大規模な GitHub でホストされるランナー
- 最初に大きなランナーを追加する
-
copilot-setup-steps.ymlで、runs-onをラベル/グループ (たとえば、ubuntu-4-core) に設定します。 - Ubuntu x64 ランナーのみがサポートされています。セルフホステッド ランナーはサポートされていません。
Git LFS
Git Large File Storage を使用する場合は、セットアップ手順で有効にします。
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v5
with:
lfs: true
ファイアウォールのカスタマイズ
既定のインターネット アクセスは、流出リスクを軽減するために制限されます。 必要に応じて、組織のポリシーごとにファイアウォールをカスタマイズまたは無効にすることができます。
モデル コンテキスト プロトコル (MCP) を使用して拡張する
MCP は、ツールとデータに LLM を接続するためのオープンな標準です。 エージェントは、ローカルまたはリモートの MCP サーバーによって提供される ツール を使用して、その機能を拡張できます。
注: Copilot Cloud Agent では、MCP ツールのみがサポートされます (リソースやプロンプトはサポートされません)。 OAuth を必要とするリモート MCP サーバーはサポートされていません。
既定の MCP サーバー
- GitHub MCP サーバー: 既定で現在のリポジトリをスコープとする読み取り専用トークンを使用して、問題、PR、GitHub データにアクセスします (トークンをカスタマイズできます)。
- プレイライト MCP サーバー: エージェントの環境内でアクセスできる Web ページの読み取り、操作、およびスクリーンショットの取得 (localhost/127.0.0.1)。
リポジトリの構成
管理者は、リポジトリ内の JSON 構成を使用して MCP サーバーを宣言できます。 構成が完了すると、エージェントは使用可能なツールを自律的に使用します。使用ごとの承認プロンプトは使用されません。 MCP を使用した GitHub Copilot クラウド エージェントの拡張を参照してください。
ベスト プラクティス
- パフォーマンスと出力品質への影響について、サードパーティの MCP サーバーを確認します。
- 読み取りツールを優先します。書き込みツールが存在する場合は、必要なものだけを許可します。
- 保存する前に、MCP 構成を慎重に検証します。
エージェント出力のテストと検証
お客様は、品質とセキュリティについて引き続き責任を負います。
- すべてのエージェント PR で CI (テスト、リンター、スキャン) を実行します。[承認してワークフローを実行する] をクリックするまで、これらのチェックは実行されません。
- 影響の大きい領域または機密性の高い領域を手動で検査します。
- テストを生成するようにエージェントに依頼します (例: "Add Jest unit tests for all functions in
src/utils/following repo style") - マルチファイル テスト生成では PRU が使用されます。 - ルールセットを適用して、エージェント PR がテストに合格する必要があるため、マージ前にスキャンとリンティングを行う必要があります。
- エージェント PR (
agent-refactor, agent-testsなど) にラベルを付けて、監視、トリアージ、および必要に応じて復元を行います。 - 繰り返し間違いがある場合は、.github/copilot-instructions.md の命令を反復処理します。
- 必要に応じてすばやく元に戻し、エージェントに新しい変更を要求します。
検証に PRU を意図的に使用する
PRU を利用して、テスト カバレッジの拡張、ディレクトリ間の監査、危険なエリア スキャンなどのより詳細な検証タスクを行います。 ライトウェイト チェックでは消費される PRU が少ないため、値を最大化するために意図的に適用します。
構成、拡張機能、検証のプラクティスが整ったので、最後の手順は、エージェントを責任を持ってタスクを適切にスコープし、環境を保護し、結果を継続的にレビューすることです。