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を動かしてみて、効果を実感してから本格導入を検討するのが現実的です。