

Atsushi Nakatsugawa
May 26, 2026
1 min read
May 26, 2026
1 min read

Types of AI coding agents | CodeRabbitの意訳です。
AIコーディングエージェントは、もはや1つの場所だけに現れるものではありません。あるエージェントはエディタ内で関数を書き換えます。別のエージェントはターミナルからテストを実行します。3つ目はバックグラウンドでブランチを作成します。4つ目はコードがプッシュされた後にプルリクエストをレビューします。
これらは同じラベルでまとめられがちですが、ワークフロー内の異なる場所で、異なる役割を担っています。自律性のレベルも、接続するシステムも、失敗時のリスクも異なります。
そのため、一般的なエージェント分類は、導入するツールを検討しているエンジニアリングチームにとって抽象的すぎることがよくあります。
より実践的なのは、ワークフロー上の適合性で分類する方法です。
エージェントはどこに現れるのでしょうか。どの作業を任せられるのでしょうか。もし間違えた場合、何が起きるのでしょうか。この観点から見ると、AIコーディングツールは6つの有用な役割に分けられます。IDEエージェント、CLIエージェント、バックグラウンドエージェント、レビューエージェント、計画エージェント、Slackネイティブエージェントです。
AIコーディングエージェントとは、コードのコンテキストを読み取り、タスクについて推論し、ツールを通じて操作を行い、人間がすべての手順を細かく指定しなくても結果を確認するシステムです。ファイル編集、テスト実行、リポジトリ検索、プルリクエスト作成、diffへのコメントなどが含まれます。
アシスタントとの違いは重要です。アシスタントはプロンプトに答えます。エージェントはタスク全体に取り組みます。
現場では、その違いはツールが「この関数を書いて」から「失敗しているテストを修正し、呼び出し元を更新し、diffを見せて」に移る場面で表れます。
AIエージェントの種類について調べると、ほぼ必ず7つの分類が出てきます。これらは、エージェントがどのように設計されているかを理解するには有用です。
単純反射型エージェントは、最も基本的な種類です。過去に何が起きたかを記憶せず、次に何が起こりうるかも考慮せず、現在の入力に対して固定ルールで反応します。
これは、フォーマッタ、lintルール、自動補完ツール、CIチェックとして捉えられます。この種のエージェントは高速で予測しやすく、信頼しやすい一方で、多くの開発者がAIコーディングツールについて話すときに想定する「エージェント」とは少し異なります。
モデルベース反射エージェントは、単純反射エージェントを発展させ、内部状態を保持します。全体像が見えていない場合でも、状況を追跡してより適切な判断を行えます。
これはIDEツールに近い考え方です。開いているファイル、直近の編集、リポジトリ構造を見てから変更を提案するエージェントは、すでに開発環境の軽量なモデルを使って動いているといえます。
この種類のエージェントは計画を取り入れます。単に反応するのではなく、定義された成果に向かって作業します。
現代的なAIコーディングエージェントの多くは、この分類に入る可能性が高いです。「パスワードリセットを追加して」のようなタスクを与えると、ファイル編集、呼び出し元の更新、テスト実行など、必要な手順を判断して進めます。
効用ベースエージェントはさらに一歩進み、トレードオフを評価します。単に目標に到達するだけでなく、期待される結果に基づいて最善の経路を選ぼうとします。
現場では、応急的な修正を適用するか、より広い範囲をリファクタリングするか、リスクの高い変更を避けるかを判断するような形で表れます。重要なのは、単なる完了ではなく最適化です。
学習エージェントは、フィードバックに基づいて時間とともに改善します。分類上は、より適応的な側に位置します。
コーディングエージェントでは、これは間接的に表れます。採用された提案、レビュー傾向、プロジェクト固有のルールを通じて適応します。時間が経つにつれて、チームが好むコードの書き方やレビュー方針に近づいていきます。
階層型エージェントは、作業をレイヤーに分けて整理します。上位レイヤーのエージェントが問題を小さなタスクに分解し、下位レイヤーのエージェントが実行を担当します。一方のレイヤーが計画を定義し、別のレイヤーが実装の詳細を処理します。
マルチエージェントシステムは、複数の専門エージェントに作業を分散します。
あるエージェントが計画し、別のエージェントが実装し、さらに別のエージェントがレビューする形です。このパターンは、特に複雑または長時間にわたるタスクを扱うコーディングツールで広がりつつあります。
これらの標準的なAIエージェント分類は、エージェントが内部でどのように推論するかを説明します。しかし、どこで動くのか、コードとどうやり取りするのか、どの程度の制御を委ねるのかまでは教えてくれません。
名称上の問題もあります。情報源によって、これらのエージェント分類の定義やグルーピングは異なり、用語が重複したり境界が曖昧だったりします。同じツールでも、説明の仕方によって複数のカテゴリに当てはまる可能性があります。
そのため、この分類は適用しにくいのです。
エージェントの分類方法に注目するよりも、次のような単純な問いを立てる方が有用です。
このエージェントは自分のワークフローのどこに現れ、何を任せるのか?
この観点では、コーディングエージェントは一般的に6つの接点または役割に分けられます。
IDEエージェントは開発環境内に直接存在します。コードコンテキスト、直近の編集、ファイル構造にすぐアクセスできます。そのため、リアルタイムでの意思決定支援に向いています。
現場では、短いフィードバックループ、リファクタリング、失敗しているテストの修正、コードを書いている最中の反復作業の処理に適しています。
CLIエージェントはターミナルで動作するため、Shellワークフロー、スクリプト、ログに日常的に依存している開発者に自然に適合します。例としては、Claude Code、Gemini CLI、Codex CLIがあります。
IDEエージェントと異なり、リポジトリ全体をたどり、ログを読み、シェルコマンドを実行できます。そのため柔軟性は高いものの、生の環境に近い場所で動作する分、制約をかけるのが難しくなります。
バックグラウンドエージェントは、アクティブなセッションから独立して動作し、多くの場合は隔離された環境で実行されます。タスクを受け取り、時間をかけて処理し、プルリクエストやブランチとして結果を返します。
このモデルは、テスト追加、監視やアラート生成のような定型作業の自動化、複数システムにまたがるマイグレーションなど、長時間かかるタスクや定義が明確なタスクに適しています。
レビューエージェントは、コード生成後またはマージ地点に配置されます。本エージェントはコード生成を行いません。プルリクエストを検査し、リスクを説明し、修正を提案します。そのコードが人間、IDEエージェント、CLIエージェント、バックグラウンドワーカーの区別をしません。
通常、LLMによるコード理解とルールベースの静的解析を組み合わせ、スタイル、正確性、セキュリティに関する問題を検出します。AIが生成するコードが増えるほど、レビューエージェントは重要になります。複雑なワークフローで問題を捉え、チームが速度と品質のトレードオフを管理するための制御レイヤーとして機能します。
計画エージェントは、実装前に動作します。チケット、プロダクト要件、設計ドキュメントなどの入力を受け取り、コードベースに基づく構造化された計画に変換します。
これは、複雑なワークフローや不確実性の高い環境で特に有用です。いきなりコードに入ると、結果が悪くなりやすいためです。多くの場合、計画エージェントはマルチエージェントシステムにおける調整レイヤーとして機能し、複数のエージェントが連携してタスクの異なる部分を処理できるようにします。
Slackネイティブエージェントは、エディタ、ターミナル、プルリクエストそのものではなく、Slackを調整面として使用します。チームは共有スレッドから作業を開始し、接続されたリポジトリやツールからコンテキストを取り込み、結果を同じ会話に戻せます。
現場では、複数人が関わるワークフローに最適です。インシデント対応、サポートのトリアージ、課題計画、コードベースQ&A、運用フォローアップ、エンジニア、PM、その他の関係者に見える状態で進める軽量な実行に向いています。作業がコードからではなく会話から始まる場合に、特に有用です。
これらのコーディングエージェントを簡単に比較すると、次のようになります。
| エージェントの役割 | 動作場所 | トリガー | 生成物 |
| IDEエージェント | エディタ | プロンプト、選択範囲、チャット、エージェントモード | ファイル編集、説明、テスト実行 |
| CLIエージェント | ターミナル | シェルプロンプトまたはコマンド | ファイル編集、コミット、テスト出力 |
| バックグラウンドエージェント | クラウドまたはサンドボックス | 割り当てられた課題またはタスク | ブランチ、diff、プルリクエスト |
| レビューエージェント | プルリクエストワークフロー | PR作成または手動レビュー依頼 | コメント、要約、修正提案 |
| 計画エージェント | Webアプリ、課題管理ツール、IDE | 課題、PRD、設計、自由形式の依頼 | 実装計画とエージェント向けプロンプト |
| Slackネイティブエージェント | SlackスレッドまたはDM。接続されたツールやリポジトリを利用 | メンション、メッセージ、スラッシュコマンド、ワークフロートリガー、スケジュール自動化 | 計画、要約、インシデント/サポートのトリアージ、フォローアップ操作、コード変更、PR |
それぞれの種類は、開発ループの異なる部分を解決します。IDEエージェントとCLIエージェントは、考え、探索し、変更を加える作業を支援します。バックグラウンドエージェントは、長時間かかる作業や反復的な作業を処理します。計画エージェントは、曖昧な要件を構造化された作業に変えます。レビューエージェントは、コードがマージされる前の制御点として機能します。Slackネイティブエージェントは、Slackを技術作業の共有インターフェースにします。これにより、複数人、外部コンテキスト、チームに見える状態で進める必要のある実行を伴うタスクで効果を発揮します。
現場では、チームは1つのシステムにすべてを任せるのではなく、開発のさまざまな段階で複数のAIエージェントを組み合わせ始めています。
AIコード生成が拡大するほど、エージェントの組み合わせはさらに重要になります。私たちの2025年のレポートでは、470件のオープンソースプルリクエストを分析し、AIが作成したPRには人間のみのPRと比べて約1.7倍多くの問題があることが分かりました。AIコーディングエージェントが生成するコードが増えるほど、レビュー負荷が増加します。そのため、独立したレビューレイヤーが不可欠になります。
すべてのツールについて、多数の他のツールと比較しないでください。まず必要な種類を決め、そのうえでより具体的な問いを立てます。
多くのチームは、レビューを拡張する前に生成を拡張します。これは順序が逆です。IDEエージェント、CLIエージェント、バックグラウンドエージェントはいずれも、システムに入ってくるコード量を増やします。計画エージェントは上流工程の作業品質を改善できますが、下流での精査を置き換えるものではありません。
生成されるコードが増えると、レビューが制御点になります。レビューエージェントが重要なのは、他とは異なる役割を担うからです。変更を生成したシステムだけが、その変更を判断する唯一のシステムであってはなりません。コーディングエージェントにはコードを書かせます。計画エージェントには実装前の曖昧さを減らさせます。
一貫した基準で結果を検査する独立したレビュアーをPRフローに配置してください。そうすることで、チームはテスト、ポリシーチェック、監査可能性を生成速度に合わせて維持できます。生成量が増えるにつれて品質が下がっていく状態を避けられます。