AI コーディングエージェントとは、大規模言語モデルを動力とし、コードベースに対して自律的に行動できるソフトウェアである。ファイルを読み、周囲の文脈を理解し、コードを書いたり編集したりし、コマンドを実行し、テストを走らせ、観察した結果に基づいて反復する。人が次に何を打ち込むべきかを提案するだけではない。別の説明は、この境界線をただ一つの能力に絞り込む。コーディングエージェントとはコードを書くことと実行することの両方ができるエージェントであり、モデルを使ってコードを生成する他のあらゆる用途からそれを区別するのは実行だ、というのである。

用法

決定的な性質は自律性である。エージェントは、次の 1 行のコードを予測するのではなく、タスクが完了するまで行動を取っては結果を観察するループの中で動作する。ファイルを作成し、import の欠落に気づいて修正し、テストを走らせ、失敗を見て、人が各ステップで介入しなくても方針を調整する、といった具合である。このカテゴリーの例として挙げられるツールには Claude Code、Cursor、Windsurf、GitHub Copilot のエージェントモードがあり、別の情報源は代表例として Claude Code、OpenAI Codex、Gemini CLI を挙げている。

コーディングエージェントは、エージェント型エンジニアリングが築かれる土台だと説明される。これがなければ AI による支援はオートコンプリート風の提案にとどまるが、これがあればタスク全体を委任し、動作するコードとして返してもらえる。エージェントが生み出すものの品質は、与えられるコンテキスト、すなわち明確な仕様、足場、ガードレールに大きく依存すると説明されており、その方向づけを効果的に与える規律としてエージェント型エンジニアリングの名が挙げられている。

実際には、これはいくつかの形をとる。説明された一つの機能や修正をエンドツーエンドで実装し、人間のレビューに回す単一タスクのエージェント。複数のエージェントがコードベースの異なる部分で同時に作業するマルチエージェント構成。そして、人が別の作業をしている間に、PR レビューや依存関係の更新といったタスクを非同期に実行するバックグラウンドエージェントである。

さらに別の説明は、このカテゴリーをどう使うべきかについて規範的な論点を加える。コーディングエージェントは自分が書いたコードを実行できるので、変更が機能することを実証するよう求めることができる。あなたの仕事は、動くことを証明したコードを届けることだ は、これらのツールを使いこなすとはまさにそれをさせることだと論じる。つまり、作業しながら変更を手動で動かしてみること、そして後々までそれが動き続けるよう自動テストを構築することである。この説明に従えば、エージェントにとって手動テストと自動テストの区別はほぼ消える。どちらも、エージェントが観察するのではなく自ら行うものだからである。同じ投稿は、エージェントがテストを書くのにほとんど促しを必要とせず、既存のテストスイートがあれば言われなくても拡張し、そこで見つけたパターンを再利用すると報告している。そこから、テストコードをよく整理し、再現してほしいパターンで満たしておくという実践的な推奨を引き出している。

どのように構築されるか

エージェント型エンジニアリングのパターン の一章が内部構造を説明しており、その中心的な主張は、コーディングエージェントとは言語モデルのためのハーネスだということである。すなわち、ユーザーが目にすることのないプロンプトによって動かされ、呼び出し可能なツールとして実装された追加の能力でモデルを拡張するソフトウェアである。それ以外のことはすべて、この分離から導かれる。

中心にあるのはモデルそのものであり、それはテキストを補完し、単語ではなく整数のトークンで動作する。この章によれば、これが重要なのは、プロバイダーがトークン単位で課金し、一度に考慮できるトークン数にも上限があるからである。モデルとのやり取りは チャットテンプレート形式のプロンプト、すなわちラベル付きの会話として書式化された補完プロンプトとして表現される。モデルはステートレスなので、ハーネスが自前の状態を保持し、ターンごとに会話全体を再送する。そのためセッションが長くなるほど入力コストが増える。これを部分的に相殺するのが トークンキャッシュ であり、エージェントが会話の前半の内容を変更しないように作られているのはこのためである。

ツールとは、ハーネスがモデルに利用可能にする関数である。プロンプトのレベルでは、ツールはシステムターンの中で説明され、モデルは呼び出しを出力してターンを終え、ハーネスはその呼び出しを抽出し(この章の例示では正規表現を使う)、実行し、結果をさらなるターンとして追加する。この章によれば、ほとんどのコーディングエージェントは 1 ダース以上のツールを定義しており、最も強力なのは Bash() や Python() ツールのようなコード実行である。隠されたシステムプロンプトは、エージェントをそのように振る舞わせる指示を担っており、数百行に及ぶこともある。推論、すなわちモデルが返答する前に追加のトークンを費やして問題を考え抜くことは、デバッグに特に有用だとされる。複雑なコードパスを追いかけ、その合間にツール呼び出しを挟めるからである。多くのエージェントは、推論にどれだけ費やすかを調整するダイヤルを提供している。

この章の結論は意図的に控えめなものである。LLM とシステムプロンプトとツールをループで回せば、コーディングエージェントを構築するのに必要なもののほとんどが揃い、単純なツールループなら既存の API の上に数十行で実現できる。そして本当の仕事となるのは、基本的な仕組みではなく良いツールループのほうだ、というのである。

研究文献における捉え方

LLM ベースのエージェントによるコード生成に関するサーベイ は研究の側から同じカテゴリーに到達し、それをコード生成エージェントと呼んで、こうしたエージェントを従来のコード生成技術から区別するという三つの特徴で特徴づけている。第一は自律性である。これは、タスク分解からコーディング、デバッグまでのワークフロー全体を独立して管理する能力のことで、従来のコード生成モデルがコード補完や関数生成を通じて人間の開発者を受動的に支援していたのとは対照的である。第二はタスク範囲の拡大である。従来の研究は、文脈から 1 行を補完する、シグネチャから関数本体を生成するといった、境界が明確で仕様がよく定義されたタスクを扱うのが典型だったが、エージェントはソフトウェア開発の大部分をカバーできる。あいまいな要件を扱い、プロジェクト全体を実装し、テストとリファクタリングを行い、リアルタイムのフィードバックに基づいて反復的に最適化する。第三はエンジニアリング上の実用性の向上である。研究の重点がアルゴリズム的な正確さから、エンジニアリング上の実装、すなわちエージェントの信頼性、複雑なワークフローの管理、外部ツールの効率的な呼び出しへと移っており、このサーベイはそれを、問題を古典的なソフトウェアエンジニアリングにより近い領域へ移すものだと説明している。

このサーベイは、言語モデルとエージェントの境界線を、能力によってではなくアーキテクチャによって引いている。モデルの動作は単一の受動的な応答プロセスであり、能動的な計画、状態の維持、環境との継続的な相互作用を欠く。一方エージェントは、自律性・対話性・反復性を備えた動的なワークフローを構築し、モデルは現在の環境の状態から次の行動を決める推論エンジンとして働く。この捉え方は、上の実務家による説明と同じ重みをループに置いたうえで、変わったのはソフトウェアにできることだけではなく、人に残される仕事がどの部分かでもある、という主張を付け加える。サーベイは、開発者の役割がタスクの定義者、プロセスの監督者、最終結果のレビュアーへと移っていくと述べている。

関連用語

最初の情報源は、この用語と並ぶ関連用語集の項目として DefinedTerm/tool-use、Plan-Act-Observe ループ、ガードレール、ヒューマン・イン・ザ・ループ、エージェント型エンジニアリング を挙げているが、そのいずれも定義してはいない。