产品背后:Replit | Amjad Masad(联合创始人兼首席执行官)

Amjad Masad 2024-11-21

产品背后:Replit | Amjad Masad(联合创始人兼首席执行官)


访谈记录

Amjad Masad: Replit 背后的理念是,如今开发软件非常困难。我们想让这件事变得更容易。人们基本上把它看作是口袋里的开发者。我们在全球拥有 3400 万用户,世界各地都有人在 Replit 上学习编程、创办公司、构建个人软件和个人工具。

Lenny Rachitsky: 对于构建产品的人来说,比如产品经理、创始人,你认为哪些技能会变得更加重要,哪些会变得不那么重要?

Amjad Masad: 通常情况下,你的瓶颈在于很多想法无法落地,因为它们需要被构建出来,而且需要快速构建出来。现在,这个瓶颈被打开了。所以实际上,构建东西变得容易了很多。真正限制你的,变成了你产生想法的速度。

Lenny Rachitsky: 我觉得人们还没有意识到事情已经发展到了什么程度。

Amjad Masad: 我可以想象五年之后,有人经营着一家十亿美元的公司,却没有任何员工——客服由 AI 处理,开发由 AI 处理,而你只是在构建和创造这个东西。

Lenny Rachitsky: 天哪,未来太疯狂了。今天的嘉宾是 Amjad Masad。Amjad 是 Replit 的联合创始人,Replit 是一个基于 AI 的软件开发与部署平台,用于构建和发布软件。它是全球增长最快的开发者社区和 AI 产品之一。如今有很多关于 AI 如何改变产品构建方式、产品团队将如何运作、哪些职能会随时间越来越或越来越不重要的讨论。但我觉得,很少有人真正见过现代 AI 工具能做到什么,也很少有人完全理解现在和未来,即使技术能力很弱,也能完成多少事情。所以我打算在这档播客中做一个尝试,推出一系列”产品背后”专题,深入探讨产品构建者应该了解、可能也应该开始上手尝试的重要产品。

在我们的对话中,Amjad 会演示 Replit 目前能做什么,绝对会让你大开眼界。然后我们用了大部分时间讨论这一切对产品开发未来、产品管理未来,以及创业公司和创始人未来的影响。这是一个非常令人兴奋的时代。同时对很多人来说,这也是一个非常令人恐惧和不安的时代。我的想法是,你越了解今天已经可能做到的事情以及未来的走向,就越能在这样一个飞速到来、疯狂而不可预测的未来中站稳脚跟。如果你喜欢这档播客,别忘了在你最喜欢的播客应用或 YouTube 上订阅和关注。这是避免错过后续节目的最好方式,也对播客帮助极大。好了,有请 Amjad Masad。Amjad,非常感谢你来参加节目,欢迎来到播客。

Amjad Masad: 我的荣幸。

Replit 是什么

Lenny Rachitsky: 我觉得最好先请你介绍一下,Replit 是什么?愿景是什么?它要走向哪里?它为人们解决什么问题?

Amjad Masad: Replit 背后的理念是,如今开发软件非常困难,我们想让它变得更容易。困难的原因之一是整个流程非常碎片化——你需要下载所谓的 IDE,本质上就是一个代码编辑器。你需要下载运行时环境,也就是 Python 或 JavaScript 之类的东西。你还需要搞清楚包管理器,来配置你的开源包。做完这一切之后,你还得搞清楚如何部署、如何分享。整个过程非常艰难,这也是人们卡住、始终学不会编程的原因之一——感觉就像是一个繁琐的 IT 流程。

所以 Replit 的愿景一直以来就是:做软件是有趣的,是件好事,应该有更多人参与。但要更多人参与,就得让它变得更简单,让一切集中在一个地方,让它更容易上手、更容易学习。这就是我们今天的产品。我认为它是互联网上最易用的 IDE/开发环境/部署环境之一,我觉得我们让没有任何编程经验的人也能轻松上手,尤其是在我们新推出的 AI 产品加持下。

[广告段落已跳过]

Replit 的规模

Lenny Rachitsky: Replit 现在的规模如何?发展到多大了?有多少人在使用?

Amjad Masad: 我们在全球拥有 3400 万用户,业务遍布全球各地。世界各地都有人在 Replit 上学习编程、创办公司、构建个人软件、个人工具或公司的内部工具。最近,我们开始向企业市场拓展。我们在七月份发布了面向企业的 B2B 套餐,增长非常快。看到人们把 Replit 带到工作场景中,真的很有意思。


Lenny Rachitsky: 哇,我知道它很受欢迎,但没想到规模已经这么大了。我在准备这期播客的时候,看到一条疯传的推文。是一个叫 Jevin 的人发的,我其实认识他,认识这个来自加拿大的人,他很棒。他发推说他 11 岁的女儿用 Replit 做了一个应用。她就是有了一个想法,然后就把它做出来了。最精彩的是评论区有人回复说,“你得上线一个应用,得找个地方托管,得搭建数据库,得部署,这些不可能一步到位。“然后他说,“不,Replit 做的就是这些。”

Amjad Masad: 对,这就是我们做的事情。那位评论者说的每一点都没错。但一个 11 岁孩子能做出应用,真正令人惊讶的其实不在于编程本身,而是编程之外那些乱七八糟的东西,而我们把这些全部抽象掉了。

Lenny Rachitsky: 我太有同感了,我当年做工程师的时候就被这些折腾过。

Amjad Masad: 哦,你做过工程师?这我还真不知道。

Lenny Rachitsky: 是的,我做了 10 年工程师,后来做了工程经理,再后来跳到了产品方向。

Amjad Masad: 哇。

竞争格局与产品定位

Lenny Rachitsky: 我很高兴做了这个转变,不过确实会想念那段时光。我算不上什么出色的工程师,只能算一个够格的创业公司工程师,所以 Replit 这种工具正是我会去用的东西。接下来我们会进入一个演示环节,看看它实际是什么样子。不过在开始之前,我想先聊聊——市面上还有其他一些大家熟知的构建工具。为了更清晰地说明 Replit 的定位和它与其他工具的不同,你可能听过 Cursor,最近经常被提到,请简单谈谈竞争格局,还有哪些其他工具在帮助人们构建产品。

Amjad Masad: 我们再回到之前说的端到端软件开发平台的理念。从写代码一直到部署、变现,覆盖整个流程。在软件开发生命周期的每个环节,都有很多不同的工具。比如 Cursor,它是 VS Code 的一个分支,内置了非常出色的 AI 工具,但它本质上是一个编辑器。你仍然需要运行时环境,仍然需要部署环境。实际上,有不少用户同时使用 Cursor 和 Replit,因为 Replit 简化了运行时和部署环境。

在整个软件开发生命周期的不同阶段,有各种各样的 AI 产品,但 Replit 真正的区别在于我们覆盖了全部环节。不过这也使得某些用户群体更难采纳。如果你在一家大公司,引入一个新的编辑器开始写代码很容易,但要引入一个从代码运行方式到部署方式都有一套自己主张的平台,就很难了。但这是我们愿意做的权衡——我们可能不会进入企业主流的软件开发流程,但我们希望赋能每一个人去构建软件,包括产品经理、设计师。我们有运营人员、销售运营、HR 运营在使用 Replit,甚至律师也在用。所以它是在真正民主化软件工程这件事。

产品演示

Lenny Rachitsky: 太棒了,这正是你今天来到这里的原因。我们来做个演示吧。在你准备的时候——你会共享屏幕,展示这个产品能做什么。我之所以对做演示感到兴奋,是因为这是一种新的播客形式尝试,我们会深入探讨具体的产品和它们的能力。我觉得关于 AI 的讨论实在太多了,大家一直在读”AI 能做这个、AI 能做那个”,但真正见过这些东西实际操作的人并不多,尤其是最前沿的那些。我觉得很多人没有意识到技术已经走了多远,实际能做的事情有多少,尤其是当使用者真正懂这个产品的时候。所以我很兴奋能向大家展示实际能做到什么,而且这会直接影响产品管理和产品团队的未来。交给你了,请开始演示。

Amjad Masad: 好的。这是 Replit 的主页。你可以创建一个叫 Repl 的东西,就是一个项目。我们支持各种编程语言,多达数百种。但最近,也是 Replit 变得比以前好用一千倍的原因,就是你只需描述你想做什么。你进入这个主页,有一个文本框,你可以写类似”给我做一个很酷的应用”之类的,但提示词写得越详细越好。

我请了我们 Replit 的产品经理 Aman Mathur,他是这个播客的粉丝,让他告诉我产品经理们喜欢构建什么。他真的精心构思了一个很好的提示词。我现在把它放进来。基本上,我们要构建的是一个 Web 应用。你可以指定想用的技术栈,也可以让 AI 自己决定。这里我们指定用 Node.js 来构建,面向产品经理,用于在公开仪表盘上追踪功能需求。比如说,我有一个产品正在增长,有一个社区,我希望社区能参与产品的构建过程,让他们提交功能需求、投票,而我能够管理这些。所以这里涉及的功能包括投票系统和功能需求管理。

Lenny Rachitsky: 读几条提示词里的内容吧,让没有在 YouTube 上看视频的听众也能了解你输入了什么。

Amjad Masad: 比如功能需求提交,允许用户添加功能需求;投票系统,让用户对这些功能需求进行投票;还有状态追踪,类似于高级风格看板,有”已规划”、“进行中”等列,这样管理员就可以和社区分享正在构建什么。我们希望它是用户友好的设计,做得现代一些,这些常规的提示词要求。然后是面向产品经理的管理控制台,作为产品经理,我希望能够真正管理好这个社区。

Lenny Rachitsky: 我很喜欢它还能构建内部工具,不只是前端界面。

Amjad Masad: 是的,没错。好的,那我们开始构建。因为这是一个比较大的提示词,初始编码可能需要一些时间。使用 Replit Agent 有不同的风格。我经常用极简提示词,这也是我写代码的方式——脑子里有个大致想法,然后不断迭代。另一些人,比如产品经理,喜欢写详细的产品需求文档,两种方式都可以。AI 现在已经回复了,说”我会为你构建所有这些内容。我会先搭建初始原型,你告诉我感觉如何,然后我们再在此基础上改进。“AI 还建议添加评论线程、实现邮件通知等功能,我可以选择这些。它在发挥创造力,告诉我还可以构建什么,但现在我先走原型路线,然后我们再评估。


原型构建过程

Amjad Masad: 如你所见,原型开始搭建了,你可以看到这个进度面板,我们可以在这里观看 AI 做它的事情。它创建了一个 Postgres 数据库。显然,当我们构建全栈应用时,你需要能够保存数据。这是 Replit 很酷的一点——我们拥有所有这些服务:存储、数据库。现在它在编码,在构建数据库 schema。现在在构建首页,观看它构建的过程其实相当有趣也很有教育意义,因为你真的可以开始学习如何构建 Web 应用的结构。如果它遇到了问题,随着事情变得复杂,它可能会碰到问题,而你希望能够帮忙调试之类的,那了解正在发生什么是很有帮助的,但这并不是必须的。我认为很多人根本不关心代码,但仍然能构建出东西。不过我们想让整个过程透明化,想向人们展示 Agent 正在做的每一件事。

Lenny Rachitsky: 这种体验基本上就像你坐在一位工程师的电脑后面,看他们写代码。

Amjad Masad: 是的,实际上我们的构建方式是把它做成一个多人协作系统。Replit 有实时的、我们称之为 multiplayer coding 的功能,我们复用了这个多人系统来构建 Agent。所以 Agent 在代码层面被组织为平台的另一个用户。基本上,我们在一起协作编码。我可以进入这里的文件,这也是 Replit 真正很酷的地方。我想大家对一些更偏聊天界面的产品比较熟悉,比如 v0 等等,那些纯粹是聊天形式,但这里是一个完整的 IDE,你可以进去查看文件、自己编辑,或者请 AI 给出解释。

Agent 的能力边界

Lenny Rachitsky: 目前这东西做不了什么?有哪些是做不到的?假设你完全没有任何编程经验,有哪些类型的产品你还无法用这样的工具构建,但在未来可能做到?它现在能带你走多远?

Amjad Masad: 你可以构建 MVP。我觉得你甚至可以开始获取一些初始用户。但当你开始对产品进行较大迭代时,可能会遇到问题。比如,它在数据库迁移方面不太擅长,我们正在努力修复这个问题。所以当你迭代产品时,很多时候你实际上在改变应用的结构,这就需要数据库迁移。而现在它可能会以一种产生不可恢复错误的方式修改数据库。到了那个阶段,你可能就会卡住,尤其是如果你不会写代码的话。有些人会通过去 ChatGPT 和 Claude 提问来想办法解决,我实际上对我们一些用户的坚持不懈感到很受鼓舞,真的很了不起。但我觉得你能通过 MVP 阶段——一个能正常运行的产品——但当你需要改变和迭代它的时候,现在还是有些吃力。不过我预计未来几个月我们会持续改进。你可以这么想——我们也在边建边造,我们在不断开发 Agent,让它在我们用户构建应用的同时持续变得更好。

Lenny Rachitsky: 明白了。所以我听到的是,它非常擅长构建第一个版本,帮你做到甚至可以让人们使用的程度。但在那之后用 AI 帮你把产品变得越来越好、不断迭代,这方面还没有那么出色。

Amjad Masad: 是的。

Lenny Rachitsky: 但如果你会写代码,你可以接手继续推进,对吧?

Amjad Masad: 是的,或者你可以雇人。我们网站上有一个叫 Bounties 的功能,你可以雇佣人类程序员来帮你完成收尾工作。

Lenny Rachitsky: 这就是留给人类的工作了。这个还会持续一段时间。

Amjad Masad: 你知道我们想做什么吗?我们想做到这样一个程度——Agent 遇到问题时可以去找一个人来帮忙。我觉得那会很酷。

Lenny Rachitsky: 天哪,一切都反过来了。我喜欢这个。哦,我觉得它可能完成了。看看这个。

原型完成与测试

Amjad Masad: 是的。现在 Agent 在问我们,应用是否正在运行并显示了首页?

Lenny Rachitsky: 就像在确认一样。

Amjad Masad: 对,几乎是在让我们做 QA。我就说好的。然后它发现了一个错误。这里有个错误,它说有个无关紧要的警告,“我来修一下”。与此同时,在它修复的时候,它可以是主动的,对吧?因为它会查看所有的错误之类的东西,但与此同时我们可以继续使用。我刚创建了一个账号。它在编码。

Lenny Rachitsky: 真酷。

Amjad Masad: 看看它怎么重启的。好,我们等它一下。

Lenny Rachitsky: 你觉得一个工程师构建这个需要多长时间?一个典型的工程师?

Amjad Masad: 我觉得几天到一周吧。如果你真的很厉害,可能几个小时就行,但对我来说大概需要几天。我算是个还不错的工程师,大概要几天。

Lenny Rachitsky: 而这花了多少?5 到 10 分钟。

Amjad Masad: 是的,而且大概还花了一些计算资源的费用。

Lenny Rachitsky: 哇,在计算方面。

Amjad Masad: 在计算方面,是的。我估计大概 15 美分左右吧。

Lenny Rachitsky: 哇。好的,那它来了。

Amjad Masad: 来了。Agent 说,“好的,看起来不错,完成了,如果你想部署的话可以部署。“但我说,“好的,我先测试一下。”

Lenny Rachitsky: 那目前它只是运行在你的本地主机上。

Amjad Masad: 对。不是本地主机,是在 Replit 上,但没错,相当于本地主机的概念。因为真的很方便,我甚至可以邀请你加入这个会话,你可以和我一起在这里,全部都是在线的。

Lenny Rachitsky: 明白了。

Amjad Masad: 让我们提交一个功能请求。让产品更好看一点。这是典型用户可能会说的话。这里有这个功能,你可以投票。我想我没法投票,因为我是创建这个功能的用户,但我用另一个用户创建了,你可以投票。但现在我们需要能够以管理员身份移动这些东西,所以我不知道怎么登录管理面板。我去问问 Agent,怎么登录管理面板?它可能已经构建了这个功能,只是没有以正确的方式暴露出来。它能够——

Lenny Rachitsky: 我很喜欢看你和这个东西交互的过程,简单说一下,整个过程感觉就像一位工程师在幕后通过 Slack 构建这个东西,你只是在和他们对话。他们构建好了说,“看看这个,我做完了。“你说,“好的,那我怎么登录这个管理面板?“然后他们说,“好的,来吧。”

Amjad Masad: 是的。它说,“你希望我帮你注册账号吗?“所以它在帮我创建一个管理员账号。它不仅会构建东西,还会维护东西。在这个例子中,它实际上在执行 SQL 查询,它不是在写代码来给我们创建管理员账号。

意义与展望

Lenny Rachitsky: 太疯狂了。我想谈谈这对产品开发、产品管理和创始人的影响,但我们刚才亲眼目睹的是——一个人,我知道你有技术能力,但一个完全不需要任何技术技能的人,在五分钟内构建了一个真实可用的产品,看起来不错,功能正常,而且你可以通过和这个 Agent 对话让它变得越来越好。

Amjad Masad: 我从我们的经验来谈谈我们观察到的情况。现在有非常多的产品在赋能开发者。计算逻辑很简单——“我们要让工程师的效率提升 20%,然后把它卖给企业,从中抽取 10% 的价值”,对吧?这就是为什么现在有这么多创业公司都在试图让工程师稍微好一点点。我们的计算方式则是——如果你能让每个人都成为开发者呢?那会是什么样子?所以当我们发布 Agent、真正让编程变得简单很多之后,我们看到人们,正如你刚才说的,把它当作口袋里的开发者。我们从客户那里听到的是:“我在做的事情,原本需要去雇一个开发者才能做。“而且因为启动的门槛比去雇开发者低得多——不管是通过 Upwork 还是其他途径——我正在构建更多原本不会去构建的想法。

我觉得这叫什么 javelin 的悖论之类的,就是说当某样东西的成本下降时,它的总消费量反而上升。我不确定为什么叫悖论,但比如电的成本下降了,你可能会预期总支出会下降,但实际上总支出是上升的,因为人们消费了更多的电。我认为软件也会是这样的情况。随着成本下降,人们会制作更多的软件来改善生活、改善工作、创立更多的公司,诸如此类。

Lenny Rachitsky: 顺着这个思路,你在创业公司甚至大公司内部看到了什么?在知道目前的水平已经是最低的、它只会变得更聪明更好的情况下,人们现在已经在怎样使用它?那些产品经理,或者创业公司和大公司里的非技术人员,他们实际上是怎么用的?

Amjad Masad: 在中小企业方面,很多人在构建后台办公工具。比如我们有房产经纪人,他们有大量数据,有很多业务管理方面的需求,他们在构建大量这样的工具——这些工具原本他们需要去购买,但通常买来的东西并不完全符合你的需求。这其实也是 SaaS 的问题——一刀切的模式。所以很多人把它看作是一种 SaaS 的替代方案,用来构建内部工具之类的东西。然后到了大公司层面,从原型设计到实际的生产应用、到工具都有。我们见过产品经理构建应用的 v1,然后真正拿出去给用户测试。我不能说出公司名字,但有一家上市公司用 Replit 来测试一个应用的 v1。显然,等那个东西跑通之后,他们把它交给工程师,说:“好,我们做了这个东西,觉得很好,已经在一些用户那里测试过了。让我们把它放进路线图,把它构建到实际产品中去。“所以你实际上是在让产品经理不再需要工程师才能构建任何想做的的东西——他们可以真正地自己构建产品的 v0 或 v1。

这对他们来说是非常赋能的事情。我们还看到营销部门也在用。比如 SpotHero 有一位营销负责人,他本身代码写得还不错,但使用 Replit 来构建这些应用。他们构建了一个竞品分析应用,会查看竞争对手的定价,确保自己的定价基准是正确的。这是一个全栈应用,使用了数据库等等,而且是持续运行的。我们还看到销售工程师用 Replit 非常快速地搭建原型。比如 X(原 Twitter)有一位负责合作伙伴工程的同事,他用 Replit Agent 来为客户快速搭建应用和原型,展示他们如何使用 X API。

Lenny Rachitsky: 我太喜欢这些例子了。对了,关于那个 demo,在我们结束这个话题之前还有什么想展示的吗?

Amjad Masad: 它创建了一个管理员账号。我们可以用用户名、密码登录进去进行管理,但基本就是这样了。这个应用在我们要求的范围内已经完成了。我们可以把它发出去,给你一个 URL。我们实际操作一下快速部署,让大家看看怎么部署。

Lenny Rachitsky: 也许我们可以在节目简介里附上这个应用的链接,大家可以看看。

Amjad Masad: 好的。

Lenny Rachitsky: 好的,太棒了。所以这是把它部署到某个云服务商上。我不知道你们用的是什么,但是……

Amjad Masad: 我们用的是 Google Cloud。所以我们把所有这些都抽象掉了,用户不需要关心,但背后我们用的是 Google Cloud。

技术架构

Lenny Rachitsky: 趁着它还在部署,我们顺着这个话题聊聊吧——从技术角度来说,是什么让这一切成为可能的?技术栈是什么?你能分享的都可以聊聊。

Amjad Masad: 当然可以。首先,是我们构建的所有抽象层。Replit 的运作方式是——最底层是我们的运行时。这包括操作系统、包管理器、各种语言的运行时。我们构建了一个系统,能够在任何语言中安装包,包括原生包。所以 AI 随时需要某个包的时候,它可以去安装。我可以在这里给你们看一个例子。顺便说一句,AI 也可以截图,这样它可以检查应用是否正常运行。这里你可以看到它在截图,确保首页渲染正确。这里你可以看到它需要一个拖拽库,于是就把它安装了。它可以访问所有语言的所有包,包括 Linux 的所有东西。在那一层之上是编辑器,以及运行编辑器的基础设施,包括我之前描述的 multiplayer editor。

Amjad Masad: 然后我们把所有这些基础设施都暴露给 AI。现在几乎出现了一个新的学科,叫做 AI 计算机接口。就好比 HCI(人机交互)现在变成了 ACI(AI 计算机交互)。事实证明,大语言模型需要的界面和人类使用的截然不同。人们试图让它们使用人类的界面,比如 Anthropic 的 computer use,但那样成本非常高,而且需要处理大量图像和视频。所以我们的做法不同,比如对于 shell,我们给它一个文本形式的表现,以一定的间隔呈现 shell 的执行状态。对于包安装,我们也给它专门的工具。对于编辑,我们给它一个编辑器工具——当它在写代码的时候,能实时获得是否有错误的反馈,类似于人类看到的东西,但实际上是纯文本形式,让它更容易处理。这就是 AI 计算机接口。当然,所有这些都建立在基础模型之上。基础模型的进步使我们能够构建这一切。

我们使用的最重要的模型是 Anthropic 的 Claude Sonnet 模型,它是目前最强的编码模型。所以我们用它来做编码,但同时我们也使用 OpenAI 的模型,因为这是一个多 Agent 系统。所以我们有负责评审的模型,有 manager editor 模型,还有 critique 模型,不同的模型拥有不同的能力。我们也自行训练了一些模型,比如用于搜索的 embedding 模型就是我们内部训练的。实际上我在 2022 年就写过相关文章,我预测未来将是”模型的集合”——产品将由许多不同的模型组成,而这本身是一个相当重大的工程项目。

Lenny Rachitsky: 岂止是相当重大。我们线下聊的时候你说你从 2009 年就开始做这件事了,当时你第一次构建了 Replit 的雏形。对吗?

Amjad Masad: 对。

Lenny Rachitsky: 天哪。

Amjad Masad: 部署好的应用在这里。我可以发给你,你可以使用它,在未登录页面也能看到我的请求,我可以注册、上传、以管理员身份登录、拖动调整位置。我们可以看到哪些在进行中,哪些已完成。

Lenny Rachitsky: 这看起来像一个完整的产品了。换作正常流程,设计师可能要花好几天做设计,然后交给工程团队,PM 提反馈,工程师再花几天来构建。

Amjad Masad: 是的。

Lenny Rachitsky: 而这里只需要一个 prompt,说明我要什么就行了。

Amjad Masad: 没错。而且我们可以非常轻松地迭代。UI 也可以迭代,我们可以说不喜欢这个或那个,它会做得很好。我们可以在这里开启一个新的会话来创建一个全新的功能,它就能正确地完成。

Lenny Rachitsky: 而且它是在已有代码库的基础上构建的。它理解你已经构建了什么,然后在此基础上添加新功能。

Amjad Masad: 对。

Lenny Rachitsky: 好的。

AI 计算机接口

Amjad Masad: 这些迭代也会成为你的历史记录,对吧?这是 v1,现在我在开发这个新功能,这几乎就像工程师在 Git commit message 里做的那样。顺便说一下,它会为它做的每一件事自动生成 Git commit message,所以你也可以回滚。我们希望做到的是,是的,它面向所有人,但我们不想过度抽象。我们希望你学会使用这些工具。我们希望高级用户能够理解 Replit 的全部能力——这真的是一个非常深的产品,我觉得你可以花上几年时间去掌握它。

Lenny Rachitsky: 我想聊聊这些技术带来的影响,但我想先回到你刚才提到的一件人们可能忽略了的、令人难以置信的事情。你基本上构建了一台专门为 AI Agent 设计的计算机——一个不同版本的计算机,专门针对 AI 使用计算机的方式进行优化。

Amjad Masad: 对。有一个完整的学科叫做 HCI,对吧?就是研究如何——

Lenny Rachitsky: 人机交互。

Amjad Masad: 对。现在已经有论文在研究 AI 计算机接口和交互了。大语言模型是在互联网的海量语料上训练出来的,但它们仍然是某种”异类”——不像人类,所以行为模式不同。给它们一个编辑器的最佳方式是什么,目前还不太清楚。所以有大量的实验在做——给它的编辑视图怎么做最好,能给它看多少文件而不至于产生幻觉。现在这更多是一门艺术而非科学,但它正在变得越来越像一门科学。

Lenny Rachitsky: 这太疯狂了。所以简单来说可以这样理解:有一个基础模型,你告诉它你想构建什么,然后给它一台计算机来完成任务。

Amjad Masad: 对。

Lenny Rachitsky: 我怎么——

Amjad Masad: 给它一台装有一系列工具的计算机。这是安装包的工具,这是编辑代码的工具,这是运行 SQL 查询的工具,还有各种服务。这是一堆你可以接入的外部服务,数据库服务、对象存储服务、认证服务。所以你可以把它看作一堆外部服务,加上一台装有很多工具的计算机,它们都在与基础模型交互。

Lenny Rachitsky: 听着这些,挺有意思的是——我开始觉得我们可能生活在模拟世界里的这种说法,似乎没那么离谱了。这就像是模拟计算机的雏形。

Amjad Masad: 对。你可以往很科幻的方向想——它的终局是什么,对吧?

Lenny Rachitsky: 是啊。

Amjad Masad: 如果我们给它足够多的工具,比如说,我可以把它接入 Slack,不再用现在这种方式与它交互,而是完全以自主的方式与它交互。实际上我们有这样一个即将推出的功能——不再由我来测试它,而是给它另一个 Agent。在这里,不再由我来与它交互、告诉它运行正常与否,而是给它另一个 Agent 来测试应用,然后比如说完全通过 Slack 与它交互。我会说类似这样的话:“Taylor Swift 门票一开售就帮我抢。”

然后它就会构建一个应用,持续监控网络上 Taylor Swift 门票开售的消息,并且有一个 Agent 在使用这个应用来完成抢票。你可以想象它有某种钱包或信用卡,一旦门票开售,它就立即出手。我想说的是,软件——Agent 能够驾驭软件——这就是 AI 变得更通用的方式。因为软件驱动着我们的生活、驱动着互联网、驱动着我们的商业。所以 AI 在软件方面的能力越强,它在整体上能做的事情就越通用。

对产品人和创始人的影响

Lenny Rachitsky: 好了,这个话题可以往很多方向展开。我想把我们拉回来,聊聊这对做产品的人意味着什么——产品经理、创始人——这会如何改变他们的职能和技能要求?你觉得哪些技能会变得更重要,哪些会变得不那么重要?哪些岗位可能面临风险,需要开始考虑转型?

Amjad Masad: 我们看到一个很有意思的用户画像,就是 CEO,创业公司的 CEO。Tiny 的 Andrew Wilkinson 就是重度用户。这些人通常是有创造力的人。他们创建了公司,雇了人。他们很多人不会写代码,很多人是设计师或产品经理或其他背景。你可以想象一个瓶颈——他们脑子里有一堆想法,这些想法必须通过说话传达出去,然后另一个人在听,还得假设这个人真的理解了他们说的,然后那个人再去尝试构建他们想要的东西。而且还得假设那个人有时间,因为很多时候你的工程师正忙于构建当前的东西,没在想未来的东西。所以让我兴奋的是,这些 CEO 中很多人正在构建未来的概念、下一个要做的产品、下一个要创建的公司。

这释放了创造力,让他们不再被那个瓶颈卡住。当然,这只是产品的 v1 版本,但它能推动事情向前走。你可以触摸它、感受它,你可以说,好吧,这个确实有延迟,我们需要改进。你把它交给工程师,他们可以在此基础上改进。所以这是一个用户画像,但我确实很兴奋——CEO/创始人这个群体。在公司内部,我认为科技公司一个比较难的问题是设计师、产品经理和工程师之间的部门壁垒。每个人都感受到了这种痛苦:我们的沟通带宽很低,就是语言、Slack 上的文字、Zoom 会议。这导致了很多挫败感,因为很容易误解别人的意思,又会导致进一步的部门隔离——一个人在做某样东西,然后交接给下一个团队,结果并不是对方期望的样子。

设计师和工程师之间的共同语言

这种情况在设计师和工程师之间经常发生。但所有人共享的共同语言是代码。最终在软件科技公司里,我们讨论的一切都需要以代码的形式落地。那么,如果这种语言变成了可以运行的原型、可以运行的应用呢?比如我们有一个 Figma 扩展,可以把 Figma 的设计稿转成在 Replit 上运行的 React 代码。所以你不是给工程师一些设计稿或截图之类的,而是直接说,给你一堆 React 代码,确保它能在我们的基础设施上运行就行,别乱动,别挪动像素。所以我认为这打通了公司的部门壁垒,让围绕产品的沟通变得更加具体,因为我可以给你一个可运行的原型。如果想象一下每个人都能做软件,这会改变人们的工作方式。这真的是对科技公司乃至大多数公司的一种根本性的重新想象,因为每个人都可以变得更通用。

Lenny Rachitsky: 假设你是一个正在听这些的 PM、工程师或设计师,你觉得如果你是他们中的一员——如果你现在正在 Replit 做产品——你会建议他们重点培养哪些技能?哪些技能你认为未来会不那么有价值,不用太担心?你可以挑其中一个职能讲,也可以三个都讲。

Amjad Masad: 我认为一项非常重要的能力——可能比较难培养但值得投入——就是创造力,更具生成性,能够快速产生新想法。你可以把它想象成一条流水线。你有想法,有这些想法的初始产出,然后有其他人想要消费这些想法或与你协作。通常瓶颈在中间环节——你的想法很多,但它们塞不进去,因为需要被做出来,而且需要快速做出来。现在你打开了这个瓶颈。实际制作东西变得容易多了。实际上,你的限制变成了你能多快地产生想法。我发现我自己也是这样。我认为自己算是有创造力的,但现在有了这个工具,我可以构建更多、探索更多,然后我发现,嗯,实际上我有时候会想法不够用了。

所以锻炼那块肌肉是好事。我认为学一点编程也有帮助,但不是传统的学编程的方式。如果你去编程训练营,他们会从 Git 是什么开始教。实际上我的联合创始人 Haya 以前是设计师。我们最初一起做 Replit 的时候,她去参加了一个 WebAssembly 的编程课。第一天,他们花了整天讲 Git,她就懵了,“这是什么?有什么用?“我现在也不完全清楚它具体是干什么的,但问题是你把过程反过来了——你在给出实际问题之前先给了工具。所以我觉得所有那些东西你都不用担心。哪些不用担心的:我觉得作为 PM、设计师,作为不是每天都在代码编辑器里的人,不用担心各种工具链。

如果你只是通过和 AI 对话来学一点编程,做一些调试,用 Replit 构建点东西,遇到问题然后用 AI 修复它,你就会学到一些编程。我有一个不是我自己命名的说法,被人叫做 Amjad 定律,就是学编程的投资回报率每六个月翻一倍。真的,只要学一点这个技能——学一点如何给 AI 提示、如何阅读代码、如何调试——每六个月,你获得的威力就越来越大,因为你能创造的东西越来越多,创造起来越来越容易,你能创造出越来越完整的东西。所以这是另一个我认为必要的技能。

Lenny Rachitsky: 这非常有趣。好的,最后这一点,你提出了 Amjad 定律。这很有意思,因为当人们——比如有人在听这个的时候——我可以想象他们会想,工程师要完蛋了。为什么还需要工程师?Agent 都在写代码了。但你的观点恰恰相反,特定的工程技能会变得极其有价值,而且越来越有价值。你说多久翻一倍?

Amjad Masad: 每 six months。

Lenny Rachitsky: 每六个月,这些特定工程技能就在变得更有价值。而核心观点是,你不需要什么都知道,不需要那么懂基础就能构建应用了。更重要的是能帮 Agent 解锁卡点,理解这些东西是怎么构建的心智模型,这样你才能快速推进。

Amjad Masad: 对,没错。理解它的基本组成部分,是的。

Lenny Rachitsky: 对,所以就是说我们需要新的工程学院来教你这些非常具体的技能,而不是花好几年学算法。


Amjad Masad: 我认为目前还没有人做到这一点,而这很可能是一个巨大的商业机会等待被建立。这就是 AI 原生编程,它和传统编程完全不同。这就是为什么在 Hacker News 上,人们对 AI 原生编程工具充满怀疑——他们会说,这不就是一个花哨的自动补全嘛。我理解,如果你在写操作系统内核,它确实帮不了你太多,但如果你在构建产品,它现在已经在替你构建了。所以如果你创办一所教 AI 原生编程的学校,你可以跳过大量计算机科学和基础工具的内容,只教应用程序的基本结构思路,然后教 prompting,再教一点调试。我认为调试目前是一项非常值得学习的技能。

Lenny Rachitsky: 有意思的是,如果你想擅长调试,你需要理解的东西其实很多。你基本上是在说,需要理解的那部分就是那些会出问题的地方。而要做到这一点,你必须理解整个系统是怎么运作的——什么是服务器?什么是 API?诸如此类。好的,我们之前一直在谈目前这些工具已经很擅长什么——构建原型、构建 v1、MVP,让人们可以使用它,可以部署它。你部署了这个应用,人们就可以开始使用,而它有一个可以达到的规模。你看到了这样的未来吗——完全用 Replit 或其他工具就能构建一个 Salesforce 规模的业务,能够扩展到数千亿美元的价值?还是说永远会有某种限制,让你需要真正的工程师和设计师坐在这里构建它、思考它?

AI 能力的指数增长

Amjad Masad: 如果我的定律方向是对的,即使时间上不完全准确——我不确定具体的时间长度是否精确——你会看到一种能力的复合效应。这其实很难说服自己。但如果你真的相信我们正处于 AI 大规模提升的轨道上,那么答案就是肯定的。这对我作为工程师的直觉来说也很荒谬,但要知道未来学家 Ray Kurzweil 说过,指数增长对人类来说真的很难直观理解。所以实际上当我们开始构建 Agent 时,我跟团队说,很容易犯一个我们之前也掉进去过的陷阱——就是为当下构建和优化。2022 年,我们做了类似 Copilot 的东西和自动补全。我们训练自己的模型,把它们优化到了极致。但在某个时刻,那种模态——也就是自动补全的模态——并不是正确的模态。

正确的模态实际上是现在这样的——在编程环境中聊天,让 Agent 为你创建东西。但为了做出这个押注,一年前模型其实还不够格。模型做不到这些,但我们说,好,我们要为六个月后即将发布的模型来构建。确实六个月之后,具备我们所需推理能力的模型开始出现了。这就像是亲眼见证了它的发生——我们切换过去,推理能力提升了那么多。六个月之后,你就得到了一个全新的东西。所以这几乎是以六个月为节奏在推进。如果我们真的在这条轨道上,那我说明年你就能直接扩展规模,也许能获得数千名付费用户。

AI 可以做维护工作。我们已经展示了 AI 执行 SQL 查询和做数据库迁移,所以它将能够做维护、调试之类的事情。我认为真正困难的地方在于,当你达到一定规模,需要设计一个有弹性的系统架构时,那就意味着你要开始做数据库分片,使用不同的队列系统和各种组件。我认为 AI 需要能够接触到整套工具才能做到这些。

我认为这会是下一个瓶颈。AI 在做这些事情时需要可靠得多。但我可以想象,也许五年后,有人经营着一家十亿美元的公司,零员工——技术支持由 AI 处理,开发由 AI 处理,你只是在构建和创造人们觉得有价值并愿意付费的东西。话虽如此,值得思考一下经济学问题。如果软件成本大幅下降,那你能对软件收取的价格是多少?你还能真正构建下一个 Salesforce 吗——如果任何人都能生成 Salesforce 的话?问题就在于,这也是我强调生成能力的原因,因为我认为那时让你脱颖而出的将是能够极快地迭代和改进产品,以及不断产生新想法的能力。

Lenny Rachitsky: 而且要领先于所有其他快速构建这些工具的人。天哪。听你讲这些,我脑海中浮现出另一个有趣的心智模型——不是要冒犯有宗教信仰的人——有一种概念叫”填补空隙的上帝”,你可能听说过。就是说上帝解释了我们尚未理解的一切,而随着时间的推移,这个空间不断缩小,上帝就是那些我们还搞不明白的空隙——那些空隙证明了上帝的存在。感觉现在人类就是这些工具中的空隙,你在 Replit 中可以雇佣的那些 Agent 就是在修复这些小小的空隙。而随着时间推移,AI 会自己修复这些问题。

Amjad Masad: 没错。

Lenny Rachitsky: 这些空隙会不断缩小。

Amjad Masad: 除非我们触及了当前 AI 范式的某个根本极限。我不是 transformer 能扩展到多远的专家,但我觉得我们找到了一个可以扩展得相当远的东西,也许在数据或其他方面存在限制,可能会让我们感到意外。但如果不存在那样的限制,那我们就在一条快速消除这些空隙的巨大轨道上。

Lenny Rachitsky: 对,确实如此。我们其实并不知道。我们一直觉得它会继续前进,但也许某个时刻它会停下来。我可以一直聊下去,但我想我们也应该让大家去亲自试试这些东西,消化一下我们聊过的内容。你还有什么觉得可能对大家有帮助的建议,值得去思考、学习或研究的吗?

给创始人和领导者的建议

Amjad Masad: 我给公司创始人或领导者一个建议。我们的工作方式将会快速变化,对这种变化保持韧性很重要。我认为现在有一件事非常困难,就是制定路线图——尤其是你在做任何 AI 相关的事情时,但其实只要 AI 可能影响的领域,你都需要能够非常快速地做出反应。比如当 Anthropic 发布了计算机使用(computer use)那套能力时,我们砍掉了原有的路线图——我们其实没有一个明确的路线图。我们立刻扑上去开始构建东西,围绕它发布了一些功能。后续还会做更多,但还会有新的能力不断释放。你真的需要——在某些情况下,如果它切实影响你的业务——能够非常非常快地扑上去。所以保持敏捷,不要被路线图绑住,能够直接说”好,我们立刻切换优先级”,这将变得极其重要。

团队角色的流动性

Amjad Masad: 就像我说的,Replit 内部没有部门壁垒。我们有很多人处于从设计师到工程师、设计师、产品经理这个光谱上的不同位置。实际上,我之前提到过 Aman Mathur。他最初在 Replit 是设计师,现在是产品经理。我们有从设计师起步成为工程师的人,也有处于两者之间的人,我们对这种分布在不同位置的设计工程师感到很自在。设计工程师会去参加设计评审会议,一些设计师也会去参加工程会议。你必须保持流动性,因为说到底,当设计师能够写代码、工程师也能做设计的时候,你确实没办法围绕这些角色建立太多刚性结构。所以你要打造一种文化,营造一个真正极其灵活的环境或氛围,这对很多人来说是不舒服的。

Lenny Rachitsky: 天哪,未来太疯狂了。每个人都变成了复合型人才。我想顺着你说的一点再深入一下,我觉得非常有意思。如果你是工程师,你的技能最能发挥价值的地方,将变成为这些 AI 工具扫清障碍——懂得调试,弄清楚怎么让 AI 走得越来越远。而在产品经理和设计领域,根据你描述的情况,技能最有价值的地方将是产生创意,几乎是发现机会、做探索、找到需要解决的问题,然后尽可能清晰地向 AI 工具表达出来。

Amjad Masad: 没错。

Lenny Rachitsky: 太有意思了。

Amjad Masad: 对,我觉得这是人们现在就能follow的一条非常清晰的建议。

如何尝试 Replit

Lenny Rachitsky: 天哪,这是什么世界。好吧,我在——这太不可思议了。我脑子在飞速运转。我得马上去开发几个应用。

Amjad Masad: 对,你回去试试吧。我喜欢这样。

Lenny Rachitsky: 我会的。那给听众留下一些信息。他们应该知道什么?去哪里找到你?怎么试用 Replit?除了直接去 replit.com 之外还有什么?

Amjad Masad: 直接去 replit.com 就行。目前是公开测试版,我们在快速改进,大概几周内就会退出测试阶段。如果你不介意使用还不够完美的产品,就去 replit.com 吧。如果你订阅了我们的核心套餐,应该就能使用 Agent 并开始用了。另外我们最活跃的地方是 Twitter,也就是 X,账号是 Replit,R-E-P-L-I-T,或者我的账号 @amasad。

Assistant 产品预览

Lenny Rachitsky: 对,还有一件事我想确保我们有机会聊到,就是你们正在做的新东西,很快就会发布的,可能就在这期节目上线的那天。聊聊这个吧。

Amjad Masad: 好的。取决于这期节目什么时候上线,这可能是大家第一次听说。我们有一个叫 Agent 的产品,它自主性很强,从搭建项目到所有事情都能做。现在我们在做 Assistant。Assistant 可以说是 Agent 的表亲。它没那么强大,但可控性更强。你可以聚焦在你想要修改的功能或代码区域,你仍然不需要懂写代码,但它更易管理,也快得多。你之前看到创建项目和编写代码需要一些时间。Assistant 的响应速度在毫秒到秒的量级。所以再次回到我说的工具理念,我们希望给人们尽可能多的自主权和能力。在某些场景下 Agent 是最佳选择——它会帮你调试,帮你创建数据库。但如果你想要更多控制权,Assistant 能满足你。

Lenny Rachitsky: 为了让大家完全理解这个东西能做什么。该怎么理解它?如果把它比作一个人在帮你,是什么感觉?

Amjad Masad: Agent 就像你有一个开发者在为你工作。你把 PRD 给他,他就去把东西做出来。Assistant 则像是你坐在他旁边。东西做出来了,然后你走到他桌前说,把这个按钮往左移三个像素,改一下这个东西。那些你想快速、可靠地做出的小幅度修改,Assistant 就能帮你完成。所以在 UI 这类东西上迭代速度要快得多。

Lenny Rachitsky: 太不可思议了。未来太疯狂了。我最后问每个人的问题:听众怎样能帮到你?

Amjad Masad: 来 Replit 工作。我们有一个产品经理的职位。如果你是产品经理的话。我们在招工程师和产品经理。所以来 Replit 工作吧,或者给 Replit 推荐人才,尤其是如果你喜欢我们的工具、希望它们变得更好的话。最好的方式就是帮我们找到可以招聘的优秀人才。

Lenny Rachitsky: 那你马上就要迎来一大批产品经理的求职申请了。祝你好运。

Amjad Masad: 太好了,我喜欢。

Lenny Rachitsky: Amjad,非常感谢你来。这次对话太棒了。

Amjad Masad: 谢谢你。感谢你的播客、你建立的社区、Newsletter,一切。看着这些成长起来真的很棒。

Lenny Rachitsky: 谢谢,兄弟。感谢。大家再见。

感谢大家的收听。如果你觉得这期节目有价值,可以在 Apple Podcasts、Spotify 或你喜欢的播客应用上订阅。另外,也请考虑给我们评分或留言,这真的能帮助其他听众找到这个播客。你可以在 lennyspodcast.com 找到所有往期节目或了解更多关于节目的信息。下期见。


术语表

原文中文
AgentAgent(保留原文,Replit 的 AI 功能)
Aman MathurAman Mathur(保留原文,人名)
Amjad MasadAmjad Masad(保持原文)
Amjad 定律Amjad 定律(Amjad’s Law)
Andrew WilkinsonAndrew Wilkinson(保持原文,人名)
AnthropicAnthropic(公司名,保留原文)
AssistantAssistant(Replit 的新产品名,保留原文)
B2BB2B(企业对企业,保留原文)
BountiesBounties(Replit 平台功能名,保留原文)
CopilotCopilot(产品名,保留原文)
CursorCursor(保留原文,产品名)
FigmaFigma(保持原文,产品名)
GitGit(保持原文,版本控制系统名)
Hacker NewsHacker News(科技论坛,保留原文)
HayaHaya(保持原文,人名)
IDEIDE(集成开发环境,首次出现保留原文)
JevinJevin(保留原文,人名/昵称)
Lenny RachitskyLenny Rachitsky(主持人名,保留原文)
multiplayer codingmultiplayer coding(多人实时协作编码,保留原文)
MVPMVP(最小可行产品,保留原文)
Node.jsNode.js(保留原文,技术名)
PRDPRD(产品需求文档,保留原文)
QAQA(质量保证/测试,保留原文)
Ray KurzweilRay Kurzweil(未来学家,保留原文)
ReactReact(保持原文,技术框架名)
ReplRepl(保留原文,Replit 中的项目单位)
ReplitReplit(保持原文,产品名)
SAMLSAML(保留原文,技术标准名)
SCIMSCIM(保留原文,技术标准名)
shardingsharding(数据库分片,保留原文)
SlackSlack(保持原文,产品名)
SQLSQL(结构化查询语言,保留原文)
TinyTiny(保持原文,公司名)
transformertransformer(技术架构名,保留原文)
v0v0(产品名,保留原文)
VS CodeVS Code(保留原文,产品名)
WebAssemblyWebAssembly(保持原文,技术名)
ZoomZoom(保持原文,产品名)

此文档由 AI 分片翻译(translate_long_document)