短い答え
v0は各チャットが新しいセッションであるため、あなたのコンポーネントコンテキストを忘れます — 以前に構築したコンポーネント、そのプロップ、バリアント、使用パターンは、新しいチャットに再ペーストするか、レジストリに接続しない限り読み込まれません。修正方法は、あなたのコンポーネントインベントリを持続的な記憶層に保存することです。
なぜv0はコンポーネントコンテキストを忘れるのか
v0のチャットモデルが忘却の原因です。各生成は独自のスレッド内に存在し、1つのスレッドで構築されたコンポーネントは、グローバルな記憶の一部ではありません。
1. 独立した生成セッション。 Vercelは各セッションが独立していることを文書化しています。昨日あなたのDataTableを構築したモデルは、関連するコードが現在のチャットにない限り、今日それを思い出すことはできません。
2. レジストリはチャットごとにオプトイン。 shadcnレジストリパターンは、コンポーネントをv0にコンテキストとしてプッシュすることを可能にしますが、毎回レジストリを接続し、新しいコンポーネントが出荷されるたびに更新する必要があります。v0自体で構築したコンポーネントは、自動的にレジストリに戻ることはありません。
3. チャットコンテキストの制限。 v0のチャットにはトークンの上限があります。大きなコンポーネントライブラリをチャットに読み込むと、新しい生成のためのウィンドウが狭まり、会話が進むにつれて古いコンポーネントが作業記憶から消えます。
結果:v0は現在のチャットに何があるかを知っています。先週あなたが構築したものは知りません。
v0がコンポーネントコンテキストを忘れたときに失うもの
コンポーネントのドリフトは、この問題の最も目に見えるバージョンです:
- 重複コンポーネント。 v0はTable v2を生成し、次にTable v3、次にTable v4を生成しますが、それぞれが前のものとは微妙に異なります。コードベースはほぼクローンで満たされます。
- プロップのドリフト。 同じ概念のコンポーネントが異なるプロップ名(ここでは
onRowClick、そこではonSelect)を持つことになり、再利用がリファクタリングになります。 - 動作の後退。 最初のバージョンで解決したエッジケース — 空の状態、読み込み状態、キーボードナビゲーション — は、v0が最初のものを見えないため、2回目には消えてしまいます。
v0を主なビルドサーフェスとして使用する非開発者にとって、これはプロジェクトが製品のように感じなくなり、デモのフォルダのように感じ始める瞬間です。
v0の組み込みの回避策
Vercelは適切なプリミティブを出荷しました。まだ記憶層にはなりません。
プロジェクト。 プロジェクト内でチャットをグループ化することで、関連する作業を一緒に保ち、いくつかのコンテキストを共有します。しかし、モデルにあなたが構築したすべてのコンポーネントの持続的なインデックスを提供するわけではありません。
レジストリ接続。 shadcnレジストリを接続することで、あなたのコンポーネントライブラリをチャットごとにv0のコンテキストにプッシュします。自分のリポジトリで維持しているコンポーネントには強力ですが、v0自体が生成したコンポーネントには弱く、まだレジストリに折り返していないものです。
手動ペースト。 既存のコンポーネントを新しいチャットにコピーし、v0に拡張を依頼できます。これは1つのコンポーネントに対して機能し、インベントリが数十を超えると崩壊します。
Vercelのデザインシステムガイダンスは、v0ドキュメントにあります。これはギャップについて正直です:レジストリはコンポーネントの共有を解決しますが、コンポーネントの記憶を解決するものではありません。
v0の組み込みの記憶が不足している点
コンポーネントコンテキストは単なるコードではありません。それはコンポーネントのプロップの背後にある理由、元のバージョンが処理したエッジケース、カードをリストより選択するためのデザインの根拠です。コードがレジストリにある場合でも、その背後にある理由はv0が再び見ることのないチャットにあります。
クロスツール作業はギャップを悪化させます。v0からBoltにデータを接続するために移動したり、Cursorにリファクタリングするために移動したりすると、コンポーネントコンテキストは空白になります。
MemoryLakeがv0のコンポーネントコンテキストの忘却を修正する方法
MemoryLakeは、あなたのコンポーネントインベントリに持続的なホームを提供し、すべてのチャットとすべてのツールが読み取ることができます。
- 構造化された記憶としてのコンポーネントレコード。 各コンポーネント(目的、プロップ、バリアント、使用ルール、処理されたエッジケース)は、Memoriesタブの名前付きエントリとして存在します。v0はブリーフィングを読み込むたびに全インベントリを確認します。
- ドキュメントドライブ内のソースコード。 コンポーネントファイルとストーリーブックエントリをドキュメントドライブを通じてドロップします。取得エンジンは、関連する画面を要求したときにのみ関連するコンポーネントを返します。
- ツール間で同じインベントリ。 v0からBolt、Cursor、Lovable、Claudeにジャンプすると、同じコンポーネント記憶が続くため、再生成するのではなく再利用できます。
MemoryLakeはLoCoMoの長文コンテキストベンチマークで94.03%を記録し、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を実現しました。
MemoryLakeをv0に接続する3つのステップ
- プロジェクトを作成し、コンポーネントインベントリを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、プロジェクトを作成をクリックし、"v0 — コンポーネントインベントリ"と名付けます。既存のコンポーネントソースファイル、ストーリーブックエントリ、使用ドキュメントをドキュメントドライブを通じてアップロードします。目的、プロップ、および保存する価値のあるエッジケースを説明する各コンポーネントごとにMemoriesエントリを追加します。
- MCPサーバーエンドポイントを生成する。 MCPサーバータブを開き、MCPサーバーを追加をクリックし、"v0コンポーネント"と名付け、生成をクリックします。Bearerトークンをすぐにコピーします — 一度だけ表示されます。
- v0に接続する。 v0はまだMCPを話せないので、MemoryLakeのREST APIを使用してBearerトークンで関連するコンポーネントブリーフィングを各新しいv0チャットの前に取得し、それをオープニングメッセージとしてペーストします。実際のコードのためにshadcnレジストリと組み合わせてください。MemoryLakeは欠けている理由と広範なインベントリを追加します。