🦔

Vibe CodingとAgentic Codingの違いと使い分け

に公開

生成 AI を使ったコーディング手法として、「Vibe Coding」と「Agentic Coding」という 2 つのアプローチがあります。
(生成 AI をバリバリ活用しているエンジニアの方にとっては、今さら感があるかもしれません。)

以前、弊社内で非エンジニア向けに Vibe Coding を布教する活動をしました。
https://zenn.dev/dotdtech_blog/articles/live-vibe-mob-programming

その際「Vibe Coding」と「Agentic Coding」の違いや使い分けがあまりわかっていない方がいるようでした。

この記事では、この 2 つのコーディングスタイルの違いと、使い分けの仕方を解説します。

Vibe Codingとは? - 対話と思考の「セッション」

Vibe Coding は、音楽家が即興でセッションするように、
AI と人間がパートナーとして、対話を重ねながらコーディングを進めていくスタイルです。

チャットインターフェースを通じて「これを試してみて」「このエラーはどう解決する?」といった具合に、短いやり取りを繰り返し、
返ってきたアウトプットを見て、さらに試行錯誤を重ねていきます。
まさに、「雰囲気」でコードを作り上げていくスタイルです。

このアプローチの核心は 「セッション」 という考え方です。
相手のリアクションを見て、次のアクションを考え、相手に投げかける。
これにより、人間は思考を中断することなく、アイデアを形にしていくことに集中できます。
うまく噛み合わないこともありますが、自分にはなかったアイデアが出てくることもあります。

得意なこと:

  • 探索的な開発: 新しい UI や、仕様が固まっていない新機能のプロトタイピング
  • 学習: 新しいライブラリやフレームワークの使い方を学びながら実装する
  • 複雑な問題解決: 正解が 1 つではない問題に対して、AI と壁打ちしながら最適解を探る

Vibe Coding は、答えが明確でない道を AI という相棒と一緒に探検するようなイメージです。

Agentic Codingとは? - 明確なタスクの「依頼」

Agentic Coding は、人間と AI が発注者と受注者のような関係で、明確に定義されたタスクを「依頼」するアプローチです。

ユーザーは「このデータドメインのPOST API を作って」や「このコンポーネントにテストを追加して」といった具体的な指示を出します。
AI エージェントは、その指示を達成するため、必要なファイル編集やコマンド実行などを自律的に行い、完了を報告します。

このアプローチの核心は 「依頼」 です。
まるでジュニア開発者にチケットを渡し、作業を任せるような感覚です。
依頼が具体的であればあるほど、AI は期待通りの成果物を返してくれます。

得意なこと:

  • 定型作業の自動化: リファクタリング、命名規則の統一など
  • コード生成: 設計書や指示書に基づいたコードの生成

Agentic Coding は、面倒だけれどもやるべきことが決まっている作業を、信頼できるエージェントに丸ごとお任せするイメージです。

効果的な使い分け

Vibe Coding と Agentic Coding は、対立するものではなく、「上位互換」「下位互換」の関係でもありません。
開発のフェーズに応じて使い分けることで、その真価を発揮します。

1. Vibeで探索する
まずは Vibe Coding を使い、AI と対話しながら機能の全体像を掴んだり、技術的な実現可能性を探ったりすると良いでしょう。
「ヘッダーコンポーネントを作りたいんだけど、どういう構造がいいかな?」といった曖昧な質問から始めるのが効果的です。

2. Agenticで実行する
Vibe での探索を通じてタスクが具体的になったら、Agentic Coding に切り替えます。
「この仕様でヘッダーコンポーネントを作成し、関連するファイルにインポートして」のように、明確な指示で作業を自動化するのがおすすめです。

思考や設計が求められる上流工程では Vibe Coding を、実装や修正といった下流工程では Agentic Coding を活用することで、人間はより創造的な活動に集中できます。

まとめ

Vibe Coding は AI との「セッション」、Agentic Coding は AI への「依頼」です。

  • Vibe Coding: 不確実性の高いタスクを AI と共に探求する。
  • Agentic Coding: 明確なタスクを AI に任せて自動化する。

この 2 つのスタイルを理解し、プロジェクトの状況に応じて柔軟に使い分けることが、これからの AI 時代の開発者にとって重要なスキルとなるでしょう。

dotD Tech Blog

Discussion