the gap between an agent demo and an agent in production is about 400 lines of error handling that nobody wants to write. retry logic, input sanitization, timeout management, graceful degradation when the model returns garbage. the demo skips all of it because the demo never runs twice.