Transcription
丹,很高兴认识你,也很高兴能在 Dreamforce 接受采访。我是说,这个活动的规模是我以前从未见过的。所以,这真的很令人惊叹。>> 是的。我喜欢 Dreamforce。你能够与客户建立联系,而且这里有一种特殊的能量,可以说它是世界上最好的技术会议之一。>> 绝对是最大的,对吧?我想。>> 是的。是的。而且对细节的关注,就像我们之前谈到的城市里的假草坪,以及美丽的自然和本土气息,甚至就在几分钟前,听到 Jewel 在外面现场演唱,这在你的会议之间是一件非常不可思议的事情。>> 是的,那真的很棒。是的。>> 是的。所以,你拥有一个 20 多年的职业生涯,首先在微软工作,现在在 Salesforce 工作,基本上是带着 agent force 的氛围,试图降低门槛,帮助人们编写代码和构建应用程序。对吧?>> 对。你认为我们现在是否已经到了一个可以达到任何人都能编写出真正出色的生产应用程序的程度?>> 有几件事,比如你是在编写生产应用程序,还是只是想解决一个具体的问题,或者其他什么?其中一个关键点是,如果你在编写 Salesforce 应用程序,Salesforce 实际上为你处理了很多基础设施。是的。所以,如果我手动在云上构建一个应用程序,我需要设置虚拟机。我需要确保硬盘已设置好,NAT 路由器,所有应用程序开发中涉及的细节。这些都由我来处理。所以现在我有了构建应用程序的更高级别的抽象。这正是 agent forest vibes 可以大放异彩的地方,因为很多事情都由我来处理了。所以我真的只需要专注于定义我想要构建的应用程序。>> 明白了。有哪些功能?而且这要容易得多,因为我不必从头开始构建一切。我从一个更高级别的抽象开始。>> 我明白了。是的,因为你知道,我一直在使用所有的 vibe 编码,AI 编码工具,而且,是的,安装所有 mpn 并且模型不识别库、版本,这真是太麻烦了,对吧?就像在你能构建任何东西之前,你必须花大约 20 分钟来设置一切。>> 是的。我们想做的关键事情之一是,我们有一个 Asian forest vibes IDE。好的。所以,直接在每个 Salesforce 中,你只需按一下按钮,就可以立即获得一个基于浏览器的 Visual Studio 版本,其中已经包含了所有设置。所以我不需要安装手动 VS Code 扩展。我不需要重新学习如何为其他所有内容设置 MCP.json 文件。我不需要安装 CLI。基本上,一切都准备好了,可以构建我的应用程序。>> 明白了。好的。这确实降低了工具方面的入门门槛。开始。是的。那关于,我仍然觉得,你知道,我仍然觉得我擅长 vibe 编码,但我无法构建出像我的专业工程师朋友那样出色的东西。对吧?对。>> 而且只是退一步想,你知道,五年前或十年前,如果我们学习如何编码,我们会学习循环以及所有这些东西。对吧?那么现在一个人如何才能变得更具技术性,并且在这个方面做得更好呢?你知道,它是?>> 是的。所以,我认为其中一件事是真正比较 vibe 编码与企业 vibe 编码。我们试图做的一件事是说,嘿,vibe 编码是可以的,但称之为原型。如果你给它一个标签,并意识到它的用途,比如,重点不是这将是生产级的应用程序。我将举一个例子,我喜欢 lovable,但它所做的一件事就是设计用于快速原型应用程序。这就是目标。就是这样,你知道,它真正闪光的地方。>> 是的。>> 但这并不一定能转化为生产级应用程序。它确实是。所以,一,你想尽可能多地重用所有代码。所以,区别在于 vibe 编码和企业 vibe 编码之间存在一系列关键区别。重用你已有的东西,而不是从头开始构建一切。举个例子,与其基于提示,不如基于需求或规范。真正花大量时间来构建这些需求,AI 可以帮助你构建它们,但这样你就能清楚地了解应用程序的功能,利用你的基础设施和治理,>> 嗯,嗯,并确保你默认考虑质量。那么我指的是什么?这就像单元测试。我们有代码分析工具,它们确实能帮助你,这将在你的代码中运行超过 500 条规则。无论是人类构建还是 AI 构建,它都会提高代码质量。所以,你越接近真实代码,否则你就是在 vibe 编码,基本上,如果你有 10 个开发人员在处理这些事情,他们将构建 10 个库存系统,10 个 C tax 计算器。>> 你真的不希望那样。你希望尽可能多地重用,而不是仅仅假设一切都是全新的应用程序。>> 好的。所以,我想一个区分因素是理解你公司里所有事情的背景,比如你现有的代码库,所有已经存在的东西,对吧?>> 这完全正确,就像,嘿,我重用了什么?我甚至可以问你,嘿,你看,有一个库存管理系统,你想让我使用那个特定的 API 来管理订单吗?就像,是的,是的,我愿意。所以,拥有这些知识是我们宣布的一个关键点,那就是 Salesforce 统一目录,用于理解你组织中的所有内容,这就是你的重用目录。现在,很多时候的一个挑战是我不只是想要一个目录。我想知道它做什么,并且拥有对其功能的语义理解。所以,不要只告诉我我有一个,比如,一个 Web 组件 1,Web 组件 2,Web 组件 3。>> 是的。>> Web 组件 1 是标题。Web 组件 2 是一个映射应用程序。你知道,Web 组件 3 是一个导航控件。所以,我们可以使用 AI,而不是让开发人员编写它,AI 会走到代码那里说,你做什么?哦,你是一个映射组件。所以,当我们去重用时,我们不仅仅看到名称,我们有了语义理解,并且可以对代码重用做出更好的建议。>> 明白了。我的意思是,我认为,看看生态系统,我的意思是,有很多 AI 编码工具,对吧?看看生态系统,我觉得有两种不同的用例。一种是像光标和时钟代码,以及 codecs。它们试图帮助专业工程师更快地移动,对吧?这有点像,是的。而另一个是,是的。就像你说的,可爱的船。它们更多是用于 0 到 1 的原型制作。比如,我可能不会使用它们实际生成的任何代码。我只会向一些用户展示,然后扔掉。>> 正确。>> 你知道,我觉得,所以你认为 Asian force vibes 在中间吗?还是你认为它更像专业人士?>> 是的。所以,我们确实从专业开发人员开始,然后我认为我们正在朝着如何使其更具可寻址性并真正降低入门门槛的方向发展。你会看到我们随着时间的推移会做更多的事情,就像一个例子,在主题演讲中,Benoff 的主题演讲中,你看到 Patrick 走上前去构建了一个具有一系列要求的应用程序。>> 而不是等待,你看到它在进行 vibe 编码并输出代码,你看到了它的可视化表示,一个真实的应用程序的实时视图。这只是一个例子,说明它如何更易于理解,我不仅可以看到底层代码。我想看到的是代码的结果,实际运行的应用程序。这就是为什么很多人会说,“哇,这太棒了。这正是我想要的。”因为当我使用它时,我可以看到它是否在做正确的事情或错误的事情。然后,这种快速反馈循环是任何人在构建应用程序时都喜欢的东西。嘿,只需做一个小改动。哦,你知道吗?撤销并确保你有工具可以做到这一点。这部分的基础是建立在开源上的。所以,这是使用 Klein 的开源工具作为基础,它是 Visual Studio 生态系统中被使用最多的开源工具之一。是的。而且它确实在 Salesforce 上得到了体现,并且那些为 Salesforce 开发量身定制的开发人员工具,显示出巨大的兴奋和前景。>> 太棒了。嗯,是的,因为我希望,我希望中间有更多的工具,比如产品经理、设计师和销售人员,他们可以真正构建生产级的东西,生产级功能,因为即使作为我这样知道如何使用光标和其他工具的人,我的工程师也不信任我将代码提交到生产代码库。>> 对。>> 你知道,所以,而其中一件事会让他们做到这一点,那就是我们如何拥有更好的代理规则,以便它遵循,就像一个例子,在我的一次演讲中,我展示了,我们想做的是给 AI 一些指导。它可以以任何方式、形状或形式构建 JavaScript 代码,并且它会默认执行某些操作。我不想让它默认执行某些操作。我希望它默认执行我们的工程团队的方式。>> 所以,你实际上是在问 AI,我想让你构建 AI 规则。你可能已经看到人们分享他们构建的一套规则。>> 不,不,不。让 AI 走到每个文件。是的。将其总结到一个规则文件中,然后你使用它。所以,接下来,你正在使用 AI,你现在说,嘿,给我构建一个 JavaScript 文件,它构建一个 FAQ,可以展开或折叠,只是给我们一个基本的例子。>> 是的。是的。>> JavaScript 输出遵循你的工程团队所做的所有规则。>> 明白了。>> 然后第二是,你如何拥有你的工程团队会喜欢的代码质量工具,比如,好的,我知道它至少会是高性能的。它是安全的,它将遵循最佳实践。所以,你能做的越多,就能优化从到验证代码的管道,并在编写代码时进行验证,并默认拥有质量。>> 好的,所以它有点像,>> 它实际上可能会让他们觉得,好的,这个 PR 看起来,你知道,如果你改变标签,你知道,你做那些空白测试,>> 这个 GitHub 请求是来自产品经理还是工程师?>> 它看起来更像是来自工程师。为什么?因为你给了 AI 工具来遵循你的工程团队的编码规则,无论是隐式的还是显式的。>> 并且这些规则和这些需求来自于阅读代码库或理解非知识库,或者?>> 这完全正确。所以我说,“嘿,去阅读代码库并构建一套 AI 规则,这样当你生成代码时,它就会遵循这些规则。”这只是一个提示的例子,然后让所有其他请求感觉更自然,更符合应用程序的构建方式。>> 明白了。好的。>> 所以,哦,我们不使用任何测试框架。我们使用这个测试框架。我们不使用 Mocha。我们使用 Jest。你知道,就像那些甚至到库级别的东西,我可以理解。>> 明白了。是的。因为每个公司都有些奇怪,有自己的规则,你必须,>> 是的。>> 是的。你不能构建通用的东西。你必须为每个客户构建一些明确的东西。>> 是的。所以,我们使用的一个例子是 Salesforce,因为 Salesforce,我们实际上有联邦、州和地方。好的。>> 你可能有一套联邦规则,所有代码都必须通过这套规则,对吧?确保我们这样做。确保我们这样做。确保我们为错误处理这样做。所有错误处理都必须在这里进行。然后你会有更多像州模型的东西,比如,嘿,HR 应用程序将有这套规则。财务需要遵循 Sarbain Oxley,对吧?部门应用程序将没有这些规则。所以,你可以为每个应用程序设置规则的治理,即使在一个公司内部,你仍然有所有人必须遵守的联邦规则,但现在你可以为每个应用程序拥有更灵活和精细化的控制。>> 明白了。所以,我想这就是 agent force vibes 的区别所在,对吧?因为,你知道,有些人可能在想,为什么 Salesforce 要推出一个 vibe 编码工具?但区别在于它真正嵌入了企业,理解企业背景。>> 这完全正确。当我告诉它,嘿,我不想只是为案例管理构建一个 REST API。我想让你根据我的组织来构建它。明白了。所以它走上前去,就像,“哦,太好了。我需要构建一个 REST API,它需要适用于打开和关闭案例。”它能够做到这一点,因为它查看了你的内部上下文。>> 太棒了。太棒了。好的。好了,伙计,让我们稍微换个话题。我想谈谈未来,因为整个会议都围绕着 agent 工作空间,对吧?>> 是的。这就是事情变得真正令人兴奋的地方。>> 是的。所以,你认为未来的产品团队会是什么样子?比如,不是一群人类和一群代理一起使用 Slack,或者你认为是什么?>> 我认为你正中要害,这也是我将要展示的一个演示。所以,这就是我们现在的状况。我们,开发人员被宠坏了,以一种好的方式,对吧?他们拥有所有编码辅助的奢侈。但这是它的工作方式。他们在 IDE 中。他们是一个个体,输入一个提示。嘿,去修复这个。去构建那个应用程序。这将是即将发生的重大趋势。它将从个体转向团队。它将从用户启动转向事件驱动,它将从短期转向长期。所以,让我来分解一下这些不同的例子。所以,用户启动与事件驱动。>> 有另一个代理发现了你应用程序中的性能问题。应用程序刚刚部署。该代理将与你的开发代理对话,说,“嘿,去分析一下这次特定发布或这个功能标志发生了什么,以及那里有什么问题?你能实际修复它吗?”所以,这些事件驱动的领域,个体到团队,就像通常一样,开发人员获得了所有的生产力,但软件是一个团队运动。所以,作为产品经理,我们可以问,为什么在这个区域,被遗弃的购物车数量下降了?我们有一个代表我们应用程序的 Slack 频道。我们在画布上有需求,我们可以让代理在那里构建应用程序或采用,修复应用程序。嘿,我需要一个新功能演示。>> 自然语言。它在做什么?它正在为你启动一个环境。它正在运行 CLI 工具,以及其他所有东西。你现在得到了一个演示应用程序,你可以向别人演示。所以,所有参与的人,无论是 DevOps、数据科学,现在都拥有只有在 IDE 中才有的酷工具,它们直接在 Slack 中可用,然后是短期到长期。这是一个你可能想为整个仓库做的事情。>> 是的。>> 意思是,嘿,我需要你修复所有可访问性错误。现实世界的例子发生了,你会得到一千个可访问性错误。>> 是的。你当然可以有一个人,点击,你知道,是的,在聊天框中继续,或者我们启动 10 个开发代理。>> 而不是一千个,每个代理将处理一百个,对吧?所以,我们正在并行化事物,并且我们谈论的许多关于并行化或拥有主管代理以及类似 Map Reduce 协议的事情都将能够发生在代理身上。所以,它真的变成了,我不能仅仅把它看作是短期的,这件事可能需要 50 个小时才能完成所有这些页面,以及整个开发测试生命周期,然后我回来看看,好的,它在这里,现在它准备好合并了,而且我们知道,我们已经测试了质量。所以,这三件事,我们正在我们的会议中展示 Slack 代理的演示。>> 好的。是的。我认为世界正在从,你知道,我只是坐在电脑上,看着代码生成,到更多的代理,我分配一堆任务给代理,然后我离开去看 Netflix 或者其他什么,然后我回来,希望工作已经完成,我可以审查工作。>> 是的。没错。而且,这可能不是每个场景的最佳选择,但有很多场景可以。而且,我们真正要做的就是确定我们希望人类在哪里发挥最大的作用。这就是像涅槃一样。你把时间花在优化人类时间上,而不是其他任何事情上。那些可访问性错误,我们可以找到方法来验证它们本身,并拥有自我修复系统,而不是核心部分,我们希望工程师在哪里花费时间,这才是我们真正要优化的。>> 是的。因为工程师不想花时间做那些手动的事情,那些只是脑力劳动的事情。>> 是的。没错。哦,我需要复制粘贴并构建 25 个这样的东西。哦,这会很糟糕。>> 对。所以,任何我们可以做的来优化这一点。另一个关键是个人应用程序。好的。>> 所以,你和我都在 vibe 编码应用程序。很多时候,我们以前会构建一个 Excel 电子表格来玩东西或回答简单的问题。现在,我们将能够构建更大型的应用程序,仅供个人使用。也许是为了理解一个问题,实验,将一些东西放入 Jupyter Notebook,可视化我们以前无法做到的事情,或者只是问一些问题,这只是我们以前没见过的另一类应用程序,因为它已经民主化到那个程度了。>> 太棒了。是的,我认为这是一个很好的结束点。我认为,也许外面有一些关于 AI 代理会抢走我们工作的担忧,但希望乐观的观点是,它们只会抢走那些无聊的事情,然后所有人类都可以再次专注于有趣的事情。是的。AI 的全部意义在于优化你的工程时间的最佳利用。>> 没错。没错。>> 没错。>> 所以,最后一个问题。>> 那么,人们可以在哪里找到你,以及人们可以在哪里尝试 agent force vibes?>> 好问题。所以,去,如果你还在这样做,就去谷歌搜索,或者你可以问,去 salesforce.com 并询问我们的帮助代理,它会带你到我们的 agent force vibes 页面和我们的博客文章。我们有动手项目,所以你可以在家玩这个,并开始体验你的 hands-on vibes。>> 太棒了。是的。>> 而且完全免费。>> 太棒了。非常兴奋。我现在就回家去试试。是的。是的。>> 太棒了。丹,非常感谢这次谈话。>> 是的,很荣幸。谢谢。