Home サーベイ解説: A Survey of Vibe Coding with Large Language Models — 制約付きMDPによる形式化と5つの開発モデル
投稿
キャンセル

✍️ サーベイ解説: A Survey of Vibe Coding with Large Language Models — 制約付きMDPによる形式化と5つの開発モデル

論文概要(Abstract)

本論文は、LLMの進化がコード生成支援から自律的コーディングエージェントへのパラダイムシフトを促し、「Vibe Coding」と呼ばれる新しい開発手法を生み出したことを体系的にサーベイしたものである。著者ら(Yuyao Ge et al., 15名)は、Vibe codingを制約付きマルコフ決定過程(Constrained Markov Decision Process, CMDP)として形式化し、5つの開発モデル(Unconstrained Automation、Iterative Conversational Collaboration、Planning-Driven、Test-Driven、Context-Enhanced)を同定している。著者らの分析によると、Vibe codingの成功はエージェント能力だけでなく、コンテキストエンジニアリング、開発環境、協調モデルに依存する。

本記事は Zenn記事: Malleable Softwareとは何か——LLM時代の動的ソフトウェアとその実現要件 の深掘り記事です。元論文は arXiv:2510.12399 で公開されています。

情報源

  • arXiv ID: 2510.12399
  • URL: https://arxiv.org/abs/2510.12399
  • 著者: Yuyao Ge, Lingrui Mei, Zenghao Duan, Tianhao Li, Yujia Zheng, Yiwei Wang et al.(計15名)
  • 発表年: 2025年(v1: 2025-10-14、v2: 2025-12-21)
  • 分野: cs.AI(Artificial Intelligence)

背景と動機(Background & Motivation)

Andrej Karpathyが2025年2月に提唱したVibe codingは、急速に普及した。しかし、学術的にはVibe codingの定義が曖昧であり、異なる研究者が異なる意味で使用していた。本サーベイは、この概念を形式的に定義し、関連研究を体系的に整理することを目的としている。

従来のAIコーディング支援は、開発者がコードを理解し、一行一行検証するモデルであった。Vibe codingの根本的な違いは、開発者が「結果の観察」によって実装を検証する点にある。つまり、コードの内容を逐一理解するのではなく、アプリケーションの動作を確認して良否を判断する。

この区別は、Malleable Softwareにおいて重要である。エンドユーザーがソフトウェアをカスタマイズする際、コードの内容を理解することを期待するのは現実的ではない。Vibe codingの「結果ベースの検証」モデルは、非技術ユーザーによるソフトウェアカスタマイズの認知モデルとして自然である。

主要な貢献(Key Contributions)

  • 貢献1: Vibe codingの形式的定義。制約付きマルコフ決定過程(CMDP)として数学的にモデル化
  • 貢献2: 5つの開発モデルの同定と体系化。各モデルの特性、適用場面、制約を分析
  • 貢献3: コンテキストエンジニアリング、開発環境、協調モデルの3軸による成功要因の分析

技術的詳細(Technical Details)

CMDPによるVibe Codingの形式化

著者らは、Vibe codingのプロセスを以下のCMDPとして形式化している。

\[\mathcal{M} = (S, A, T, R, C, \gamma)\]

ここで、

  • $S$: 状態空間。現在のコードベース、エラー状態、テスト結果などを含む
  • $A$: 行動空間。プロンプト入力、コード編集、テスト実行、デプロイなどの操作
  • $T: S \times A \rightarrow \Delta(S)$: 状態遷移関数。行動$a$を取った後の次状態の確率分布
  • $R: S \times A \rightarrow \mathbb{R}$: 報酬関数。タスク完了度、コード品質などを数値化
  • $C$: 制約集合。セキュリティ要件、パフォーマンス要件、コードスタイルなどの制約
  • $\gamma \in [0, 1]$: 割引率

Vibe codingにおける開発者の行動は、以下の最適化問題として定式化される。

\[\max_{\pi} \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t R(s_t, a_t) \mid \pi\right] \quad \text{s.t.} \quad \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t c_i(s_t, a_t)\right] \leq d_i, \quad \forall i\]

ここで、

  • $\pi: S \rightarrow \Delta(A)$: 方策(プロンプト戦略やデバッグ方法の選択)
  • $c_i$: 第$i$番目の制約のコスト関数
  • $d_i$: 第$i$番目の制約の上限値

この形式化により、Vibe codingの「成功」を数学的に定義できる。報酬の最大化は機能要件の充足に対応し、制約の充足はセキュリティ・品質要件の担保に対応する。

5つの開発モデル

著者らは、既存のVibe codingツール・実践を分析し、5つの開発モデルを同定している。

モデル特性代表的ツール適用場面
Unconstrained Automation最小限の制約でAIにコード生成を委任ChatGPT, Claudeプロトタイプ、個人スクリプト
Iterative Conversational対話的にAIと協調して開発Cursor, Copilot Chat中規模プロジェクト
Planning-Driven事前に設計・計画を行い、AIが実装Claude Code, Devin複雑なシステム開発
Test-DrivenテストファーストでAIがコードを生成TDD with Copilot高品質が必要な場面
Context-Enhanced大量のコンテキストをAIに提供Cursor(@codebase)既存コードの修正

各モデルの詳細を以下に説明する。

1. Unconstrained Automation(無制約自動化): 最も自由度の高いモデル。ユーザーが目標を伝えるだけで、AIがコード全体を生成する。Vibe codingの原義に最も近い形態であり、Zenn記事で紹介されているKarpathyの概念に対応する。制約が少ないため高速だが、品質管理が課題となる。

2. Iterative Conversational Collaboration(反復的対話協調): ユーザーとAIが対話しながら段階的にコードを構築するモデル。各ステップでユーザーがフィードバックを提供し、AIが修正する。Zenn記事のMalleable Softwareにおける「Gentle Slope」パターンとの親和性が高い。

3. Planning-Driven(計画駆動型): AI が事前に実装計画を立案し、ユーザーが計画を承認した後に実装を進めるモデル。Claude Codeの「plan mode」やDevinのタスク分解機能がこれに該当する。計画の段階でユーザーが仕様を確認できるため、Spec-Driven Development(仕様駆動開発)との相性が良い。

4. Test-Driven(テスト駆動型): テストを先に定義し、AIがテストを通過するコードを生成するモデル。品質保証の観点で最も堅牢だが、テストの記述自体に技術知識が必要であるため、非技術ユーザーには適用が難しい。

5. Context-Enhanced(コンテキスト強化型): 既存のコードベース、ドキュメント、設計図などの大量のコンテキストをAIに提供するモデル。Cursorの@codebase機能やClaude Codeのリポジトリ全体理解が代表例。既存ソフトウェアの修正・カスタマイズに適しており、Malleable Softwareの「既存ソフトウェアをユーザーが修正する」シナリオに直接対応する。

成功要因の3軸分析

著者らは、Vibe codingの成功が以下の3軸に依存すると分析している。

コンテキストエンジニアリング: AIに提供する情報の質と量。プロンプト設計だけでなく、コードベースのインデクシング、関連ドキュメントの自動取得、会話履歴の管理などが含まれる。

開発環境: AI統合IDE(Cursor, Windsurf等)、ターミナル統合(Claude Code)、ブラウザベースプラットフォーム(Bolt, Replit等)などの環境選択が成功に大きく影響する。

協調モデル: 人間とAIの役割分担。「AIが主導し人間が承認」「人間が主導しAIが補助」「対等な協調」の3パターンがあり、タスクの複雑さに応じて適切なモデルが異なる。

実運用への応用(Practical Applications)

Malleable Softwareとの統合的視点

本サーベイの5つの開発モデルは、Malleable Softwareのユーザー層に応じて使い分けることが考えられる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def select_vibe_coding_model(
    user_skill_level: str,
    task_complexity: str,
    quality_requirement: str,
) -> str:
    """ユーザー・タスク特性に応じたVibe codingモデル選択

    Args:
        user_skill_level: "novice" | "intermediate" | "expert"
        task_complexity: "simple" | "medium" | "complex"
        quality_requirement: "prototype" | "production"

    Returns:
        推奨するVibe codingモデル名
    """
    if user_skill_level == "novice" and task_complexity == "simple":
        return "Unconstrained Automation"
    elif quality_requirement == "production":
        return "Test-Driven" if user_skill_level == "expert" else "Planning-Driven"
    elif task_complexity == "complex":
        return "Context-Enhanced"
    else:
        return "Iterative Conversational"

「生産性パラドックス」への示唆

Zenn記事で紹介されているMETRの調査(経験豊富な開発者がAI使用時に19%遅くなる)について、本サーベイは追加の分析を提供している。著者らは、このパラドックスが主に「Unconstrained Automation」モデルで発生し、「Planning-Driven」や「Context-Enhanced」モデルでは生産性の向上が観察される傾向にあると論じている。つまり、Vibe codingモデルの選択が生産性に直接影響する。

関連研究(Related Work)

  • Sarkar & Drosos (2025): Vibe codingの実証的行動パターンの分析(本シリーズの別記事で解説)。本サーベイはこの研究の知見を理論的枠組みに統合している
  • Vaithilingam et al. (2024): AIコード生成ツールのユーザビリティ研究。本サーベイの「協調モデル」分析の基盤となっている
  • Fan et al. (2023): LLMを用いた自動プログラミングのサーベイ。本サーベイはこれをVibe coding特有の文脈に拡張している

まとめと今後の展望

本サーベイは、Vibe codingをCMDPとして形式化し、5つの開発モデルを体系化した包括的な研究である。Malleable Softwareの実現に向けては、以下の示唆が得られる。

  1. モデル選択の重要性: 非技術ユーザーには「Unconstrained Automation」、既存ソフトウェアの修正には「Context-Enhanced」が適している
  2. コンテキストエンジニアリング: AIに適切な文脈を提供する仕組み(MCPのような標準プロトコル)が成功の鍵となる
  3. 品質と自由度のトレードオフ: 制約なしのVibe codingは高速だが品質リスクが高い。Malleable Softwareのツール設計では、タスクの重要度に応じた制約レベルの自動調整が有用と考えられる

著者らは今後の研究方向として、Vibe codingのセキュリティ分析、長期的なコード品質への影響、および非技術ユーザーへの適用拡大を挙げている。

参考文献

この投稿は CC BY 4.0 でライセンスされています。

論文解説: ROUTE — マルチタスクFTとエキスパートLLM協調でText-to-SQL精度76.4%を達成

AWS公式解説: Amazon Bedrock Cross-Region Inferenceでスロットリングを解消しスループットを向上させる