コンテンツにスキップ

コーディングエージェント ― Issue駆動の非同期自動開発

5.1 コーディングエージェントの仕組み

Section titled “5.1 コーディングエージェントの仕組み”

コーディングエージェント(Coding Agent)は、GitHub IssueをCopilotにアサインするだけで、クラウド上のGitHub Actionsサンドボックスで非同期にコードを生成し、ドラフトプルリクエスト(PR)を自動作成する機能である。
開発者がIDE内で作業する必要がなく、Issueのアサイン後はバックグラウンドで作業が進行する。

Copilot Pro、Pro+、Business、Enterpriseプランで利用可能であり、Business / Enterpriseプランでは管理者がポリシーで有効化する必要がある。

flowchart TD
    A["`GitHub Issue
    タスク内容を記述`"] --> B["`Copilotにアサイン
    Assigneesで選択`"]
    B --> C["`GitHub Actionsサンドボックス起動
    リポジトリをクローン`"]
    C --> D["`コード生成
    copilot/ブランチに変更をプッシュ`"]
    D --> E["`セキュリティ検証
    CodeQL・シークレットスキャン
    依存関係チェック`"]
    E --> F["`ドラフトPR作成
    レビュアーにユーザーを追加`"]
    F --> G{"`レビュー`"}
    G -->|修正依頼| H["`PRにコメント
    エージェントが追加修正`"]
    H --> D
    G -->|承認| I["`マージ`"]

コーディングエージェントにはいくつかの制約がある。

  • 単一リポジトリ限定: 1つのタスクで変更できるのは、指定した1つのリポジトリのみ
  • 1タスク1PR: 1つのタスクに対して複数のPRを作成することはできない
  • 保護ブランチへの直接プッシュ不可: すべての変更は copilot/ プレフィクスのブランチにプッシュされ、mainやmasterへの直接プッシュは行われない
  • セッション中のみ反復可能: セッションがアクティブな間はCIの失敗に対して自動修正を試みるが、セッション終了後は手動での再開が必要

5.2 Issueのアサインからプルリクエスト作成までの自動化フロー

Section titled “5.2 Issueのアサインからプルリクエスト作成までの自動化フロー”

コーディングエージェントの出力品質は、Issueの記述品質に直結する。
効果的なIssueは以下の要素を含む。

明確なゴール: 何を実現すべきかを1〜2文で端的に記述する。

技術的な制約: 使用すべきライブラリ、準拠すべきパターン、変更してはならないファイルなどを明記する。

受け入れ基準: タスクが完了したと判断できる条件を箇条書きで示す。

  1. GitHubのIssueページを開く
  2. Assigneesセクションの「Assign to Copilot」ボタンをクリック
  3. ダイアログで対象リポジトリ、ベースブランチ、追加プロンプト(任意)を確認
  4. 「Assign」をクリック

アサイン後、Issue上に [WIP] プレフィクスのPRリンクが表示される。
リンクをクリックするとPRの進捗を確認でき、コーディングセッションの詳細も閲覧可能である。

Copilot Chat(github.com上またはIDE内)からもコーディングエージェントを起動できる。
チャットで「このIssueに対応するPRを作成して」と指示するか、タスク内容を直接記述して「PRを作ってください」と依頼する。

コーディングエージェントのタスク開始時にAIモデルを選択できる。
タスクの性質に応じてモデルを使い分けることで、品質と消費リクエスト数のバランスを取れる。

5.3 セキュリティ検証の自動実行

Section titled “5.3 セキュリティ検証の自動実行”

コーディングエージェントは、PRを完了する前にセキュリティ検証を自動的に実行する。
これは任意のステップではなく、すべてのエージェントセッションに組み込まれた必須プロセスである。

flowchart LR
    A["`コード生成完了`"] --> B["`CodeQL スキャン
    脆弱性パターンの検出`"]
    B --> C["`シークレットスキャン
    認証情報の漏洩チェック`"]
    C --> D["`依存関係チェック
    GitHub Advisory Database
    CVSS High/Critical`"]
    D --> E{"`問題検出?`"}
    E -->|Yes| F["`自動修正を試行
    セッションログに記録`"]
    F --> B
    E -->|No| G["`PR完了`"]

CodeQL: コード内の脆弱性パターン(SQLインジェクション、XSS、パストラバーサル等)を検出する。

シークレットスキャン: ハードコードされたAPIキー、パスワード、トークンなどの認証情報がコードに含まれていないかをチェックする。

依存関係チェック: 新たに追加された依存ライブラリに対して、GitHub Advisory Databaseでマルウェアや既知の脆弱性(CVSS High / Critical)がないかを確認する。

5.4 カスタムエージェントの作成と運用

Section titled “5.4 カスタムエージェントの作成と運用”

カスタムエージェントは、特定のタスクに特化した専門エージェントを定義する機能である。
リポジトリの .github/agents/ ディレクトリにMarkdownファイル(*.md)を作成し、エージェント固有のプロンプト、ツール、指示を記述する。

エージェント名専門領域設定内容例
frontend.mdフロントエンドReactコンポーネント、スタイリング、アクセシビリティに特化
testing.mdテストユニットテスト・統合テストの生成に特化
docs.mdドキュメント技術文書のスタイルガイドに準拠したドキュメント生成
security.mdセキュリティセキュリティレビュー、脆弱性修正に特化
migration.mdマイグレーションフレームワークやライブラリのバージョンアップ支援

Enterpriseプランでは、.github/agents/*.md ファイルへの不正な編集を防ぐためにプッシュルールを設定できる。
これにより、カスタムエージェントの定義がバージョン管理され、承認なしの変更を防止できる。

5.5 サードパーティエージェントとの連携

Section titled “5.5 サードパーティエージェントとの連携”

サードパーティエージェントの概要

Section titled “サードパーティエージェントの概要”

GitHub Issueへのアサインは、Copilot自身のコーディングエージェントだけでなく、サードパーティのコーディングエージェントにも行える。
2026年3月時点で対応しているサードパーティエージェントの例を以下に示す。

  • Claude by Anthropic
  • OpenAI Codex

これらのエージェントは、Copilotのコーディングエージェントと同じリポジトリ設定(MCPサーバー、カスタム指示等)にアクセスでき、同じGitHub Actionsインフラ上で動作する。

flowchart TD
    A{"`タスクの特性`"} --> B["`定型的な実装タスク
    ボイラープレート生成
    テスト追加`"]
    A --> C["`複雑な設計判断を伴うタスク
    アーキテクチャ変更
    大規模リファクタリング`"]
    A --> D["`GitHub固有の操作が多いタスク
    CI/CD設定
    Actions ワークフロー`"]
    B --> E["`Copilot コーディングエージェント
    GitHub統合が最も緊密`"]
    C --> F["`Claude by Anthropic
    長いコンテキスト理解
    慎重な設計判断`"]
    D --> E