🤖 AIコーディングエージェント
ターミナルやIDE上で動作し、コードの読み書き・コマンド実行・テストなどを自律的に行う「AIコーディングエージェント」。Claude Code・Codex・Gemini CLIなど主要なエージェントの種類と、それらを動かす「ハーネス(実行基盤)」の仕組みを解説する。
📌 主要AIコーディングエージェント比較
| エージェント | 開発元 | 実行環境 | 特徴 |
|---|---|---|---|
Claude Code |
Anthropic | ターミナル(CLI)、VS Code等のIDE拡張、SDK、Web版 | エージェントループ+ツール呼び出し(Bash・Read・Edit・Grep等)で自律的にタスクを遂行。サブエージェントやMCP連携、CLAUDE.mdによるプロジェクト固有指示、ツール実行ごとの権限確認モデルが特徴。 |
Codex / Codex CLI |
OpenAI | ターミナルCLI、クラウド型エージェント、IDE拡張 | コーディングに特化したモデルをベースに、サンドボックス内でコード実行・テストを行う。複数タスクをクラウド上で並列実行するエージェントモードを持つ。 |
Gemini CLI |
ターミナルCLI(オープンソース) | Geminiモデルをベースにした無料利用枠の大きいCLIエージェント。検索やファイル操作などのツールと連携し、MCPにも対応。 | |
GitHub Copilot (Agent mode) |
GitHub / Microsoft | VS Code、GitHub.com | Claude・GPT・Geminiなど複数モデルを選択可能。Issueの自動対応やPRレビューなど、リポジトリに統合された自律エージェント機能を提供。 |
Cursor |
Anysphere | AIネイティブIDE(VS Codeベース) | Composer/Agentモードでマルチファイル編集を自動実行。複数モデルの切替やコードベース全体のインデックス検索が可能。 |
いずれも「LLM本体」+「LLMにツールを使わせて結果を観察させる仕組み(ハーネス)」という構成は共通しており、対応モデルや実行環境、安全機構(権限確認・サンドボックス)に違いがある。
📌 主要LLMモデルの種類(エージェントの「頭脳」)
同じエージェント・ハーネスでも、内部で使うLLM(モデル)によって速度・コスト・性能は大きく変わる。代表的なモデルファミリーの位置づけを示す。
| モデル | 特徴 |
|---|---|
Claude Haiku 4.5 |
Anthropicの最も高速・低コストなモデル。分類・要約・サブエージェントなど、シンプルで大量のタスクに向く。 |
Claude Sonnet 5 |
速度と性能のバランスが取れたモデル。日常的なコーディングやチャットのデフォルトとして使われることが多い。 |
Claude Opus 5 |
Anthropicのフラッグシップモデル。複雑な推論や長時間の自律的エージェント作業(リファクタリング・調査など)で高い性能を発揮する。 |
Claude Fable 5.1 |
Anthropicが広く提供するモデルの中で最も高性能。常時「拡張思考(Extended Thinking)」を行い、数十分単位の長時間自律タスクにも対応する最新世代モデル。 |
Claude Mythos 5.1 |
Fable 5.1と同じ性能・APIを持つモデル。Anthropicの実験的プログラム「Project Glasswing」参加者向けに提供される。 |
Codex(GPT系) |
OpenAIのコーディング特化モデル。Codex CLIやクラウド型コーディングエージェントのバックエンドとして使われ、サンドボックス内でのコード実行・テストに最適化されている。 |
Grok |
xAI(イーロン・マスクが設立したAI企業。同氏が率いるSpaceX・Teslaとは別会社)が開発するモデルファミリー。X(旧Twitter)のリアルタイム情報との連携が特徴で、コーディング特化版が Cursor など各種IDE・エージェントからも利用されている。 |
ローカルLLM |
Ollama・LM Studioなどのツールで自分のPC上で実行するオープンウェイトモデル(Llama、Mistral、Qwen、DeepSeekなど)。オフライン動作・追加コストなし・データを外部に送らないという利点があるが、クラウド型フラッグシップモデルに比べ性能やコンテキスト長は劣ることが多く、十分なGPU/メモリが必要。ContinueなどのエージェントやIDE拡張から接続して使われる。 |
📌 エージェントの動作の仕組み(エージェントループ)
AIコーディングエージェントは、以下のループを繰り返しながらタスクを完了させる。
1. ユーザーがタスクを入力する(例: 「バグを修正して」)
↓
2. LLMがタスクを分析し、必要なツールと引数を決定する
(例: Read("src/app.js"), Grep("function foo"))
↓
3. ハーネスがツールを実際に実行し、結果(ファイル内容・
コマンド出力・エラー等)をLLMに返す
↓
4. LLMは結果を踏まえて次のアクションを決定する
(さらにツールを呼ぶ/ユーザーに確認する/完了報告する)
↓
タスク完了までステップ2〜4を繰り返す(エージェントループ)
このループにより、エージェントは「一度の応答で全てを書き切る」のではなく、コードを読んで状況を確認しながら段階的に修正・検証を進められる。
📌 主要概念・用語
| 用語 | 解説 |
|---|---|
ハーネス (Harness) |
エージェントを動かすための周辺システム全体。CLI、権限管理、コンテキスト管理、ツールの実装などを含む「モデルを動かす土台」を指す。同じLLMでもハーネスが異なれば挙動や安全性が大きく変わる。 |
ツールユース / Function Calling |
LLMが「この関数(ツール)をこの引数で呼びたい」と構造化データで出力し、ハーネス側がそれを実行して結果をLLMに返す仕組み。ファイル操作・コマンド実行・Web検索などをLLMが間接的に行うための基盤。 |
MCP (Model Context Protocol) |
LLMアプリケーションと外部ツール・データソースを接続するための標準プロトコル。Anthropicが提唱し、各社のエージェントが対応を進めている「USB-Cポート」のような共通インターフェース。 |
サブエージェント (Subagent) |
メインのエージェントが特定のタスクを専用の子エージェントに委任する仕組み。並列処理や、メインのコンテキストを圧迫しないための調査タスクの切り出しなどに使われる。 |
コンテキストウィンドウ |
LLMが一度に処理できる入力+出力の上限トークン数。長い会話やコードベースを扱う際は、この範囲に収まるように情報を要約・取捨選択する必要がある。 |
システムプロンプト / プロジェクト指示ファイル |
エージェントの振る舞いを定義する初期指示。CLAUDE.mdやAGENTS.mdのように、プロジェクト固有のルール・コーディング規約をリポジトリに置いて読み込ませる手法が広まっている。 |
サンドボックス実行 |
コード実行やファイル操作を隔離された環境で行い、ホストシステムや本番環境への意図しない影響を防ぐ仕組み。 |
権限モード (Permission Mode) |
ツール実行(ファイル編集・コマンド実行など)の前にユーザーへ確認を求めるか、一定範囲で自動実行を許可するかを制御する設定。安全性と作業効率のバランスを取るための仕組み。 |