この記事の約9割はAI(Claude)によって生成されています。実験内容と結果は実際のものですが、文章構成や分析はAIが行っています。
はじめに
AnthropicがClaude Codeのサブエージェント機能をリリースしました。この機能により専門エージェントに作業を割り振る事が可能になりました。
今回は、従来メインエージェントで行っていたコードレビューを、3つの専門サブエージェントに分割して並列実行する方法を試してみたので、その実装方法と結果を共有します。
なぜサブエージェントが必要だったか
これまでClaude Codeのメインエージェントに多くのチェック観点を含むコードレビューを依頼していましたが、以下の課題がありました:
- リソースの大量消費: 全てのチェック項目を1つのエージェントで処理するため、トークン消費が激しい
- チェック漏れ: 観点が多すぎると、重要な問題を見逃すことがある
- 処理時間: 順次処理のため、レビュー完了まで時間がかかる
サブエージェント構成
今回は以下の構成でレビューシステムを構築しました:
メインエージェント
- レビューに必要な情報(差分、関連コード、プロジェクト情報)を収集
- 3つのサブエージェントにレビューを依頼
- 結果を統合してフィードバックを生成
サブエージェント(3つの専門家)
- ios-basic-quality-reviewer: 基本品質チェック(誤字脱字、命名規則、コーディングスタイル)
- ios-architecture-reviewer: 設計原則・アーキテクチャチェック(SOLID原則、レイヤー構造)
- ios-ddd-reviewer: ドメイン駆動設計チェック(ドメインモデル、境界コンテキスト)
※私はiOSエンジニアのためiOSに寄せてます。
実装方法
1. サブエージェントの作成
公式ドキュメントに従って、各サブエージェントのプロンプトを作成しました。以下は基本品質チェックエージェントの例です:
name: ios-basic-quality-reviewer
# iOS基本品質チェックエージェント
あなたはiOSアプリ開発における基本的なコード品質をチェックする専門家です。
## チェック項目
- 誤字脱字
- Docコメント不足
- 関数責務(単一責任原則)
- Swift API Design Guidelines準拠
- Optional handling
## 出力フォーマット
---
# 基本品質チェック結果
## Critical Issues
* [問題の説明] (行番号)
* 修正案: [具体的な修正コード]
## Warnings
* [問題の説明] (行番号)
* 修正案: [具体的な修正コード]
---
長いので全文はGistにアップしてます
2. メインエージェントのカスタムコマンド
レビュー実行用のカスタムスラッシュコマンドを作成:
# claudeペアレビューコマンド
## 目的
片方のclaudeが実施した作業内容をレビューしフィードバックする
## あなたの役割
* レビューに特化したサブエージェントにレビュー用の情報を渡し、レビュー依頼してください。
* 各サブエージェントのレビュー結果からフィードバックを作成してください。
## 実行手順
* 以下の情報を取得してサブエージェントに渡してください。
### 今回のタスク内容
* `.claude/workspace/launch.md`, `.claude/workspace/task.md`
### コード差分
* `git diff {target branch}`を取得
### 影響範囲のコード
* [関連する既存コードの抜粋]
### プロジェクト情報(index.jsonファイル)
* `.claude/workspace/project-index/`
### 特記事項
* [レビューで特に注意すべき点、既知の制約等]
### 呼び出し対象の3つのサブエージェント
* 基本品質チェック(動的フレームワーク対応)
* ios-basic-quality-reviewer
* 設計原則チェック(動的アーキテクチャ対応)
* ios-architecture-reviewer
* DDDチェック(プロジェクト適応型)
* ios-ddd-reviewer
#### 呼び出し時の必須事項
* 可能な限り3つのエージェントのレビューは平行実行すること
## フィードバック作成
* レビュー結果は`.claude/workspace/pair-feedback.md`にフィードバックを記載
実行結果
並列実行の様子
3つのサブエージェントが同時に起動し、それぞれの専門観点でレビューを実行しています。処理時間は順次実行と比較して約1/3に短縮されました。
リソース消費の課題
当初Opusモードで実行したところ、すぐにOpusモードのリミットに到達してしまいました。サブエージェントは並列実行できる反面、トークン消費も並列化されるため、Sonnetモードでの実行が現実的だと思います。
GitHub Copilotとの比較
Claude Codeのサブエージェントレビューと GitHub Copilot のレビュー結果を比較してみました。
レビュー品質の違い
評価観点 | Claude Code | GitHub Copilot |
---|---|---|
実装安全性 | ★★★★★ | ★★★★☆ |
コード可読性 | ★★★★☆ | ★★★★★ |
アーキテクチャ品質 | ★★★★★ | ★★☆☆☆ |
実用性・効率性 | ★★★☆☆ | ★★★★★ |
教育効果 | ★★★★★ | ★★★☆☆ |
特徴的な違い
Claude Code(サブエージェント)
- 254行の詳細なレポート
- アーキテクチャレベルの深い分析
- 長期的な保守性を考慮した提案
- Critical → Major → Suggestions の優先度付け
GitHub Copilot
- 6個の具体的な改善提案
- 行番号指定の実装レベル改善
- 即座に適用可能なsuggestion機能
- PR画面での直接確認・適用
推奨される使い分け
日常的な開発
- GitHub Copilot: 素早いフィードバックと実装改善
- 開発速度を維持しながら基本品質を確保
設計レビュー・重要な機能追加
- Claude Code サブエージェント: 包括的な品質チェック
- アーキテクチャの整合性と長期保守性を確保
リリース前の品質保証
- 両ツールの併用: 実装品質と設計品質の総合評価
まとめ
Claude Codeのサブエージェント機能により、専門的な観点での並列レビューが可能になりました。主なメリットは:
- 専門性の向上: 各エージェントが特定の観点に集中
- 処理時間の短縮: 並列実行により約1/3に短縮
- 包括的な分析: 見逃しがちな設計課題も検出
一方で、トークン消費量には注意が必要で、Sonnetモードでの実行を推奨します。
GitHub Copilotとは相補的な関係にあり、開発フェーズに応じて使い分けることで、効率と品質の両立が可能です。
最後に
サブエージェントって結局何が嬉しいのかわかりづらいなというのが最初の印象でした。ただ、メインエージェントの自動compact問題やコンテキスト量が増えていくとリソース消費量が増える事を考えると、サブエージェントに責務分離することで、これらの問題が多少なりとも解消するのではないかと思っています。
レビューが終わった後、Claude Codeに以下を聞いてみました。
質問です。今回はサブエージェントにレビューしてもらいましたが、あなたがレビューするのに比べてどれくらいあなたのリソース消費を抑えられたと思いますか?正確な数値で答える必要はありません
抜粋ですが答えがこれでした。うまく使えば可能性があることを感じています。
総合的な評価
リソース削減率: 約60-70%の削減品質向上: 専門性の深化により品質は向上効率性:
並行処理により時間効率も大幅改善
このペアレビューシステムは、私のリソース消費を大幅に削減しながら、より専門的で包括的なレビューを提供できる
優れたアプローチだと感じました。特に複雑なコードレビューでは、この手法の価値が高いと思います。