Vibe Codingから本番運用へ:AIエージェントで本物のアプリをリリースする

Vibe Codingは動くプロトタイプを高速に作れますが、AIエージェントで本番アプリをリリースするにはそれだけでは不十分です。プロンプトからデプロイまでの全工程を解説します。

Vibe Codingから本番運用へ:AIエージェントで本物のアプリをリリースする

Vibe Coding(作りたいものを文章で説明し、AIエージェントにコードを書かせる手法)は、もはや単なるお遊びではなく、本格的な開発戦略として定着しました。しかし、多くのチュートリアルはローカルでデモが動く段階で止まっています。本ガイドではその先を取り扱います。Vibe Codingで作ったプロトタイプを、テスト・セキュリティ強化・CI/CDを経て、AIエージェントで本番運用できるVibe Coding製アプリとしてリリースし、実ユーザーに信頼される状態にするまでの全工程を解説 AIエージェントがどのフェーズを担当し、どこに人間の判断が不可欠なのか、そしてAIがキャリアを左右するようなバグをひっそり混入させないためのワークフローの組み立て方を学べます。

「Vibe Coding」が実戦で意味すること

この用語は2025年初頭にAndrej Karpathy氏が提唱したもので、開発者がすでに行っていたことを命名する形で瞬く間に広がりました。ボイラープレートを書く代わりにプロンプトを書き、モデルに構文を覚えさせる一方で、自分は意図だけを抱えるというやり方です。これは手を抜くことではなく、アイデアと動作するコードの距離を縮めることです。落とし穴は、AIが生成するコードは学習データで支配的だったパターンを反映するため、微妙な箇所で自信満々に間違ってしまう点です。

プロトタイプから本番運用までのギャップ

Vibe Codingで作成したプロトタイプは通常、単一のハッピーパスだけです。エラーハンドリングも、認証のエッジケースも、レート制限も、データベースがコールドスタートした場合の考慮もありません。「自分のマシンでは動く」と「午前2時に500ユーザーの同時アクセスに耐える」の間にあるギャップこそが、AI支援プロジェクトの多くが頓挫するまさにそのポイントです。このギャップを埋めるには、AIを完成品を提供する神託ではなく、指示を必要とする共同作業者として扱う必要があります。

エージェント型ツールが方程式をどう変えるか

旧世代のAIコーディング支援は、強化された自動補完に過ぎませんでした。CursorのエージェントモードやDevin、あるいはOpen Vibeのような専用プラットフォームのように、AIエージェントでデプロイ可能なSaaSアプリの構築をステップバイステップで導くモダンなエージェント型ツールは、複数ファイルにまたがるコンテキストを保持し、シェルコマンドを実行し、テスト出力を読み、キーボードを触らずに反復できます。これにより、ワークフローは「人間が指示しAIが生成する」から「人間が指揮しAIが実行する」へと変わります。この区別は、本番運用上の懸念を扱う段階になると非常に重要です。

フェーズ1:構造化されたプロトタイピング(単なるVibe Codingではない)

Vibe Codingアプリを本番品質に持っていく最速の方法は、後ではなくプロトタイプ段階で規律を持つことです。これは速度を落とすという意味ではなく、AIエージェントにあらかじめ十分なコンテキストを与え、後で3日もかけて判断の混乱を解きほぐす事態を避けるということです。

エージェントが使える仕様書を書く

最初のプロンプトを書く前に、短い製品仕様を書きましょう。データモデル、API表面、認証方式、そして最も重要な3つのユーザーフローです。形式張ったものである必要はありません。リポジトリルートのMarkdownファイルで十分です。エージェントがこのドキュメントをコンテキストとして持っていると、アーキテクチャの選択がファイル間で一貫性を持ちます。なければ、REST APIを期待するReactフロントエンドとGraphQLを返すバックエンドができあがり、結合時に判明します。

早期にスタックを選び、コミットする

AIエージェントは、よく代表されるスタックでのコード生成に非常に優れています。Next.js + PostgreSQL + Prisma、あるいはFastAPI + SQLAlchemy + Reactといった組み合わせは、モデルが何度も見てきたパターンです。珍しい組み合わせでも動きますが、エージェントはライブラリAPIをもっと頻繁にハルシネーションします。本番アプリでは、退屈な技術こそが長所です。フルスタックアプリケーションを構築しており、スタックをすでに理解しているAIプラットフォームを求めるなら、MERN.AIを評価する価値があります。自然な言語の説明を、適切なデフォルトを備えた本番対応のフルスタックコードに変換してくれます。

最初からバージョン管理

意味のあるAIエージェントのセッションごとにコミットしましょう。当たり前のように聞こえますが、Vibe Codingのフロー状態では、エージェントが4つのファイルを書き換える間に、以前のバージョンのほうが実際には良かったと気づかないことがよくあります。小さなコミットはロールバックの表面積を提供します。また、エージェントに変更点を説明してもらう際、差分を取る対象も与えてくれます。

フェーズ2:テスト — AIに自身のテストを書かせる

Vibe Codingプロジェクトの多くはテストの段階で崩壊します。エージェントはアプリケーションコードと同じ速度でテストを書けますし、明示的に頼めばそうしてくれます。問題は、AIが生成するテストは、振る舞いではなく実装をテストする傾向があることです。コードを書いたのと同じエージェントがテストを書くため、同じ前提のもとに自明に成功してしまいます。

テスト駆動プロンプティング

効果的な対策の一つは、最初にテストケースを平易な英語で書き、それからエージェントに機能とテストの両方を別々に実装させるというものです。「重複したメールを拒否し、IPごとに1時間5回までのレート制限を行い、RFC 7807のエラーレスポンスを返すユーザー登録エンドポイントに対する失敗するテストを書く」と指示すれば、エージェントがアプリケーションコードを1行書く前に、振る舞いの契約を与えられます。テストは後付けではなく、仕様になります。

結合テストとエンドツーエンドのカバレッジ

ユニットテストは生成もごまかしも簡単です。実際のデータベースを起動し、実際のエンドポイントを叩き、実際HTTPレスポンスの形式を確認する結合テストは、偽造が困難です。3つの重要なユーザーフローに対してPlaywrightまたはCypressのテストを書くようエージェントに依頼し、CIで実行させましょう。90%のユニットテストカバレッジとゼロの結合テストを持つアプリよりも、エンドツーエンドのカバレッジが堅牢なVibe Codingアプリのほうが、本番運用にははるかに適しています。Martin Fowlerのテストピラミッドは依然として正しいメンタルモデルです。ユニットテストの生成が安いからといって、ピラミッドを逆転させてはいけません。

フェーズ3:AIエージェント支援によるセキュリティ強化

AIエージェントは人間の開発者と同じ割合で — もしかしたら少し高い頻度で — 安全でないコードを書きます。「安全」よりも「動く」を最適化するためです。朗報は、正しくプロンプトを出せば、エージェントはかなり徹底的なセキュリティレビューも実行できることです。悪い知らせは、自社の脅威モデルを理解する必要がある、文脈依存の脆弱性を見落とすことです。

エージェント支援によるセキュリティレビュー

機能構築後に専用のセキュリティレビューセッションを実行しましょう。関連ファイルをエージェントに読み込ませ、OWASP Top 10の問題を探すよう依頼します。SQLインジェクション、認証の不備、安全でない直接オブジェクト参照、レート制限の欠如、環境変数処理での秘密情報の露出などを見てもらいます。SQLを多用するアプリケーションでは、SQLFlashのようなツールが、クエリ内のパフォーマンスや構造上の問題も検出でき、それがセキュリティリスクの兆候になることもあります。無制限の結果セットを許す非効率なクエリは、多くの場合、インジェクションベクトルになり得ます。

シークレット管理と環境変数

エージェントは、許せば喜んでAPIキーをハードコードします。最初からルールを確立しましょう。すべてのシークレットは環境変数に入れ、エージェントはリテラルなシークレット値を書かない、そして.envファイルは初日から.gitignoreに含める。本番環境ではシークレットマネージャー(AWS Secrets Manager、Doppler、Infisical)を使用します。公開リポジトリにプッシュする前に、キーやトークンのような文字列リテラルがコードベースにないかエージェントに監査してもらいます。

依存関係の監査

AIエージェントは人気の-packagesに手を伸ばしがちですが、「人気」と「保守されている」は同義ではありません。CIパイプラインの一部としてnpm auditpip-auditを実行し、マージ前に重大度の高い問題をエージェントに修正させましょう。OWASP Top Tenは脆弱で古いコンポーネントを持続的なリスクとして特に指摘しています。チェックを自動化し、手作業の後回しにしないでください。

フェーズ4:CI/CD — 本番への道を自動化する

AIエージェントで構築するVibe Coding本番アプリは、他のコードベースと同じCI/CD規律を必要とします。違いは、適切な制約を与えれば、AIエージェントがパイプライン構成も生成できることです。

エージェントによるパイプラインの生成

リント、ユニットテスト、結合テスト、セキュリティ監査、ビルドをこの順で実行し、高速に失敗させるGitHub Actions(またはGitLab CI)ワークフローを書くようエージェントに依頼します。デプロイターゲット(Vercel、Railway、Fly.io、AWS ECS)を伝え、デプロイステップを生成させましょう。生成されたYAMLは注意深く確認してください。エージェントはアクションのバージョンを誤って生成したり、環境変数の注入を省略したりすることがあります。ただし、空っぽから始めるより生成されたパイプラインから始めるほうが速く、構造もおおむね妥当です。

環境のパリティ

「ローカルでは動くが本番で壊れる」という古典的な失敗パターンは、AI生成コードではさらに一般的です。エージェントはローカルのDockerセットアップとコールドスタートしたクラウドコンテナの違いを知りません。最初から環境パリティを確保しましょう。ローカルとCIで同じDockerイメージ、同じ環境変数名、同じシードデータスクリプトを使用します。エージェントがマイグレーションを書くなら、ロールバックも書かせるべきです。

フィーチャーフラグと段階的ロールアウト

Vibe Coding製の機能を直接100%のユーザーにリリースすることは、必ずしも取る必要のない賭けです。プロジェクトの早い段階でシンプルなフィーチャーフラグライブラリ(LaunchDarkly、Unleash、あるいはデータベーステーブルだけでも)を導入し、新機能はデフォルトでフラグの背後に配置するようエージェントに依頼しましょう。これにより、デプロイなしでキルスイッチが得られ、「エージェントが書いたもの」と「ユーザーが見るもの」の差分を明示的に制御できます。

各フェーズに適したAIエージェントの選択

すべてのエージェント型コーディングツールが開発ライフサイクル全体で同等というわけではありません。グリーンフィールドの生成に優れたものもあれば、コードレビューとリファクタリングに優れたものもあります。フェーズにツールを合わせることが重要です。

グリーンフィールドの生成

ゼロから動くプロトタイプを作るには、強いマルチファイルコンテキストとターミナルアクセスを持つツールが最高のパフォーマンスを発揮します。Open Vibeはこれ専用に作られており、コードの壁を一気に出力するのではなく、デプロイ可能なSaaSアプリをステップバイステップで構築する手助けをします。VS Code内で完結させたいチームには、スタックと規約をカバーする強力なシステムプロンプトを備えたCursorのエージェントモードが確実な選択肢です。

コードレビューとリファクタリング

動くコードが手に入ったら、別のプロンプト戦略が効果的です。「Xを作」ではなく、「このファイルを正確性、セキュリティ、保守性の観点からレビューし、具体的な変更案を示してください」を使います。エージェントは、レビュー対象のコードの著者本人でないほうが、レビュアーとして優秀です。可能であれば、レビューパスには別のモデルまたは新しいコンテキストウィンドウを使用してください。

ドキュメントとランブック

AIエージェントは、既存のコードからREADMEファイル、APIドキュメント、運用ランブックを生成するのが本当に優秀です。これは低リスクで高価値な作業です。リリース前に、すべての環境変数、すべてのAPIエンドポイント、すべての自明でないアーキテクチャ決定をドキュメント化してもらいます。未来の自分 — あるいは新しいチームメンバー — が気づくはずです。


AIエージェントにまだできないこと

「本番アプリのリリース作業のどれくらいをAIに委任できるか?」という問いへの正直な答えは:「たくさん、でも全部ではない」です。エージェントは自信を持ってミスをします。自社のユーザー、法的義務、ビジネスが暗黙の裡に交わしてきた契約を知りません。機能を構築する価値があるかどうか、データモデルがピボット後も生き残れるかどうか、プライバシーポリシーがコードの実際の動作をカバーしているかどうかを教えることはできません。

アーキテクチャの決定には人間の判断が必要

エージェントは、マイクロサービスが必要な場面で喜んでモノリスを設計し、逆もまた然りです。ドキュメントストアが適している場面でリレーショナルデータベースを選びます。学習データで特定のパターンが過剰に代表されているためです。エージェントが生成したアーキテクチャは最終決定ではなく、出発点の提案として扱いましょう。エージェントに実装を依頼する前に自分のデータモデルをスケッチし、生成された構造が自分のメンタルモデルと合わない場合は押し戻してください。

ヒューマンインザループは機能である

現在、最も信頼性の高いAI支援アプリをリリースしている開発者は、エージェントを最も信頼している人たちではなく、エージェントの出力を最も批判的にレビューしている人たちです。生成されたすべてのプルリクエストは本物のコードレビューに値します。すべてのマイグレーションは、本番データベースに触れる前に手動で読み返す価値があります。エージェントは高速です。結果を理解しているのはあなたです。

Vibe Codingは本物の生産性の掛け算であり、エンジニアリング規律の近道ではありません。これを使いこなしているチームは、AIエージェントを非常に速いジュニア開発者として扱っているチームです。有能で、エネルギッシュで、コンテキストを設定し、作業をレビューし、判断が必要な判断を下すシニアエンジニアを必要としています。この関係をうまく築けば、2年前には不可能だった速度で本物の本番品質ソフトウェアをリリースできます。

You might also like

関連記事