Vibe Coding
バイブコーディングとは、AIモデルに説明を与えてソフトウェアを構築し、生成されたコードを読まずに受け入れることです。この用語は2025年に作られました。
バイブコーディングとは、作りたいものをAIモデルに平易な言葉で説明し、生成されたコードを読まずに受け入れ、プログラムが動いているように見えるかだけで結果を判断するソフトウェア開発です。OpenAIの創設メンバーで、Teslaの元AI責任者であるAndrej Karpathyは、2025年2月にこの手法を「新しい種類のコーディング」と名付け、「雰囲気に完全に身を任せ、指数関数的な進歩を受け入れ、コードの存在すら忘れる」ものと説明しました。彼は、CursorのComposerに音声で話しかけ、差分を読まずに「すべて承認」をクリックし、エラーメッセージにコメントを添えず貼り付ける方法を紹介し、「週末に使い捨てのプロジェクトを作るには悪くない」と述べました。数か月のうちに、この用語はプログラマーの枠を大きく超えて広まり、Collins Dictionaryは「vibe coding」を2025年の今年の言葉に選びました。Cursor、Claude Code、Replit Agentなどのコーディングエージェントや、Lovable、Bolt、v0などのアプリビルダーを使うと、プログラミング経験がない人でもプロンプトからデプロイ済みのWebアプリまで作成できます。
バイブコーディングの仕組み#
ユーザーが動作を説明して結果をテストし、AIエージェントがコードの作成、編集、デバッグを行います。各サイクルでは、処理が正常に動作するか、エラーが発生してユーザーが貼り付けて返すか、または期待と異なるように見えて新たな説明を加えることになります。
この手法が成り立つのは、特にコードで学習した推論モデルなどの大規模言語モデル(LLM)が、WebフロントエンドやPythonスクリプトなど、一般的な技術スタック向けの動作するプログラムを生成できるようになったためです。また、コーディングツールのエージェントハーネスが、支援なしでプログラムを実行してエラーを読み取れることも理由です。バグによる損失が小さく、スピードが最優先されるプロトタイプ、社内ツール、作成者本人だけが使う個人用ソフトウェアに適しています。
バイブコーディングと関連する手法#
- AI支援プログラミング: LLMを使ってコードを作成し、開発者がそのコードをレビューして理解する方法です。Simon Willisonは、記事Not all AI-assisted programming is vibe codingでその違いを示しました。LLMが生成したコードをレビューし、徹底的にテストし、他者に説明できるのであれば、それはソフトウェア開発です。
- エージェント型コーディング: コーディングエージェントがタスクを最初から最後まで実行する方法で、バイブコーダーが使うものと同じツールを利用します。プロフェッショナルなチームでは、コードレビュー、テスト、継続的インテグレーション(CI)を開発プロセスに組み込みます。
- ローコード/ノーコードプラットフォーム: プログラマーではない人が、既成のコンポーネントを組み合わせてアプリを構築できるビジュアルツールです。一方、バイブコーディングでは、任意の言語やフレームワークで通常のソースコードを生成します。
- 生成AI: テキスト、画像、コードを生成する、より広範な技術です。バイブコーディングは、生成AIを活用する方法の1つです。
バイブコーディングによるコンピュータービジョンアプリの開発#
コンピュータービジョンのプロトタイプは、短いスクリプトでWebカメラ映像内の物体を検出、カウント、追跡できるため、バイブコーディングでよく作られるプロジェクトです。生成コードの新しさはモデルの学習データに依存するため、エージェントは記憶を頼りに古いモデルの重みや引数を提案することがあります。Ultralytics Agent Skillsは、Claude Code、Codex、Cursorなどの互換エージェントに、モデルの選定、データセットの準備、学習、推論、エクスポートの手順を提供します。手順はultralyticsリリースに固定されたカタログに基づいており、両者の内容が食い違う場合は、インストール済みパッケージのyolo checksおよびyolo cfgの出力を優先するようエージェントに指示します。「自分のデータセットでYOLO26検出器を学習させてONNXにエクスポートして」といった依頼に対して、エージェントは古いリリースの記憶ではなく、スキルに記載された学習とエクスポートの手順に従います。
未レビューコードのリスク#
Karpathyはコードが「自分の通常の理解力を超えて成長する」と指摘しています。そのため、後の変更や修正もモデルに依存し、誰も確認しない箇所に技術的負債が蓄積します。シェルにアクセスできるエージェントは、ファイルを削除したり破壊的なコマンドを実行したりする可能性があるため、コーディングツールはエージェントサンドボックス内で実行し、リスクのある操作の前に確認を求めます。また、エージェントが読む依存関係やWebページにプロンプトインジェクションが仕込まれている可能性もあります。セキュリティ上の欠陥も同様に本番環境へ入り込みます。Veracodeが2025年に、80件のコーディングタスクで100を超えるLLMをテストしたところ、生成コードによって45%のケースでセキュリティ脆弱性が持ち込まれました。失敗率はJavaで70%を超え、Python、C#、JavaScriptでは38~45%でした。










