Wasp 框架团队分享整合 GPT 自动生成 React+Node.js 应用的工程化方法,展示 AI 代码生成规模化落地的实践。
我们在开发 Wasp——一个基于 React、Node.js 和 Prisma 的全栈 web 框架。自从 GPT 面世以来,我们思考是否可以用它来进一步加快 web 应用的开发。这让我们创建了 MAGE——一个 GPT 驱动的 web 应用生成器,它可以根据简短的描述生成完整的全栈代码库。
我们之前已经发表过文章介绍 MAGE 的功能(及其局限),以及它的工作原理。这篇文章讲的是它的起源和采用情况——我们为什么决定构建它、开发者如何发现它,以及他们实际上用它做什么。
我们进入 GPT 编码 agent 这个领域相当晚。Smol AI、GPT Engineer 和 MetaGPT 等工具已经获得了大量关注,早于我们开始思考创建自己的 agent。我们对此十分清楚。
那么为什么还要费力呢?问题在于,这些 agent 都不是专门为构建 web 应用而设计的,而那正是我们看到的机会所在。
虽然使用 GPT agent 进行编码可能感觉非常强大,但它们往往很慢,容易偏离主题,需要很多次迭代,最终使过程相当繁琐和昂贵。
有了这样的体验,我们想到:"如果我们创建一个只针对特定技术栈的 web 应用、高度专业化的编码 agent,会怎样?速度快多少、成本低多少?"
虽然我们对此很感兴趣,但作为一个小团队要处理多个优先事项,我们仍然持相当怀疑的态度,甚至差点放弃整个项目。结果证明,它的表现比我们预期的还要好。
在决定 MAGE(Magic App GEnerator 的缩写)的 v0 版本应该是什么样子时,我们考虑了多个方案。第一个、也是最直接的方案是将其整合到 Wasp CLI 中,因为我们已经有了所有相关的工具。这样的话,开发者可以运行 wasp new myProject -ai 而不是 wasp new myProject,CLI 会要求他们输入应用描述和其他必要信息,然后在终端中完成所有工作。
另一方面,我们知道在开始描述你的应用之前下载并安装 Wasp 是一个很大的要求。加之 CLI 的用户界面功能相当有限。这就是为什么我们最终选择了 web 界面——零门槛上手,我们可以让应用创建流程简单明了、外观精美。
构建它花了好几周时间,最终结果是一个完全开源的 web 应用,用 Wasp 构建,可以在 https://usemage.ai/ 免费使用,或者本地托管以获得更多控制和灵活性(例如,使用你自己的 OpenAI API 密钥)。
如上所述,我们的主要策略是创建一个专门用于构建全栈 web 应用、仅此而已的编码 agent,这个决策获得了成效。它使我们能够预先为 agent 提供更多的上下文和结构,并引入专门的启发式方法来修复错误。此外,由于 Wasp 的高级抽象(例如身份验证、项目结构、queries & actions 系统……),我们大大减少了错误的可能性。
另一个结果是执行时间大幅缩短,也许更重要的是,成本也随之下降。一个典型的 MAGE 生成的 web 应用成本在 $0.10 - $0.20 之间,而通用编码 agent 生成相同的应用可能花费高达 $10(所有价格都是在 2023 年 11 月 7 日 OpenAI 宣布价格更新之前的)。
你可以在这里了解更多关于 Wasp 内部工作原理的信息,以及它与其他编码 agent 的比较。
构建产品是一回事,传播它、让人们使用它是完全另一回事。在我们构建了 MAGE 并在团队内进行了测试后,下一步是什么?我们如何才能真正接触到开发者并开始收集反馈?
由于我们已经有了一个拥有约 1,000 名成员的 Wasp 社区,我们在 Launch Week #3 期间将 MAGE 作为一部分发布。这是一个很好的试验场,我们可以看到第一批应用被创建出来。尽管如此,还有更多的开发者可能会受益于一个更简单的方式来启动他们的 React 和 Node.js 项目,但他们没有办法了解到 MAGE。
这就是为什么我们在社区内部启动后,决定在 Product Hunt 上推出 MAGE。虽然 Product Hunt 不是一个专门的开发工具平台,吸引了来自非常多样背景的人群,但其中仍然有很多开发者,而且我们之前在其上的体验相当不错。Product Hunt 对于为 Wasp 获得首批用户和在 GitHub 上获得 1,000 个 star 起到了至关重要的作用,所以我们想再试一次。
有些人在启动准备中投入了大量努力,提前几个月做准备,但我们没有那么多时间,只是想尽快推出。我们请朋友和社区成员在 Product Hunt 上查看 MAGE 并在启动当天支持我们,我们最终进入了当天前十款产品,后来成为本周第二大开发者工具!
这正是我们的目标,因为前十款产品会在次日收录到一份时讯中,这份时讯的阅读者超过 100 万。很快,我们看到创建的应用数量显著增加,新人开始加入我们的 Discord 社区!
在 Product Hunt 启动后,我们放松了营销工作,因为其他与 Wasp 相关的任务占据了团队的时间。我们需要为即将到来的 Launch Week #4 做准备,所以 MAGE 被搁置到了后台。我们也想看看社区如何接受它,然后再决定是否投入更多资源。
我们发布了一些后续文章,如"它如何工作"和"MAGE vs. 通用编码 agent",这些获得了一般程度的关注,但没有引发爆炸性增长。我们在 Reddit 和 Hackernews 上的成效也很小,感觉社区已经对所有 AI 相关内容感到厌倦了。
尽管如此,用 MAGE 创建的应用数量一直在稳定增长(约 200 个应用/天),偶尔会有小规模的爆发。我们无法真正追踪用户来自哪里——似乎 MAGE 是通过闭合社区和时讯中的口碑传播的。
在 Launch Week #4 结束后,我们意识到在将近 2 个月的时间里,MAGE 在我们方面付出极少努力的情况下持续增长。这表明它有真正的价值,我们决定进一步投资它。
我们决定尝试与这个领域的影响者合作。我们不想简单地付费做广告,但想与某个真正对我们的构建感兴趣、希望客观评测 MAGE 的人合作。我们在 Matthew Berman 身上找到了这个人,他涵盖了从最新模型到 LLM 领域工具的所有内容,他认为 MAGE 非常适合他的观众。
视频在几周内制作完成,发布后迅速获得了约 25,000 次观看。许多观众对通过 web 界面用单个 prompt 获得完整栈代码库的可能性感到兴奋,我们看到了使用量的另一次激增和更多开发者尝试它。
大约一周后,我们看到创建的应用数量又出现了大幅增加,但无法找出来源。我们进行了一些搜索,发现 TikTok 上的一位开发者 @techfren 发布了一个关于它的短视频(MAGE 甚至在那个视频中出现了故障!),一天内就获得了 200,000 次观看,迅速走红。今天,它已经有接近 100 万次观看。
虽然 25,000 个创建的应用听起来令人印象深刻,但最好退一步进行更进一步的分析。
与大多数 AI 驱动的编码工具一样,无论是想要构建产品的开发者还是非开发者,这个领域都存在大量的兴趣和好奇心。许多人甚至没有特定的项目想要构建,但他们急于尝试并看看它的工作原理。同时,由于 LLM 具有非确定性,目前还没有工具能完美工作,经常会引入需要手动干预和编码知识才能修复的轻微错误。
虽然我们对此以及 GPT 驱动的工具面临的其他挑战非常明确,MAGE 仍然吸引了一部分对构建产品感到兴奋、但编码能力不足、需要帮助下载、运行和修复应用的用户。另一方面,这是一个非常友好和易于接近的方式来涉足 web 开发和编码。我们不反对非编码人员尝试它,但会尽量透明地管理预期。
因此,大约 40% 的所有创建的应用都被下载到本地运行。
我们用 MAGE 进行的实验取得了成功,甚至比我们最初预期的还要成功。除了许多现有的通用编码 agent,高度专业化和结构化的方法可以以分数的成本产生更好和更一致的结果。
此外,开发者对一种简单的启动全栈应用的方式感到兴奋,包括最佳实践,他们在主动搜索这样的解决方案并在彼此之间分享。
我期望 AI 辅助的 SaaS 启动器成为 web 开发的未来。如果能够用已经针对应用定制的数据模型和 CRUD 逻辑来搭建应用,为什么还要使用通用的样板启动器呢?另一个问题是谁以及确切地如何实现这个,但我期望未来每个主流框架都会有一个。
我希望这个概览对你有帮助,并且能够揭示当创建和营销一个新的(AI 驱动的)开发者工具时,幕后是什么样子。请记住这是我们的特殊体验,每个故事都不同,所以对一切都持保留态度,只选择对你和你的产品有意义的东西。
祝你好运,如果你有任何问题或想要了解 MAGE 和 Wasp 开发的最新进展,欢迎加入我们的 Discord!