Continueエージェントで脆弱性修正PRを自動生成する


セキュリティスキャンで脆弱性が見つかるたびに、手作業で修正してPRを作る。この繰り返し、正直しんどくないですか。

ContinueのAgents機能を使えば、脆弱性の検出から修正PRの作成までを自動化できます。今回は、その具体的な設定手順を紹介します。

Continueの「Agents」とは何か

ContinueはVS Codeなどで使えるAIコーディングアシスタントです。その中の「Agents」機能は、プロンプト・ルール・外部ツール(MCPなど)を組み合わせて、繰り返し使えるワークフローとして保存できる仕組みです。

たとえば「Snykでスキャン → 脆弱性を検出 → 修正コードを生成 → PRを作成」という一連の流れを、ひとつのAgentとして定義しておけます。一度作れば、チーム全体で共有して使い回せるのが強みです。

実行方法は3つあります。

  • Mission Control(Web UI):ブラウザから操作
  • CLI(TUIモード):ターミナルで対話的に実行
  • headlessモード:CI/CDや定期実行に組み込む

最初はTUIモードで挙動を確認してから、headlessでの自動化に進むのがおすすめです。

脆弱性修正PRを自動作成する手順

1. Cookbook Agentを試す

Continueには、あらかじめ用意された「Cookbook Agent」があります。Snyk連携用のAgentも公開されているので、まずはこれを動かしてみるのが近道です。

CLIでの実行例:

cn --agent continuedev/snyk-continuous-ai-agent --repo your-org/your-repo

このコマンドで、指定したリポジトリに対してSnykのスキャン結果をもとにした修正提案が動きます。いきなり自作するより、既存のAgentで「こういう動きをするのか」と掴んでから進めたほうが効率的です。

2. GitHub MCP Serverを設定する

AgentからGitHubのAPIを叩くには、GitHub公式のMCP Serverを使います。MCPは「Model Context Protocol」の略で、AIツールが外部サービスと連携するための仕組みです。

重要なのは、使える機能を最小限に絞ること。

mcpServers:
  - name: github
    command: npx
    args:
      - -y
      - "@github/mcp-server"
      - --toolsets
      - "pull_requests,code_security"

この設定では、PR操作とコードセキュリティ関連の機能だけを許可しています。--toolsets--toolsオプションで、必要なものだけをホワイトリスト化できます。

ひとつ注意点があります。GitHub MCP Serverはデフォルトでread-onlyモードになっており、書き込み系の操作が無効化されます。PRを自動作成するなら、このモードを解除する必要があります。設定ファイルや環境変数で制御できるので、公式リポジトリのREADMEを確認してください。

また、リモートMCP対応のホストを使う場合、VS Code 1.101以上が必要といった環境要件もあります。ローカル版を使うなら問題になりませんが、事前に確認しておくと良いでしょう。

3. config.yamlでAgentを定義する

自分でAgentを作る場合は、config.yamlに定義を追加します。

agents:
  - name: vuln-fix-pr
    description: 脆弱性を検出して修正PRを作成する
    prompt: |
      セキュリティスキャン結果を分析し、
      脆弱性を修正するコードを生成してください。
      修正はドラフトPRとして作成してください。
    rules:
      - テストが通ることを確認する
      - 破壊的変更がないか確認する
    tools:
      - github
      - snyk

「最小構成から始めて、必要に応じてツールを追加する」のが安全なアプローチです。最初から強い権限を持つツールを全部入れると、意図しない変更が起きたときに影響範囲が広がります。

4. ドラフトPRとして作成し、人間がレビューする

ここが一番大事なポイントです。

自動生成されたPRをそのままマージするのは危険です。AIは「コードとしては正しいが、プロジェクトの文脈に合わない修正」をすることがあります。たとえば依存ライブラリのバージョンを上げたら、別の場所で破壊的変更が起きた、なんてことも。

必ずドラフトPRとして作成し、以下を確認してからマージする運用にしてください。

  • 修正内容が妥当か
  • 既存のテストがすべて通るか
  • 再スキャンして脆弱性が消えているか

「自動化」と「放置」は違います。人間のレビューを挟むことで、誤修正のリスクを抑えられます。

GitHub Copilotとの比較

GitHubには、Copilotにコードスキャンのアラートを割り当てて、ドラフトPRを自動作成させる機能がパブリックプレビューで出ています。

こちらを使う選択肢もありますが、GitHub Enterprise CloudかつGitHub Advanced Securityが必要という条件があります。個人開発やスタートアップでは導入ハードルが高いでしょう。

Continueエージェントのほうは、オープンソースで無料から始められます。セットアップの手間はかかりますが、環境を選ばず使えるのが利点です。すでにGitHub Enterprise環境が整っているなら、Copilotのほうが手軽かもしれません。

向いている人、向いていない人

Continueエージェントが向いているのは

  • 脆弱性修正を頻繁に行うプロジェクト
  • CI/CDパイプラインに組み込んで自動化したいチーム
  • GitHub Enterprise Cloudを使っていない環境

向いていないのは

  • セキュリティスキャン自体をまだ導入していない段階
  • 修正PRが月に数件程度で、手動でも十分回る規模

自動化は「手動でやるのが辛くなってから」でも遅くありません。まずはCookbook Agentを動かしてみて、効果を実感してから本格導入を検討するのが現実的です。

参考リンク