Contains some AI-generated content

How we made v0 an effective coding agent vercel.com

Max Leiter on the three parts of v0’s pipeline that did most for reliability. The metric Vercel optimises for is the share of generations that produce a working site in the preview rather than an error or a blank screen, and Leiter says code from an LLM running on its own can have errors as often as 10% of the time. Catching and repairing those during streaming is worth a double-digit increase in success rates.

The three parts are a dynamic system prompt, a streaming layer they call LLM Suspense, and a set of autofixers. The system prompt injects knowledge about the current AI SDK version when the model’s training data would otherwise be stale, which they prefer to web search because a small model summarising search results turns into a game of telephone. LLM Suspense rewrites text as it streams, so the user never sees a wrong intermediate state: swapping long blob URLs for short ones to save tokens, and fixing hallucinated lucide-react icon names by embedding every real icon name in a vector database and substituting the nearest match, in under 100 milliseconds and with no extra model call. The autofixers run after streaming for problems that need the AST or span several files, and complete in under 250 milliseconds.

The line worth keeping is your product’s moat cannot be your system prompt, followed immediately by the concession that the system prompt is still the most powerful lever for steering a model. Usual caveat: this is Vercel describing why its own product works well, and the success-rate improvement is given as a range rather than a measured number. Related, from the other end of the same company, is Guillermo Rauch on splitting models from agents.

← All links