📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

How to Make Claude Code Better Every Time You Use It (50 Min Tutorial) | Kieran Klaassen

Peter Yang53:52

Transcription

人工智能可以学习,这真的很酷。所以,如果你投入时间让 AI 学习你喜欢的东西,并学习它做错了什么,它下次就不会再犯了。美妙之处在于,所有这些东西结合在一起,对我来说就像在讲述一个故事。确保这些学习成果被记录下来,然后下次你创建一个计划时,它们就在那里。它会学习。所以,这不是一个复合式玩法,对吧?它就像一个 QA 团队。基本上,你甚至不需要编写测试。你只需要说,“嘿,随便测试一下 [音乐] 它。”所以如果有什么东西坏了,它可以立即修复,并立即验证它是否已修复。LFG 命令。所以我现在有了这个命令。我们刚才所做的一切,测试、创建视频、创建拉取请求,它只需要运行一个小时就能完成。大家好,今天我非常激动地欢迎 Kieran 回来。Kieran 是 Kora 在 every 的首席技术官,也是我最喜欢的 Cloud Code 高级用户。所以 Kieran 将向我们展示如何进行复合工程,以便每次使用 Cloud Code 时它都会变得更好,他还将向我们展示他精确的 Cloud Code 设置,以管理多个代理以及更多内容。基本上,我将在这一集中深入了解他。所以欢迎 Kieran。>> 非常感谢。我知道上次我非常享受和你交谈,我非常兴奋地向大家展示和分享我学到的东西,因为 Cloud Code 正在普及。现在有很多人在使用它。>> 是的。感觉现在社交媒体上的一半对话都是关于 Cloud 的。所以是的。>> 是的。我们就像我们身处一个泡沫中,但我觉得这个泡沫正在一点点膨胀,我喜欢这一点,因为更多的人可以创造,这太棒了。>> 好的。所以我将分享这个幻灯片。好的。好的。所以我我做了这个 [笑声] 我我做了这个关于复合工程的简陋幻灯片,基于你写的东西,你想你想先从高层次上讲一下这个东西,然后我们再深入到实际的 Cloud Code 吗?是的。是的。绝对。所以复合工程是一种哲学,我发明它的时候是在构建 Kora,它只是我从使用 AI 中学到的最佳实践,尤其是这始于一年多前 Cloud Code 发布时,因为有些东西有效,有些东西无效,这很令人沮丧,所以我建立了一种哲学,我很快就发现的是,AI 可以学习,这很酷。所以,如果你投入时间让 AI 学习你喜欢的东西,并学习它做错了什么,它下次就不会再犯了。这就是复合工程的种子。嗯,是的,复合工程哲学有四个步骤,首先是规划,然后是执行,也就是根据计划完成工作。然后是评估和审查,确保完成的工作是正确的。然后从那个过程中吸取教训并将其编入代码。这就是复合的方面。所以要点是,例如,如果你制定了一个计划,完成了工作,然后评估它是否好。它永远不会完全正确。总会有反馈或一些不完全正确的事情,或者你学到了一些东西。所以要确保这些学习成果被记录下来,然后下次你创建一个计划时,它就在那里。它学习了。所以,这就是循环的哲学,我还有一个插件,我们稍后会讲到。所以它是一种哲学。它也是我构建的一个插件,你可以使用它,是的,这就是所有东西的高层次概述。>> 太棒了。>> 让我向你展示一下这样的流程是什么样的。所以四个步骤。所以首先,如果你想跟上,你也可以自己做。>> 嗯。>> 我在这里打开了我的终端。它是 Warp。我正在以绕过权限模式运行 Cloud Code。所以,危险地跳过。我喜欢这样。 [笑声] 如果你 是的,我们会我们会讲到何时使用什么。我就是这样运行它的。我只是想让事情尽可能快地进行。如果你想跟上,这是仓库。所以,你运行这些命令。你需要添加复合工程插件,然后安装它。然后你就会拥有和我一样的流程。所以,你可以在你自己的项目里做这个,然后跟上。所以第一件事是我们正在构建什么,我正在进行一项让 Kora 代理原生化的任务,是的,Kora 是我的产品。它是一个电子邮件助手,每天两次筛选你的收件箱并进行简报,产品中还有一个助手,代理原生的想法是,应用程序中的助手或代理可以做用户能做的完全相同的事情。所以,例如,如果你可以去应用程序中的设置,然后当你和代理交谈并说你能否更改这些设置时,代理应该能够做完全相同的事情。所以,我正在努力达到那个水平,因为这非常重要,因为它使代理能够想出新的工作方式,而且它受到了 Cloud Code 如何工作的启发,就像 Cloud Code 可以访问你的计算机并可以做任何事情一样,我们发现了所有这些很酷的流程和我们可以突然用 Cloud 做的事情,这很相似,你可以把同样的精神带到你的应用程序中。所以我们要做的就是规划,它被称为工作流程计划,因为计划现在被 Cloud Code 的内部系统占用了。所以是工作流程计划,你给出一个你想要做的描述,我将使用 Monologue,这是一个语音转文本应用程序。我不太喜欢打字,所以我们会这样做。我将解释我想要什么。我想实现与我们在设置中可以做的所有事情的功能对等。所以用户可以在任何视图中进行的任何设置。我想确保 Kora 助手可以更改与用户相同的事情。所以确保我们首先查找用户可以做的一切,然后确保我们看到助手如何做到这一点。所以通过工具,通过任何我们想要的方式,你可以查看代理原生技能来学习如何最好地做到这一点。所以我在这里给出一些方向,它现在将启动,我们可以看看它将做什么以及为什么它会这样做。所以到目前为止有什么问题吗,还是这个节目由 Granola 提供。如果你一直在开会,你知道现场做笔记和之后清理笔记有多么辛苦。这就是为什么我喜欢 Granola,市场上最好的 AI 会议笔记应用程序。这是我如何使用它的。Granola 会在会议期间自动做笔记。我也可以添加自己的笔记。会议结束后,我使用 Granola 配方来提取 [音乐] 清晰的要点和下一步,以我想要的精确格式。然后我可以直接在 Slack 中与我的同事分享笔记,甚至让 Granola 自动分享笔记。老实说,在我使用的所有 AI 应用中,Granola 是最节省我时间的。立即访问 granola.ai/AI/peter 尝试,并使用代码 Peter 注册即可获得三个月免费。那就是 granola.ai/peter。现在回到我们的节目。我真的很想知道它在幕后做什么,它是在制作片段还是在查看代码?>> 是的。>> 是的。所以所以你在不同的地方听到过这个,比如你有一个基于规范的开发,你有一个任务大师,就像所有这些东西,你有一个规划模式,这基本上是 Cloud 的规划模式,但它更强大一些。它会使用更多的令牌,但也会做得更好的研究,而且这里的重点是,它会查看你当前的代码,所以它会以你已经做的事情为基础。所以如果存在模式,它会捕捉到这些模式。它会在网上查找,它会搜索关于这个的文章,以及最佳实践是什么。所以这是其他人认为好的,这也很方便,它会查看你使用的框架。所以如果你使用特定的框架或库,它会查找,它还会检查你使用的版本。所以使用正确的版本也很重要,因为否则可能会出现不匹配。所以只是确保一切都正确。所以这些是前三个代理,这些代理作为子代理运行,这意味着上下文将与主线程分开。而且你可以看到它已经有 56,000 个令牌,77,000 个令牌,[鼻塞声] 35。所以它不是便宜的令牌,但这不是重点。重点是>> 在最高计划上。是的。>> 是的。你必须在最高计划上,否则你会用完。但最高计划也不贵。如果这是你的工作,如果你通过写代码赚钱,是的,这显然物有所值,而且如果你想体验未来会是什么样子,并真正挑战自己,比如,嘿,它会是什么样子?>> 嗯,是的,你应该挑战自己,因为,是的,就像我们在 every 的 CEO Dan 总是会稍微推动我一下,因为我会说,“是的,但我们需要考虑成本,如果我们直接切换到新模型,成本将是数十万美元。”他说>> 是的,但我们也应该知道我们现在能做什么,如果我们不知道,我们就只能停留在过去,所以这对你作为一名开发者来说也是如此,如果你觉得我非常害怕,我想看看这里发生了什么,我想感受一下发生了什么,我想看看代码,放开一点,只是尝试一下,如果你看不到这里发生了什么,感觉如何,因为这也是一个完全的思维转变。>> 我意思是,平均开发者的每小时成本是多少?你知道 200 美元 100 美元会自己回本。>> 根本不。根本不。是的。>> 是的。>> 是的。所以>> 没错。是的。所以,就像目标,所以目标是得到一个非常好的计划,然后我们作为人类来查看计划。但显然,长远目标是你说一句话,它就完成了。所以这只是朝着一个我们知道并信任某些步骤和流程的地方迈进。>> 是的。>> 所以,所以最后我会分享另一个命令,它一次性完成所有事情。所以你甚至不需要理解所有步骤是什么。因为我认为这会很有趣,而且很快就会非常有帮助。但如果你是一名开发者,你想知道这里发生了什么,因为你想调整它。你想自己做。你当然可以使用我的插件,但是>> 甚至更好的是使用我的插件,看看什么有效,什么无效,然后制作你自己的版本,或者制作你自己的流程,这样你就能真正理解发生了什么。一旦你做到了,你就可以放手了。是的。>> 是的。我喜欢最佳实践研究员和框架研究员,因为我认为如果你只在 Cloud Code 中使用计划模式,它不会,它会查看你的代码库,但它可能不会做其他事情,对吧?>> 是的,这就像,这对于小事情来说很好,我使用计划模式,而且 Opus 4.5 在做事情方面相当不错。>> 但这只是,它只是好一点点,但我希望,在某个时候,Boris 会直接把它复制到 Cloud Code 中,我们就会一切顺利。所以,所以我的目标不是有一个系统,理想情况下,我会删除整个流程,一切都已经正常工作了。但>> 我意思是 Boris 基本上就是在复制,伙计,他已经复制了你的复合工程,所以 [笑声]>> 他受到启发。>> 他受到启发。是的。>> 他没有注意到。所以>> 是的。是的。是的。是的。我知道他受到启发,但我也喜欢,嗯>> 是的。但是他正在做,他正在让人们弄清楚他们应该构建什么,然后他们正在构建它,这真的很棒。>> Boris 有趣的是,他去度假了一周左右,然后他发布了大约 50 个 PR,对吧?在 Twitter 上。 [笑声] 所以我只是想知道他是否真的在工作,他发布了多少?你如何跟踪?>> 至少 100% 是他写的 AI。所以,我同意,我认为对我来说,现在也是 100%,而且是的,我过去三个月都没有打开过 Cursor,除了查看文本文件。是的。>> 好的。在我们等待的时候,这是什么终端?你用的是什么终端应用程序?>> 是的,我用 Warp。我喜欢 Warp,因为>> 是的,Warp,它也是基于 AI 的终端。这很方便,如果你做一些像 Git 的事情,它不起作用,你说“随便修复一下”,然后它也会修复它。所以,我喜欢 Warp,我也喜欢你可以轻松地分割窗口。>> 是的。>> 这是我最喜欢的。所以,好的,让我们看看,他做了这个,他正在查看代理原生架构技能。所以这是我让他在这里看的东西。我说,嘿,你能检查一下代理原生技能吗?>> 因为我们有这个,我们试图做的是,如果有重要的特定信息,我们会将其提炼成技能,这意味着你可以把很多信息放在一个地方,所以,例如,这个,让我们在这里打开它,代理原生架构,这是一个关于如何构建此类应用程序的非常详尽的长文档。这里也有很多参考资料。如果你把所有这些都加载到上下文中,你就会耗尽你的上下文。但太多了。>> 太多了。但能够访问这一点也很好。所以技能就是这样,它就像一种即时上下文。所以,每当你需要它时,它就会想,“哦,我现在需要它吗?”它会拉入那个技能文件,然后如果它还需要更多,它可以查看里面的资源,或者你可以运行脚本。所以这是围绕特定主题或工具或技能来放置东西的方式,它可以用来。所以,我喜欢这一点,你可以创建你自己的技能,你可以引用它们,这是让复合工程插件成为你自己的方式,你拥有你的技能。例如,如果你做 iOS 开发,或者你有一个 Go CLI 工具,比如,我的插件里没有这些,但你可以拥有你的技能,复合工程插件也会读取你的技能,也会应用它们。所以,这是让它成为你自己的方式。嗯,是的,我绝对可以推荐它。>> 而且而且而且你基本上,你显然不是手写技能,对吧?就像你基本上得到,不,不,技能。不。是的。>> 有一个技能,创建代理技能,在复合工程插件中也有。我想还有其他一些,但这是我拥有的那个。我想还有一些来自 Anthropic 本身。所以,是的,不要手写技能。不,但要确保阅读它们并审查它们,看看它们是否有意义,是否好。好的。所以它做到了,现在正在进行规范流程分析器。所以,我引入了这个,因为我注意到它有时会放大很多东西,它显示,是的,它会弄清楚我需要这个插件和这个页面,它被放大到如此之大,以至于它忘记了它是更大图景的一部分,有时它会忘记一个完整的页面或东西,或者它没有连接到流程,或者类似的东西。所以规范流程分析器就像,想象你是一个具有特定角色和经历的用户,看看我们是否错过了什么?在规划中我们是否错过了什么?这非常,是的,非常好。所以,这是最后一步,然后它会写下计划,然后你可以做其他事情。所以,让我们看看它在这里做什么,计划是什么。好的,它已经完成了计划的编写,这很棒。它会问我接下来做什么。所以,这里有几件事我们可以做。我可以打开编辑器中的计划,这意味着让我们看看它。我喜欢使用编辑器或查看器,因为我喜欢对我要阅读的内容的设计感觉很好。>> 所以,我们将这样做。但还有另一个选项,深化计划,这就像它只是疯狂地进行。它加载所有东西。它可以加载并审查计划,做任何你拥有的技能,它只是疯狂地进行。这就像你在 VS Code 中一样,这很棒。你也可以从一开始就触发它,但它只是疯狂地消耗令牌,做它想做的一切。而且当你使用 VS Code 时这很棒,因为真的没有什么可失去的,而且你还有令牌。所以,是的,为什么不呢?>> 是的,为什么不呢?是的。>> 所以,下一个是计划审查。如果你想审查计划,而不是手动审查,而是让代理来审查,这很方便。所以,如果你不想阅读它,或者你可以说“ YOLO 开始工作”,让我们通常我会打开计划,这也很棒,你可以与你的团队,与其他人分享。你可以要求反馈,就像 RFC 一样,无论你想要什么。>> 嗯。>> 我使用一个应用程序来阅读我的 Markdown,我喜欢这样,因为它看起来很漂亮,而不是在终端里。它只是更令人愉悦地查看非常枯燥的计划和规范以及其他东西。如果它看起来更好,我就会更喜欢它,它只是更好。所以,我有一个应用程序,我>> 你用过吗?>> 不,这是 Typora,但我已经有人联系我说他们用过免费版本。这大约是 10 美元,所以不多,但好的。>> 主题很时髦。所以,如果人们想要>> 好的。好的。时髦的,时髦的,或者类似的东西。所以,助手功能对等,启用 Kora 助手修改所有设置。所以分析,它说嘿,好的,所以一般,所以用户添加不存在。类别重新排序不存在,但大部分简报设置存在,订阅不存在,令牌也不存在。所以,实际上我们做得很好。我们只需要一般用户添加。>> 嗯。>> 嗯,好的,所以,等等,安全。所以,这些来自不同的地方。计划总是有不同的角度。所以,简报是一个。它做,我喜欢有一个代码示例,比如伪代码,因为我可以看到,如果我看到任何危险信号,我就可以感觉到它是否完全错误。但>> 它看起来,它看起来相当不错。所以,所以,正常运行时间。好的。所以它有不同的>> 不同的工具。所以,我的问题是,现在,所以,我的,我是一名工程师。所以,如果你不是工程师,你可以说,我不知道这是什么,然后去做。这完全没问题。我认为这是件好事。但如果你是一名工程师并且有自己的想法,这就是你可以复合或迭代的点。所以,让我们试试。因为,我,我看到所有这些工具,但我认为这些工具太多了。我们不能以某种方式整合一下吗?所以,所以,让我们看看。好的,我看到你创建和添加了许多单独的工具。有没有一种方法可以创建一个工具,可以做多个设置,这样它就不那么沉重了?你觉得呢?是的。所以,让我们看看它做什么。所以,就像>> 而且在这里这样做很重要,因为如果你已经开始实施这个,而且你已经过去了一个小时,或者半个小时,或者更多的令牌,就很难退一步说不,或者重写,或者你拥有所有这些东西。所以,如果你这样做,如果你花时间,最好在这里。所以>> 好的,所以好处,是的,当然,我们可以做一个更新设置工具,我想做的是,我想复合这些知识,因为我认为这更好。所以,我想说复合,砰。所以我将运行复合流程,它将从这里的上下文理解它是什么>> 然后它将开始创建一些关于类似这样的文档。所以下次它开始编写计划时,它将引入这些信息,并理想情况下永远不会再犯这个错误。>> 就像,就像,它要把说明写在哪里?只是默认的吗?>> 是的。>> 是的。所以有一个文档目录,它会将学习成果组织在文档目录中,然后 Cloud 在规划时会查找它认为可能相关的内容。所以顶部有一些前端内容,所以你也可以按关键词搜索。但它也有更新你的 Cloud MD 文件的选项。做复合工程的一种非常简单的方法就是说,你能更新我的 Cloud MD 文件吗?所以,如果你没有插件,并且你想复合,那就说,“嘿,不要再犯这个错误了,把它添加到 Cloud MD。”这是最简单的方法。但>> 是的,>> 这基本上就是提示,对吧?你只是更新,因为每次都会插入那个东西。>> 是的,没错。所以,你 Cloud MD 文件中的任何内容都将始终包含在提示中。所以它会直接遵循。所以,如果你想从一个非常轻的版本开始,如果你看到它犯了一个错误,就说“嘿,把它添加到 Cloud MD”。我实际上也一直这样做,因为有时它是一些通用的知识,不是非常具体的。就像,嘿,服务器是如何启动的,或者它试图以一种奇怪的方式做某事,而且它应该永远不要这样做,然后我会说“把它存储到 Cloud MD”,我不会使用复合流程。所以,所以,是的,这不是一个或另一个。你可以一起使用所有东西。它是 Cloud Code,并且所有东西都能协同工作。所以>> 明白了>> 是的,你可以在这里看到它正在将其存储在架构决策中,在解决方案和文档中,它也可用。而且它循环了我已经拥有的其他东西。所以,如果它相关,它会附加在那里,它会整合它。而且美妙之处在于,这些只是你仓库中的文件,Cloud 会读取你仓库中的文件,并且在这方面做得很好。所以,是的,是的。>> 我采访了另一个人,她有>> 她为 Cloud 准备了详尽的文档>> 她有时甚至不看 Cloud 更新了什么。她只是相信 Cloud 会为她更新文档。>> 是的。>> 我也这样做。是的。我喜欢,我,是的。我,我,是的。所以,这是工程学中的旧范式与新范式。是的,你有一些不使用 AI 的老派工程师,但让我们谈谈那些使用 AI 在 Cursor 或类似的东西中编写代码的工程师,但他们都想看到代码。如果有什么变化,他们会说“我最好看到变化并批准每一项变化”,而且有一种新的浪潮,比如我至少在 and,还有很多人,但它有点更像是“我信任你”。我不需要看所有的代码。我不需要读所有的代码,但我有系统和>> 嗯,我与 AI 合作的方式,我信任它们,通过这种方式,我可以让 AI 做事情,我认为文档也是如此。>> 是的,文档不影响产品。所以它只是文档。是的。所以>> 是的,它是文档。但我得说,即使对于产品,我也这样做,比如我确实看了 Kora 的所有代码,比如,因为有成千上万的人在使用它,但>> 如果我自己写代码,或者一些实验性的东西,或者 Kora 中一个我现在只是为了实验而写的部分,我不会一直看所有的代码,因为那不是重点,如果你>> 那会破坏气氛,伙计,如果你一直看所有的代码。我知道这会破坏气氛,而且复合工程的全部意义在于确保,如果你看到代码并发现了一些东西,你就确保>> 你会教它,这样下次你就不用看代码了。所以它是在捕捉>> 无论你如何工作。>> 是的。>> 嗯,并确保>> 它一直都在工作。好的。所以,现在我们已经复合了,是的,我们可以工作了。所以,我们将这样做。所以,它已经复合了。嗯,现在下一步是执行工作,也就是让它尽情发挥。嗯>> 而且显然它现在已经用单个工具调用改变了计划。更新设置现在可以进行任意多次迭代,显然,但我现在有信心,是的,这就是我想要的方式。>> 好的。>> 所以,如果你像我一样非常懒惰,你甚至不会打包或创建新的会话。但也许那样更好。所以,让我们做更好的方式。所以,让我们做新的。所以,我们清除会话,我们有清晰的>> 清晰的上下文。>> 是的,>> 清晰的上下文,因为所有内容都已记录在计划中。所以,我们进行工作流程工作,然后我们粘贴计划。我使用 Markdown,但你不需要使用 Markdown。>> 是的。>> 是的。你可以使用 GitHub 或 Linear 或任何你想要的东西。如果你安装了 GitHub CLI,它会从 GitHub 拉取,如果你有 Linear 集成,它会从那里拉取。所以,你可以找到任何你想居住的地方。所以,如果你是一个更注重 GitHub 的商店或工程师,或者无论什么,那么>> 就去做吧。>> 所以,这个工作步骤与你说的“让它尽情发挥”或“去构建它”有什么区别?>> 是的。你问了几个问题?>> 是的。是的。是的。>> 是的。所以,所以,是的,就像,显然你可以说“随便做”之类的。但一开始有一件事,尤其是在这里有一个新的、干净的上下文时,它会弄清楚,如果有什么东西丢失了,因为有时东西会丢失。所以,现在它说我有一些问题。所以,计划显示在交易中更新用户和帐户。如果只有姓名或时间发生了变化,是否仍然需要进行交易,或者它也改变了?嗯,那,我的意思是,这是个好问题,我们在研究中没有真正回答它。是的,就像有时会有一些好问题,但它不是超级明确的,你错过了一些东西,或者它删除了什么,但>> 一般来说,它,是的,它只是继续,但它现在确实制定了一个计划来解决这个问题,所以它比“随便做”要多一点,它确实构建了一个计划来如何做到这一点,让我们走吧,我只会说“让我们走吧,你来解决,随便做”。>> 那有时是可以的,而且这里有这些问题对上下文很有好处,因为它会开始思考这些事情,以及为什么它是最好的。所以,这就是为什么这就像思考模式,基本上,但就像我们推动它去思考,或者可能出错的事情,然后它会想,“哦,那可能会出错”,然后它开始思考如何才能正确。所以,这就像传统的提示工程,它为你工作,如果你>> 是的,有这些令牌。>> 伙计,这真的感觉就像,是的,这真的感觉就像你是一个技术主管或一个项目经理,管理着这个工程师,你就像在开会一样,对吧?你就像在审查他的计划。>> 是的,绝对。>> 指导。>> 是的。>> 是的。是的。是的。我,我,我上次也谈过,但就像,就像技能一样,你需要技术主管的技能和管理技能。因为你在管理这些代理,而这实际上感觉非常动手,我们仍然需要做所有这些事情。>> 是的,>> 我认为未来,我们非常接近,你只需要做一件事,然后你就会得到最终结果,而且它相当不错。而且显然你需要做一段时间的复合循环。所以,你需要训练它,但这就像给你的团队中的一个人入职一样。你需要让他们入职,让他们熟悉你的代码。但一旦完成,是的,你就可以让他们放手去做,真正地,是的,真正地让他们去跑,然后做更多端到端的事情。>> 好的,看起来它快完成了。它已经在运行测试了。>> 是的,就像,就是这样。它完成了功能,并且正在编写测试。所以,这真的很酷。而且,而且,而且之后,Opus 4.5 最酷的事情之一就是测试,因为它非常擅长使用 Playwright,并且非常擅长理解流程。所以,这个 [鼻塞声] 我喜欢,以前我仍然需要手动测试东西。就像,点击东西,显然编写测试它很擅长,但现在我们可以让 Playwright 工作。它从来没有真正很好地工作过,但有了 Opus 4.5,我认为 Playwright 真的有效。它不是超级快,但它工作得很好。>> 而且,Playwright 对于观众来说,基本上就像一个 MCP,让 Claude 看到浏览器,对吧?看到浏览器。是的。是的。它只是一个 Chrome,就像你将 Chrome 连接到 Cloud Code,然后它就可以控制你的 Chrome 窗口。Cloud Code 还有一个 Chrome 插件,你也可以使用,而且它相当不错。但对我来说,我更喜欢 Playwright,因为,是的,你可以录制屏幕,你可以截屏,我可以做这些事情,比如我>> 录制整个流程的整个视频,并自动将其添加到拉取请求中。所以,我只是更喜欢 Playwright,但无论什么对你有效,如果你喜欢使用其他东西,那么>> 所以,所以,基本上,所以,基本上,要使用 Playwright,你只需要输入一行来安装它,对吧?然后你只需要运行 Playwright test。它现在正在做什么?它正在加载一个浏览器,并在产品中进行操作。>> 是的。所以,它仍然,实际上,它仍然在修复测试,但之后我们可以只是,是的,好的,假设功能已完成,这些>> 我认为它会起作用,因为这些只是它为特定用例编写的测试,但>> 是的,我们不需要>> 谁需要它?我需要测试。>> 但只是为了我们,我们非常>> 嗯,我们想看到它,我们太兴奋了。>> 所以你运行 Playwright test,这个命令会做什么?这也是复合工程插件的一部分。它会写一个计划,比如这里引入了哪些功能,它只是继续。好的,很好。是的,它会写一个计划,比如要测试什么,有什么新东西,有什么被引入。然后,嗯,这里,让我们暂时跳过测试,然后进行测试和播放。我们稍后会回到这一点。所以,你可以看到 Opus 在遵循指示方面有多好,我们有 Rolf Wigum 循环的东西在病毒式传播,但我还没看到它有多大用处,因为它相当擅长遵循>> 指示。好的,来了。它很有趣,因为它现在在 Dev Plz 上。>> 好的,所以,是的,所以我们在这里,现在它将控制屏幕。所以,我将稍微移动一下。是的,它正在进行。所以,它正在控制它。它正在截屏,它可以做所有这些。没有手动操作,看,不是我。它只是在测试功能。>> 好的。所以,它有点像一个,它有点像一个浏览器使用东西,对吧?它有点>> 它是一个浏览器使用东西。但美妙之处在于,这是缺失的一环。就像你当然有系统或集成测试,但这是最终的测试,看看某样东西是否有效。就像,它是否有效?而且它非常简单,你甚至不需要编写测试,而且在你的 CI 或任何地方都没有开销。你只需要说“嘿,随便测试一下”。基本上就像一个 QA 团队。>> 而且它非常棒,而且你可以说“随便做一小时”,想想所有可能出错的事情,然后真正地用力去踢,试着把它弄坏,它会试着去做。而且美妙之处在于它在 Cloud Code 中。所以,如果有什么东西坏了,它可以立即修复,并立即验证它是否已修复。所以>> 使用这个的迭代循环非常非常酷,也非常强大,而且>> 如果有什么东西坏了,它也可以检查并看到所有的控制台错误等等。>> 是的。是的。它可以控制整个浏览器。所以它可以点击元素,它可以运行 JavaScript,它可以读取控制台日志。所以,基本上,你作为一名工程师在 Chrome 中可以做所有事情。所以,它真的很酷,而且还有一个附加的东西是 Kora 连接到 Gmail,我正在做一个功能,我刚刚发布了电子邮件签名和草稿,要看它是否有效,你需要去 Gmail,你如何编写一个系统集成测试来访问 Gmail?你不会那样做。但有了 Playwright,我就可以用我的 Gmail 帐户登录,然后说,“嘿,我用我的 Gmail 帐户登录了。看看它是否有效。”然后它就去了 Gmail,就像一个浏览器一样。所以,看到它工作真是太神奇了。嗯,它奏效了。我们的功能奏效了。>> 是的。>> 嗯,这很酷。嗯,所以这是一个很好的状态,但我的做法是,确保没有安全风险,或者没有乱码,或者看起来可以更简单,总有可以做得更好的事情。>> 而且,审查命令,这是最后一个命令,或者它是,它是我们还没有使用的命令,我们已经使用了复合>> 这是评估阶段,对吧?>> 是的,是评估阶段。是的。 [鼻塞声] 阶段,它从某些角度运行审查,这是我的角度。所以,我有一个代理,它有我的工作方式。我添加了一个安全人员、架构师、代码简洁性审查员,这也是一个非常好的。嗯,就像>> 是的,Boris 也有一个,他今天早上在 X 上分享了。>> 所以 Anthropic 也这样做,嗯,还有一个审查它是否足够代理原生,DHH 是 Reels 的创造者,他只是,他有非常主观的观点,这总是很有趣,而且美妙之处在于所有这些东西结合在一起,对我来说就像一个故事。它们是出来的优先事项,它们不会立即修复,但我被要求说出我想要什么,然后说,“是的,这听起来不错,这听起来不错,这听听起来不好。”所以,让我们>> 完成这些,然后>> 是的。因为否则,如果你只是说,就像,你知道,清理 AI 的乱码代码,它就会开始改变代码,对吧?但这个。>> 是的。没错。>> 是的。是的。是的,因为我们喜欢,我们现在处于一个测试了所有东西的阶段,我们审查了计划,而且很容易进入一个增加范围或删除东西的方向,而且你需要小心,你现在不会改变太多,但你想要>> 嗯,就像非常有知识的人或代理或事物从某个角度来看待它。>> 太棒了。>> 是的。就像这是我们之前,我们有一个非常广泛的,把它带回一个计划,一个非常集中的计划,我们让那个集中的计划被处理,因为它很集中,它坚持那个计划,但现在我们需要确保我们没有错过任何东西,所以我们又变得广泛了,所以有进出,从不同的角度看,这很有效。>> 是的,所以>> 它把所有东西都编译成,它有一些东西。它现在正在做的是创建一个待办事项目录。所以,太棒了,我们没有任何 P1,这很棒。P1 是你永远不应该>> 永远不要合并这个,因为你有安全漏洞。我们有 P2,它>> 有时很重要,P3 是你可以忽略的,但是的,很好。>> 而且它正在把它写到我的待办事项中。我有一个待办事项文件夹,它正在写在那里。嗯,你也可以看到我这里有一个状态行,我可以看到有多少待办事项正在等待。嗯,但我喜欢做的是,我不喜欢读很多东西。我喜欢让 AI 引导我完成要做的事情,或者如何思考它。所以,我有一个命令叫做 triage,triage 会以一种对话的方式引导我完成所有发现,然后问我想要做什么,然后它做出决定,然后,是的,之后我只需要运行一个命令来解决所有问题,然后创建一个 PR,然后我们就完成了。所以,所以,例如,这是添加名称长度验证,我的意思是,好的,当然,让我们去做吧,这就像小事情,但就像那样,没关系,它会崩溃,因为它,它基于数据库,但这很好,好的,我们去做吧,我只是带你快速看一下>> 嗯,嗯,就像对我来说,构建所有这些子代理,你为复合工程的每个步骤都有,需要永远,伙计,所以,你把它放在 GitHub 上免费提供,这太棒了,我基本上拿了 Kieran 的东西,然后自己构建。这花了我一年时间,所以,是的,嗯,是的,这需要很长时间。但我确实意识到有些人想要他们自己的,他们更有灵感,你可以选择其中一个。但美妙之处在于,你不需要使用整个系统。是的。嗯>> 你可以只说我使用计划阶段,然后我手动编写所有代码,因为我喜欢写代码。当然。或者>> 它都是由斜杠命令触发的,对吧?就像所有>> 它是所有斜杠命令。所以,你不需要使用所有这些。>> 所以,是的,所以它将这些标记为就绪。然后,嗯,现在我满意了,例如,然后说“resolve to-do parallel”,就这样。它将处理所有这些事情。它创建了一个依赖图,以及它认为如何解决它,然后子代理将处理所有待办事项,然后推送所有东西,然后,是的,然后我们创建 PR,然后我们就完成了。而且>> 而且整个流程,就像,就像,花了多长时间?它非常快,而且,是的,非常酷。所以>> 是的,>> 我想展示的一件事,如果所有这些都只是一个命令怎么办。所以,我现在有一个命令,我 [笑声] 昨天尝试了,是 LFG 命令,基本上我们刚才所做的一切。我只需要在一个命令中说,你能把所有这些都做完吗?而且我一开始就有 Rolf Wigum 循环,基本上它做了我们所做的一切,再加上一点点。以及测试、创建视频、创建拉取请求,然后它就运行一个小时,它就完成了。所以你可以>> 你是什么意思?它创建了一个营销视频还是什么?>> 是的。是的。营销视频、产品营销、详细的变更日志,一切。所以,它就像这个 LFG at brief to CLI,或者任何你想要的东西,然后它就去做了。所以,我认为我们非常接近了。你看到很多人在做代理编排之类的事情,我认为要正确地做到代理编排,你需要一个像复合工程这样的系统,或者你拥有的任何东西,因为你需要确保,是的,它就像那个线束加上你自己的线束,所有>> 因为你在这里设置了所有这些,所以现在它让你的生活变得更容易了。>> 这就是它。是的。>> 好的,伙计。让我问你一些快速的问题。让我们从权限问题开始。所以,就像我最讨厌的事情之一就是它太烦人了,它一直在问我批准权限。>> 是的。>> 所以,基本上,所以,也许你可以退出 Cloud Code,然后,然后展示一下,你只需要输入 CC,然后危险地跳过权限。是这样吗?>> 是的。我有一个别名。所以我所做的是,我输入 CC>> 但那是什么意思?只是一个别名>> 哦,为了所有,为了完整的东西。明白了。>> 是的。它是,是的。所以,它只是叫做“危险地跳过权限”。所以,如果你进入这种模式,>> 是的,>> 它永远不会问你任何事情。它只会继续。这对于某些流程来说很好,比如你喜欢,如果你是一个系统,这样工作更好,因为它只是继续,因为检查不是在中间。检查是在你做拉取请求或合并代码时。所以,只要确保,如果你这样做,不要和它分享你的 SSH 密钥,它可以删除你的生产数据。所以,只要确保你的沙箱或你工作的电脑是安全的,因为它能做你所能做的一切。>> 嗯,但它不会这样做。技术上来说,它可以,但它实际上不会这样做。但你也可以开始批准事情。所以,如果你不想这样做,你只需要使用 Cloud,然后你说“把它添加到权限”,它就会记住下次,这完全没问题。它只是在第一周很痛苦,但之后就不会了。>> 是的。有一个设置文件之类的,对吧?或者你可以添加很多权限。>> 是的。>> 是的。它会把它添加到你的仓库,或者无论你如何设置它。那里有很多灵活性。是的。>> 但我认为在实践中,我认为 Opus 足够聪明,不会随意删除文件夹。所以,就像>> 哦,是的。就像 Opus 不会做愚蠢的事情。不,它会做聪明的事情。它不会做它不应该做的事情,比如“哦,删除了我的数据库故事 [笑声]>> 就像,它会发生,但我没有

我认为这是 Opus 4.5。>> 好的,那我问你另一个问题。所以你只是展示了 LG 的方式,然后你让它工作了一个小时,对吧?那么你首选的流程是什么?你是通过电话也给它下达指令吗?你使用的是 Cloth Code 应用,还是更喜欢哪种流程?嗯,是的,所以,我,所以一个很酷的事情,很多人其实不知道,那就是如果你在 Cloth Code 中,你可以输入百分号。>> 嗯哼。>> 这将执行你在这里做的任何事情。所以你可以说工作流程计划,嗯>> 推送,它会推送到后台。>> 是的。好的。所以如果你,如果你安装了,出于某种原因,我现在没有安装它,但它会将其推送到后台,并将其推送到网络上的 Cloth Code。所以你可以在手机上继续对话。所以在这里,你可以看到我有 Cloth 的 Cloth 应用,你可以看到这里的仓库,我甚至可以在本地工作,这也很酷,但我是在终端中使用的,但它所做的就是它从终端推送,然后你可以在这里拾取它。所以它会推送你之前的所有会话到云端。>> 这真的很酷。>> 是的。>> 而且你还可以继续。所以,例如,我们在这里,在这里你可以看到已创建拉取请求。所以我们成功了。嗯,这里,这是功能,它看起来很棒。>> 是的。>> 所以这是一个功能。但如果你,如果你很匆忙,嗯,嗯,在这里继续测试,因为我们没有完成测试,它会>> 因为这个,所以它应该会转到云应用。>> 是的。是的。所以,所以现在,是的。所以现在它应该在这里开始。>> 是的。所以在这里。好了。哇。所以它在这里的应用中继续。你也可以在手机上这样做。我必须说,Cloth 手机应用不是最好的,而且这里那里都有 bug。>> 但这真的很酷。你也可以反过来,如果你在这里,你可以说在这里打开 CLI,然后你就可以从网络上继续对话并继续下去。哦,所以你只需要输入 AMP 百分号。哦,我真不知道,老兄。是的。>> 没有人知道。是的,没有人知道,但它很,它很 [笑声] 酷。>> 你也可以从这里进行本地主机更改。>> 它会在云端创建一个全新的环境,但它会像,它会有所有的节点和东西。所以,是的,它会,它会正常工作。是的。>> 好的。好的。所以,让我问你另一个问题。所以,我想你已经向我们展示了一点,老兄。就像我认为所有这些关于斜杠命令、子代理、钩子、技能的东西,它有点让人不知所措,伙计。对于那些想学习这些东西的人来说,它让人不知所措。所以,是的,但我认为你的工作流程是使用斜杠命令来触发这些工作流程,然后这些工作流程会调用子代理,对吧?然后也许那些子代理可以调用技能。是这样工作的吗?>> 是的,因为他们,令人困惑的部分是,它们都一样,但略有不同。而且就像,什么时候使用什么,嗯,嗯,以及如何。所以我现在正在触发创建一个视频来展示这有多好,并将其添加到拉取请求中。所以如果有人使用它,我们就让它运行。>> 嗯哼。所以我的想法是,斜杠命令就像你触发事情,比如做这个或做那个,或者就像,它是提交这个,创建拉取请求,或者像你做的任何事情,就像你想控制的事情,就像你说做某事。>> 嗯,而且它的好处是它也可以是代理,因为我的 LG 就像其他 SL 命令列表。所以它也可以是你指示代理调用命令,这也很好。那就是那个,它工作得非常好。子代理主要是如果你想运行某事或做某件专门的事情,而你不需要全部上下文,但你想要一个结果,就像,我只想让某人告诉我,或者某事告诉我答案是什么,或者它有多好,或者有什么不对,而你并不真正关心全部事情,比如审查代理很棒,或者研究代理,因为你不关心它阅读的 30 本书。你只关心答案是什么。所以那时我会选择代理。另外,如果你想并行做事情,比如如果你可以同时做 10 件事,子代理是最佳选择,因为它的工作方式就是这样。>> 嗯,即使你可以做任务,嗯,嗯,你可以触发,令人困惑的部分是你可以手动触发子代理,而且你可以做所有这些事情,但那不是它们被制造的方式。所以基本上,你基本上不会手动触发子代理,对吧?你是通过某种斜杠命令触发的。是这样吗?>> 我从来没有,是的。我从来没有添加过子代理。我从来没有这样做过。不。不。>> 好的,有道理。>> 不,因为我喜欢,斜杠命令就像业务逻辑,或者类似的东西,这就是代理应该如何协同工作,我说现在做这个特定的事情,然后它就会做这件事。>> 嗯,然后你有技能,我们已经谈过了。技能就像,如果,如果有什么,例如,在 nano banana 上生成图像,使用 Gemini API,比如 Cloth 或 Cloth Code 中没有图像生成,但它会很酷,为什么不呢?所以这是一个完美的创建技能的方式,你只需要有一个技能说,嘿,如果你想生成图像,我在这里,加载我,我有一些脚本,它工作得很好。然后你就可以说,我想生成一个图像,然后 Cloth 想,哦,我有一个知道如何生成图像的技能,让我把那些东西放进去。>> 然后突然 Cloth 就知道如何生成图像了,这就像即时>> 上下文,是的,这就像在那个时候注入知识。所以,是的,那就是我使用技能的时候。是的。>> 你知道,老实说,技能触发得不是很好。当我使用 Cloud 应用时,它触发得不是很好。但也许在 Cloud Code 中它会被触发。你只需要非常明确,我真的说,比如使用这个技能来,然后它就会这样做。>> 好的。>> 是的,如果你非常具体,并且还要确保你遵循编写技能的最佳实践。有一些,比如最佳>> 描述应该是什么,因为有一些细微之处,比如你不应该说什么时候调用它,而是说我可以做这个,这个,这个,或者类似的东西,这样它就能更好地匹配。是的。好的。好的,老兄。那么,让我们结束你正在生成的这个视频吧。你将如何生成这个营销视频?你使用的是 Playwright 还是?>> 是的。所以,它,是的,它现在正在使用 Playwright,并且它正在做事情。>> 所以就像屏幕录制。是这样吗?>> 是的,它是屏幕录制,然后将其转换为更小的尺寸,然后上传。它已录制,通常它会上传。嗯,打开视频,然后我们会将其分配给拉取请求。所以我只是在这里展示一下,但它自动制作了一个视频,展示了流程。嗯。>> 太棒了。是的。>> 这真的很方便,比如如果你审查别人的代码,并且你打开一个带有更改截图的拉取请求,有时是之前,之后,以及一个完整的流程视频。这很棒。所以,让我们开始吧。这就是视频。>> 哦,太棒了。他们可以在 Slack 中分享,或者指向>> 是的,正是如此。而且它已上传。有一个,是的。是的。所以很有趣。所以它不总是,让我们看看。它在这里开始,但是>> 你得审查一下。是的,你得审查一下。>> 好的。所以,是的。所以它正在做得很好。得审查一下。但它正在录制视频,而且十次中有九次这都很棒。而且,而且这个功能通常已经有了审查,以及一些之前的测试。所以它,它更顺畅,但它真的很酷,这是一个你可以创建的工件,你可以以任何你想要的方式使用它,你可以以任何你想要的方式使用它,>> 而且只是你的一部分>> 这是你复合工程 GitHub 的一部分吗?>> 是的,它都在复合工程插件中。你可以访问所有这些,>> 这太棒了,老兄。是的。>> 是的。所以,它都在这里。如果你只想使用一个命令,你只需进入命令,你就可以看到,是的,你可以看到这里所有的命令。你可以说,“嘿,这个功能视频是一个有趣的东西。”只需将其复制到你的本地目录。这也可以。你可以在这里阅读所有内容。>> 好的。>> 所以,是的,差不多就是这样。是的,这,这太棒了。我,我认为最让我印象深刻的是 Playwright 的东西。比如我只是开始测试并制作视频的事实,这真的很令人惊叹。是的。>> 是的。这真的很酷,因为它真的,我只是在想,我总是手动做什么,而这越来越少,越来越少,因为它正在接管更多,在我看来至少是这样。>> 是的。>> 是的。>> 太棒了。所以,所以我们会在描述中放上复合工程插件的链接,而 Kieran,如果你想找到你,只需在 X 上搜索。>> 是的,在 X 上找到我,我也在 every.2 上写了所有这些东西。也推荐查看一下。但是的,很荣幸。>> 是的,这比,你知道,做所有手动的事情要有趣得多。所以谢谢,谢谢。>> 我知道。我知道。>> 是的。 [笑声] >> 干杯。>> 酷。好的,谢谢 Kieran。再见。