Product principles for AI tools - strategic insights
Apply strategic product principles from dissecting Bolt to building your own AI features
Aman Khan distills the strategic insights from dissecting Bolt into product principles that any AI PM can apply.“This thing is just generating text and running the code.” Bolt and Lovable have a great insight: to generate prototypes, all you need is text, code, and an environment to execute it. That’s a full-stack coding agent in a box. “And so that’s also why you see multiple tools in the space popping up like this.”The architecture breaks down into core components: system prompt with few-shot examples, reasoning to generate context, implicit tool calling (the container environment running terminal commands), RAG for memory and context, and an LLM generating executable code at speed.The next evolution involves explicit function calling - a more advanced form of tool calling. While Bolt uses implicit tools defined in prompts, function calling means actual external tools the agent can call. Model Context Protocol (MCP) enables this - wrapping APIs or services as tools for agents to use. Cursor exemplifies this approach with agents accessing your codebase and internet search APIs.But explicit function calling introduces complexity and risk. Opening up to external services means things can break in elaborate ways that could expose customer data. The creators of these tools realized they didn’t need that in the first pass.Two opportunities stand out: evals and function calling. With these additions, “you improve things like reliability, you can actually improve the end state of the user’s experience. So it actually works more lively and isn’t just a UI tool.”Evals become critical as AI products mature. Want to change your system prompt? How do you know you’re not breaking something downstream? Need to shorten reasoning tokens? Have explicit tool calling? Evals run test cases to verify everything still works.“If you’re building a tool that’s using AI in it, this is where evals fit in. If you want to change any of these components you better have a good way to test that you’re not breaking something downstream, or that your engineering team has a way to check.”➡️ Start with Bolt’s insight: prototypes need only text, code, and execution environment. Add function calling when you need external data. Build evals before changing components. The simplest architecture that works is often the most powerful.Check out Aman’s course (not sponsored, he’s just awesome).