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 が少ないため、値を最大化するために意図的に適用します。

構成、拡張機能、検証のプラクティスが整ったので、最後の手順は、エージェントを責任を持ってタスクを適切にスコープし、環境を保護し、結果を継続的にレビューすることです。