[ { "speaker": "主持人", "text": "我认为这是决定性的问题。" }, { "speaker": "主持人", "text": "就像,你会控制自己的工具还是你的工具会控制你?" }, { "speaker": "主持人", "text": "如今使用开放云就像是驾驶法拉利,感觉非常刺激。" }, { "speaker": "主持人", "text": "太疯狂了。" }, { "speaker": "主持人", "text": "你可以做很多事情,机器能想到的事情它都能处理,并且速度极快,但同时这也是法拉利,你需要成为机械师。" }, { "speaker": "主持人", "text": "就像是在路边抛锚的法拉利,当你最需要的时候,你得带着扳手和打开引擎盖自己修理。" }, { "speaker": "主持人", "text": "所以,这是计算机科学和技术非常令人兴奋的时代。" }, { "speaker": "主持人", "text": "欢迎收听《光锥》特别节目。" }, { "speaker": "主持人", "text": "在这期节目中,我们将讨论加里·坦如何重新开始构建。" }, { "speaker": "主持人", "text": "如果你在推特上关注我们,你会知道,在成为投资者多年后,加里·坦又回到了构建者的位置,并在过去几个月内发送了数十万行代码,建立了从零到在GitHub上有超过10万个星的流行开源项目。" }, { "speaker": "主持人", "text": "同时他还在全职运营YC时拥有非常繁重的工作任务。" }, { "speaker": "主持人", "text": "互联网上很多人都认为这是不可能的,并且有些难以置信,但实际上它确实发生了。" }, { "speaker": "主持人", "text": "我们知道,因为我们亲眼见证了这一切。" }, { "speaker": "主持人", "text": "所以,今天我们将讨论他是如何做到的。" }, { "speaker": "加里", "text": "我自己对此感到相当震惊。" }, { "speaker": "主持人", "text": "我也很惊讶。" }, { "speaker": "加里", "text": "我有13年没有编码了,然后突然间,我做的工作量是那一年的400倍,也就是我在几年前写代码时的一半或三分之二的工作量。" }, { "speaker": "主持人", "text": "宝贝,我们从开始的那个项目说起吧,那就是加里的清单,你如何重新启动Cloud Code并开始编码?" }, { "speaker": "加里", "text": "哦,对了。" }, { "speaker": "主持人", "text": "就像几个月前你重启Cloud Code,并开始编码一样。" }, { "speaker": "加里", "text": "就在一个Light Cone剧集之后,对吧?" }, { "speaker": "加里", "text": "哦,当然。" }, { "speaker": "加里", "text": "我意识到我想把所有相信我所信仰的人聚集在一起,特别是为了加州。" }, { "speaker": "加里", "text": "所以我开始了一个501c4,现在变成了一个c3和PAC,这是许多政治团体都做的事情。" }, { "speaker": "加里", "text": "这是一个非常常见的把人们聚集起来的方式。" }, { "speaker": "加里", "text": "大家通常只关注金钱,但我们试图聚集聪明的人。" }, { "speaker": "加里", "text": "你知道,在我在旧金山政治工作多年的经历中,我发现把人聚集在一起是如此强大。" }, { "speaker": "加里", "text": "这就是大规模社会运动。" }, { "speaker": "加里", "text": "我说,\"好吧,为什么不让我建立一个网站来开始做这件事呢?\"" }, { "speaker": "加里", "text": "它只会从我开始写关于我担心的问题的网站开始。" }, { "speaker": "加里", "text": "就像,我希望在学校有孩子,你知道,全世界各地的人可能会觉得这非常奇怪,就像我觉得很奇怪一样,对于旧金山公立学校的学生来说,在七年级或八年级时学习代数是不可能的,而且仍然很难。" }, { "speaker": "加里", "text": "这是数学教育方面的事情。" }, { "speaker": "加里", "text": "就像,如果我在我在湾区东部的公立学校没有做这件事,我就不可能在斯坦福大学研究工程学。" }, { "speaker": "加里", "text": "我永远都不会写代码。" }, { "speaker": "加里", "text": "我永远都无法做这些事情。" }, { "speaker": "加里", "text": "所以,这很接近我的心,我意识到,“嘿,是时候写代码了。”" }, { "speaker": "加里", "text": "最后我建立起了Posterous,我的第一个Y Combinator创业公司,从2008年开始。" }, { "speaker": "主持人", "text": "那么,对于那些不记得的人,Posterous是什么?" }, { "speaker": "加里", "text": "是的,Posterous是一个通过电子邮件进行的简单博客。" }, { "speaker": "加里", "text": "它成长为互联网上排名前200位的网站之一,然后Twitter以大约2000万美元的价格收购了它。" }, { "speaker": "加里", "text": "所以,这可以说是我的第一桶金。" }, { "speaker": "加里", "text": "实际上,我再次构建了它,作为Posthaven,当Twitter收购它时,我们雇用了许多出色的人才,并且他们关闭了创业公司。" }, { "speaker": "加里", "text": "要花费几百万美元从Twitter手中买回,当时我在全世界都没有钱,所以最好的办法就是为什么我不再写一次呢?" }, { "speaker": "加里", "text": "然后在今年1月,我最终第三次编写了它。" }, { "speaker": "加里", "text": "只是,第一次花费大约400万美元和六七个人,大约一年半的时间。" }, { "speaker": "加里", "text": "然后第二次,你知道的,花了大约10万美元和两个人,我和我的联合创始人布莱特·吉布森,他现在管理着初始化。" }, { "speaker": "加里", "text": "呃,可能需要3个月左右的时间。" }, { "speaker": "加里", "text": "而在这个案例中,只花费了大约200美元,也就是我的克劳德代码马克斯账户,大概5天时间。" }, { "speaker": "加里", "text": "全功能的博客平台,可以做你想要的一切。" }, { "speaker": "加里", "text": "然后在那之上,有完整的抓取,全面的检索能力,能够去阅读互联网上的所有内容,比如我所有的推文。" }, { "speaker": "加里", "text": "递归爬虫,深入研究任何主题。" }, { "speaker": "加里", "text": "数学问题只是我们非常关心的一系列问题中的一个。" }, { "speaker": "加里", "text": "能够去获取互联网信息,看到所有支持和反对的观点,并在后台撰写关于某个话题的所有引述的详细报告。" }, { "speaker": "加里", "text": "我认为,可能Light Cone的一些大粉丝会记得我们早期的一集关于自主系统的节目,与杰克·赫勒一起。" }, { "speaker": "加里", "text": "实际上,杰克创建了Case Text,并描述了我最终构建的用于基本新闻报道的软件,无论是任何问题或正在发生的新闻事件。" }, { "speaker": "加里", "text": "所以,你可以今天访问Gary's list.org,我们大约每两周发布两到三篇经过研究、完全来源的关于加州、旧金山和洛杉矶政府建设的文章。" }, { "speaker": "主持人", "text": "我认为人们可能错过了Gary's list的一些事情,他们没有完全理解的是,它就像是我们在讨论的那种经典软件的事情——你构建软件让人们使用。" }, { "speaker": "主持人", "text": "所以是建立了一个博客平台,人们可以写博客,也许他们会开始自己的Substack或者撰写文章。" }, { "speaker": "主持人", "text": "但Gary's list不仅是博客平台,它实际上做了高质量调查记者的工作。" }, { "speaker": "主持人", "text": "而不仅仅是一个记者用来发布文章的工具。" }, { "speaker": "加里", "text": "嗯,基本上就是相当于五美元或十美元的Opus电话费用,我估计它所做的工作就像真正的人类一样,他们需要仔细阅读几十篇文章,阅读关于某些主题的整本书,并对它们进行注释。" }, { "speaker": "加里", "text": "回到案例文本的例子上,像杰克教我的就是你需要考虑在给定上下文的情况下人类会做什么。" }, { "speaker": "加里", "text": "他们会检索什么?" }, { "speaker": "加里", "text": "它会去图书馆吗?" }, { "speaker": "加里", "text": "它会寻找哪类书籍?" }, { "speaker": "加里", "text": "它会在网上搜索什么?" }, { "speaker": "加里", "text": "现在的好消息是,你不必只做这些。" }, { "speaker": "加里", "text": "你可以获取Perplexity的API,并在那里进行深入研究。" }, { "speaker": "加里", "text": "你有X的API,你也可以在那进行深入研究。" }, { "speaker": "加里", "text": "如果你需要使用Grok API来对X进行研究,那么Grok API实际上是非常好的。" }, { "speaker": "加里", "text": "你可以获取所有上下文。" }, { "speaker": "加里", "text": "这回到了我的一篇文章中提到的煮海哲学。" }, { "speaker": "加里", "text": "当你构建Gentex软件时,你不必局限于当我们作为人类编写代码时所做的。" }, { "speaker": "加里", "text": "这也适用于研究。" }, { "speaker": "加里", "text": "如果你绝对煮海呢?" }, { "speaker": "加里", "text": "就像,你知道的,一个完全的研究者,如果你是人类的话,做这个研究大概需要一个月的时间。你可以用更快的方式击打岩石。" }, { "speaker": "加里", "text": "嗯,你知道的,你支付更多的钱可能会达到最大代币化,但你应该达到最大代币化。" }, { "speaker": "加里", "text": "基本上,如果有一些增量工作可以让事情变得更完整、更棒、更……你知道,在这种类型的写作中,我们想要它更代表现实。" }, { "speaker": "加里", "text": "我们知道,当我们能获取20个来源并交叉验证它们时,我们不会只满足于一个来源。" }, { "speaker": "加里", "text": "我们可以找出,嗯,13个来源说这个,并且7个来源不同意那个。" }, { "speaker": "加里", "text": "然后,你知道的,你想要将所有这些上下文输入到你的核心提示中,这样你就可以做出比仅凭人类点击链接、阅读标题并了解全部更好的决定。" }, { "speaker": "加里", "text": "我认为如果你达到最大代币化,这是你现在能做的最酷的事情。" }, { "speaker": "加里", "text": "这不仅仅是在生成文章。" }, { "speaker": "加里", "text": "它显然在编写代码方面是正确的?" }, { "speaker": "加里", "text": "我认为现在它会渗透到社会的每一个部分。" }, { "speaker": "加里", "text": "像我们所说的每一种知识工作都可以达到最大代币化。" }, { "speaker": "加里", "text": "我不认为这意味着我们会淘汰人们。" }, { "speaker": "加里", "text": "我认为这意味着人们仍然需要提供代理。" }, { "speaker": "加里", "text": "就像,我需要这个。" }, { "speaker": "加里", "text": "我是那个在这里关心代数的人。" }, { "speaker": "加里", "text": "就像,我希望有像我这样的孩子,他们负担不起私立学校。" }, { "speaker": "加里", "text": "你知道,在整个世界中,旧金山的私立学校入学率是最高的,实际上可能是全国最高的城市。" }, { "speaker": "加里", "text": "这并不公平。" }, { "speaker": "加里", "text": "你不应该因为有钱才有好的教育。" }, { "speaker": "加里", "text": "而且我不明白为什么这是有争议的。" }, { "speaker": "加里", "text": "所以对我来说,就像大规模的技术转变正在发生,然后我有了需求、欲望和愿望,这是一个强烈的渴望。" }, { "speaker": "加里", "text": "就像想到10岁、12岁或13岁的孩子不懂代数,但他们本可以学习的,但某个官僚或所谓的道德信号人物说他们不想让想学代数的孩子学习。" }, { "speaker": "加里", "text": "所以我认为在这个过程中,基本上解决年轻加里的痛苦和需求,并建立加里的列表,你发现了很多关于代币最大化和构建新方式的模式,这引导你到下一个项目G堆栈。" }, { "speaker": "加里", "text": "我实际上没有计划制作G堆栈。" }, { "speaker": "加里", "text": "我只是意识到我在做同样的事情,然后厌倦了重复输入相同的内容,所以我进入了我的苹果笔记。" }, { "speaker": "加里", "text": "我把发现自己反复写的东西都输入到Claude代码中。" }, { "speaker": "加里", "text": "这很简单。" }, { "speaker": "加里", "text": "就像这里有计划审查。" }, { "speaker": "加里", "text": "我开始做的一件事是我真的很喜欢让Claude制作ASCII艺术图表。" }, { "speaker": "加里", "text": "我发现有时Claude会困惑并写出错误或不完整的内容。" }, { "speaker": "加里", "text": "但一旦我开始说," }, { "speaker": "加里", "text": "“实际上,在你开始工作之前,画出所有数据流的ASCII图,所有的输入和输出,用户流程是什么,错误消息是什么。”" }, { "speaker": "加里", "text": "你可以看到这个。" }, { "speaker": "加里", "text": "这就像数据流、状态机、依赖关系图、处理管道、决策树。" }, { "speaker": "加里", "text": "一旦它做到了这一点,它加载了所有上下文,并且只是更完整地做了工作。" }, { "speaker": "加里", "text": "就像是煮得更好。" }, { "speaker": "加里", "text": "然后它分解成了许多不同的部分。" }, { "speaker": "加里", "text": "比如这里是架构审查、代码质量、测试。" }, { "speaker": "加里", "text": "我做加里的清单时学到的一件事是,当我自己写代码的时候,我会总是只做最少的测试,因为这根本不有趣。" }, { "speaker": "加里", "text": "我知道我需要它,但我来这里是为了编写有趣的全新代码。" }, { "speaker": "加里", "text": "我不喜欢写测试。" }, { "speaker": "加里", "text": "然后老实说,当我开始自行车编码时,就像其他人一样,这是一团糟,工作得不太好,对于80%的情况它很好用,但如果任何用户真的接触过它,它就会崩溃。" }, { "speaker": "加里", "text": "然后我意识到,哦,我可以达到100%的测试覆盖率。" }, { "speaker": "加里", "text": "从那以后我知道100%可能太多了,比如达到80到90%通常是目前的最佳实践。" }, { "speaker": "加里", "text": "嗯但总之这是plan-eng-review的第一个版本。" }, { "speaker": "加里", "text": "我知道每个人都了解办公室小时技能,也就是人们可以使用并在我尝试制作全新产品或新功能时仍然使用的技能。" }, { "speaker": "加里", "text": "它模拟了我们在与公司合作时所做的事情。" }, { "speaker": "加里", "text": "你知道,你怎么知道人们想要这个,这是给谁的,它做了什么,以及有什么影响,对吧?" }, { "speaker": "加里", "text": "但这就像是基础技能,我甚至不知道技能存在,然后我发布了这个,并且它迅速走红了,你知道的,有20万人看到了。" }, { "speaker": "加里", "text": "然后我又做了一个更昂贵的版本。" }, { "speaker": "加里", "text": "我称之为超级计划,然后最终我把它改名为CEO计划。" }, { "speaker": "加里", "text": "我们可能之前讨论过元提示。" }, { "speaker": "加里", "text": "我在这里使用了元提示。" }, { "speaker": "加里", "text": "我拿出了我们的另一个评估计划,然后我说,“好的,让我们做这个版本,就像想象布莱恩·切斯基坐在你身边一样,对吧?”" }, { "speaker": "加里", "text": "布莱恩·切斯基有一个关于什么是10星级体验的好说法。" }, { "speaker": "加里", "text": "所以你知道,它的目的是每个人都以三星级、四星级等来考虑酒店体验,他就像列出了整个列表一样,比如五星级,大家都说“是的”,然后他像这样问,“那么六星级是什么?”" }, { "speaker": "加里", "text": "然后“七星级呢?”" }, { "speaker": "加里", "text": "还有“八星级呢?”" }, { "speaker": "加里", "text": "然后他列出了整个列表。" }, { "speaker": "加里", "text": "然后这是我的一个最喜欢的,就像作为心理锻炼的产品和设计练习一样,然后酷的是你可以每次这样做。" }, { "speaker": "加里", "text": "这就是这个提示的基本目的,你知道,这个提示试图找出这到底是什么的最理想状态。" }, { "speaker": "Garry", "text": "这有点像是三件事,其中两件真的很棒。" }, { "speaker": "Garry", "text": "一个是所谓的10倍检查?" }, { "speaker": "Garry", "text": "更雄心勃勃,只需2倍的努力就能提供10倍的价值。" }, { "speaker": "Garry", "text": "对吧?" }, { "speaker": "Garry", "text": "从潜在空间中出来,这有助于模型真正可视化。" }, { "speaker": "Garry", "text": "就像我实际上真的很喜欢当CEO,我是多动症的CEO,我喜欢潜力,纯粹的潜力。" }, { "speaker": "Garry", "text": "所以,这就是我无法相信这只是两个小句子。" }, { "speaker": "Garry", "text": "但就像这解锁了不可思议的数量。" }, { "speaker": "Garry", "text": "这就是G G堆栈开始的方式,实际上不是你想的那样,我并不想让它成为任何其他东西,我只是需要掌握一些技能。" }, { "speaker": "Garry", "text": "我听说人们在制作技能仓库。" }, { "speaker": "Garry", "text": "但第三件事是我使用这两个技能太多了,我的指挥官实例变得非常拥挤。" }, { "speaker": "Garry", "text": "这就是我如何使用指挥官的。" }, { "speaker": "Garry", "text": "这实际上是我的实际设置,好吧。" }, { "speaker": "主持人", "text": "这是你的日常流程。" }, { "speaker": "主持人", "text": "这就是你每月能交付数万行代码的方式。" }, { "speaker": "主持人", "text": "这里包含了所有的东西。" }, { "speaker": "加里", "text": "是的,就是这样的。" }, { "speaker": "加里", "text": "所以,在过去的48小时内,我减少了13个PR。" }, { "speaker": "加里", "text": "然后,你知道,我只是把它们排队好了。" }, { "speaker": "加里", "text": "无论何时我有了新的想法,我就进来,这就是它。" }, { "speaker": "加里", "text": "我知道我喜欢使用CEO技能。" }, { "speaker": "加里", "text": "我喜欢使用引擎技能来真正地使它经过了超级严格的测试。" }, { "speaker": "加里", "text": "我都是在计划模式下完成的。" }, { "speaker": "加里", "text": "然后我会在这里点击批准,你知道,克劳德会去做所有的事情。" }, { "speaker": "加里", "text": "然后我做了那么多,以至于最终我有15个不同的功能都排队等待我去手动测试。" }, { "speaker": "加里", "text": "就像它通过了端到端的测试。" }, { "speaker": "加里", "text": "它通过了集成测试。" }, { "speaker": "加里", "text": "它通过了单元测试。" }, { "speaker": "加里", "text": "但到了最后,我仍然需要,你知道,在Garry的清单上,就像打开Rails服务器,并且像加载用户并将其配置为特定用户的那样手动确保一切正常工作。" }, { "speaker": "加里", "text": "我厌倦了这样做,我在尝试使用克劳德在代码MCP中,它非常非常慢。" }, { "speaker": "加里", "text": "每轮大约需要2到3秒。" }, { "speaker": "加里", "text": "我觉得这不适合用于QA。" }, { "speaker": "加里", "text": "但我听说微软发布了一个叫做Playwright的工具,它更像是一个替代的测试框架。" }, { "speaker": "加里", "text": "事后看来,实际上有像代理之类的工具我可以使用,但Claude代码的优点和缺点是很容易开始一些事情,所以我只是打开了这个,这可能是我做的事情。" }, { "speaker": "加里", "text": "我受够了使用Claude。" }, { "speaker": "加里", "text": "在Chrome MCP中,Claude太慢了。" }, { "speaker": "加里", "text": "让我们继续使用微软的Playwright吧。" }, { "speaker": "加里", "text": "我们能做到吗?" }, { "speaker": "加里", "text": "然后我按下了回车键,你知道G堆栈出现的一些事情就是这就是我现在创建新功能的方式。" }, { "speaker": "加里", "text": "当然,你现在要做的事情是,嘿哥们,你已经做了这个,这太好笑了。" }, { "speaker": "加里", "text": "我知道我有bug修复紧挨着巨大的特性,然后G堆栈的工作方式是有首席执行官的,有一个设计师,实际上有一个开发者体验的人在那里面。" }, { "speaker": "加里", "text": "有一些设计工具,然后计划工程是最后一个,然后我通常运行{斜线}codex,并且最近添加了{斜线}Claude在codex中。" }, { "speaker": "加里", "text": "所以,从YC校友那里学到的一些酷的事情,我参加了一个活动,大脑完全混乱,但你知道我们参加了我们的批次事件,只是谈论Claude代码和codex的情况,当时我是纯粹的Claude代码用户,并且我意识到,很多人实际上更喜欢Codex。" }, { "speaker": "加里", "text": "为什么呢?" }, { "speaker": "加里", "text": "我发现Claude代码非常适合多动症CEO。" }, { "speaker": "加里", "text": "但偶尔,你知道的,克劳德代码会随便编造一堆东西。" }, { "speaker": "加里", "text": "就像克劳德模型非常优秀,但其实它们并不最聪明。" }, { "speaker": "加里", "text": "所以很多人向我解释说,如果你有一个更疯狂的问题,你需要一个近乎非语言的200智商的CEO。" }, { "speaker": "加里", "text": "你可以叫上朋友帮忙,这就是像/码克斯这样的东西。" }, { "speaker": "加里", "text": "这是一个G堆栈技能,它会根据你的计划运行,或者如果你已经实施了计划模式,则会获取你的仓库,并在命令行提示符中使用提示“找到所有问题和错误”,然后将报告反馈给克劳德代码,你和克劳德代码可以一起处理这些问题。" }, { "speaker": "加里", "text": "我后来添加了一个功能,如果你使用码克斯作为主要的编码代理,实际上你可以输入/克劳德并让克劳德暂时成为CEO。" }, { "speaker": "加里", "text": "G堆栈非常依赖于询问用户问题。" }, { "speaker": "加里", "text": "因为你知道,这对我来说非常重要。" }, { "speaker": "加里", "text": "这就是人类程序员操作员代理工程师需要提供对正在构建的内容的理解的地方。" }, { "speaker": "加里", "text": "真的没有替代品。" }, { "speaker": "加里", "text": "如果有人真的设法在循环中制作软件,这会让我非常惊讶。" }, { "speaker": "加里", "text": "就像这是有争议的观点,我认为。" }, { "speaker": "Garry", "text": "但我永远不会想要完全脱离圈子。" }, { "speaker": "Garry", "text": "我只是想让机器去做我不想做的事情。" }, { "speaker": "Garry", "text": "所以,基本上,质量保证就是一个很好的例子。" }, { "speaker": "Garry", "text": "你知道的,这意味着太好笑了。" }, { "speaker": "Garry", "text": "回到演示中,我输入一些东西到G堆栈的现代版本中,然后它会说,\"伙计,你在做什么?\"" }, { "speaker": "Garry", "text": "就像,\"我们已经构建了那个功能。" }, { "speaker": "Garry", "text": "我们有浏览。" }, { "speaker": "Garry", "text": "浏览是一个长寿命的HTTP恶魔,具有70个命令作为CLI。" }, { "speaker": "Garry", "text": "然后质量保证就是浏览,但是,在QA的提示中,它说,\"查看你的上下文。" }, { "speaker": "Garry", "text": "我们在这个分支上做了什么?" }, { "speaker": "Garry", "text": "如果有UI或任何数据的变异,请使用浏览器来测试那个东西。" }, { "speaker": "Garry", "text": "这很酷。" }, { "speaker": "Garry", "text": "就像有一个黑盒浏览器。" }, { "speaker": "Garry", "text": "当它第一次工作时,我被震撼了。" }, { "speaker": "Garry", "text": "就像是,\"微型AGI已经在这里了.\"" }, { "speaker": "加里", "text": "你知道,我意识到这并不是真正的AGI。" }, { "speaker": "加里", "text": "真正的AGI会说,\"我不在这里。\"" }, { "speaker": "加里", "text": "嗯,实际上,这样挺好的。" }, { "speaker": "加里", "text": "从这个角度来看,作为一个建造者,自私地说,我希望我们永远不需要停止。" }, { "speaker": "主持人", "text": "我希望机器永远不会发现这一点,因为那会很酷。" }, { "speaker": "主持人", "text": "就像,然后你知道的,人类真的很重要,还有了解如何做这件事的设计感、产品反馈和真正考虑客户的人,我们基本上可以像有翅膀一样生活,只要我们这样做。" }, { "speaker": "主持人", "text": "Y Combinator创业学校回来了。" }, { "speaker": "主持人", "text": "我们正在挑选世界上最有可能的建造者,并在7月25日和26日在旧金山飞出来讨论科技的前沿。" }, { "speaker": "主持人", "text": "现在申请一个位置。" }, { "speaker": "主持人", "text": "好了,回到视频上。" }, { "speaker": "主持人", "text": "我认为你在X上的这篇文章中总结了很多关于薄硬核和肥技能的思考。" }, { "speaker": "主持人", "text": "哦,是的。" }, { "speaker": "加里", "text": "这实际上涵盖了关于如何最大化代币的所有哲学。" }, { "speaker": "加里", "text": "嗯,确实。" }, { "speaker": "加里", "text": "也就是说,其中一些想法来自于在网上被无休止地嘲笑Markdown。" }, { "speaker": "加里", "text": "就像,你知道的,我只是在推销Markdown而不是Markdown。" }, { "speaker": "加里", "text": "而且现在的情况是,我的生活经历告诉我Markdown实际上是代码。" }, { "speaker": "加里", "text": "它只是以不同的方式编译,但你可以让计算机做令人惊讶的事情。" }, { "speaker": "加里", "text": "就像,你甚至可以做到这一点。" }, { "speaker": "加里", "text": "我们能想象到我会和取代Visual Studio的东西交谈吗?我根本不使用Visual Studio。" }, { "speaker": "加里", "text": "没有理由这样做。" }, { "speaker": "加里", "text": "就像我可以和我的经纪人交谈,而我的经纪人可以做到这一点,对吧?" }, { "speaker": "加里", "text": "文章的名字实际上来自于我们的合作伙伴皮特·库温霍文。" }, { "speaker": "加里", "text": "我们不得不构建一个内部的代理,并且我们称之为“马车”。" }, { "speaker": "加里", "text": "然后在整天使用Cloud Code之后,我们意识到为什么我们要一遍又一遍地重写那个版本呢?" }, { "speaker": "加里", "text": "就像,我们应该只使用真正令人惊叹的东西作为工具。" }, { "speaker": "加里", "text": "一个马车的核心循环接收用户输入,将其传递给LLM,并运行LLM的操作。" }, { "speaker": "加里", "text": "它可以执行工具调用等操作。" }, { "speaker": "加里", "text": "我们为什么要构建这个?我们应该花时间思考应该有什么Markdown。" }, { "speaker": "加里", "text": "然后,你知道的,如果你将这个和其他我学到的东西结合起来,也就是达到80到90%的测试。" }, { "speaker": "加里", "text": "如果它没有经过测试,你只是把用户扔进去,就像一团糟一样。" }, { "speaker": "加里", "text": "你知道,比人类编写的代码差10倍,因为你根本不知道会发生什么。" }, { "speaker": "加里", "text": "所以这就是人们必须做的事情之一。" }, { "speaker": "加里", "text": "也就是说,不仅要找出潜在空间和确定性空间发生了什么,还要确保它,你知道的,单独测试,并且然后进行集成测试。" }, { "speaker": "加里", "text": "然后回到煮海洋这个问题上,机器不在乎。" }, { "speaker": "加里", "text": "它会做这件事。" }, { "speaker": "加里", "text": "太神奇了。" }, { "speaker": "加里", "text": "就像把岩石砸得更猛一点,你可以达到90%的测试覆盖率,然后你就可以有一个几乎完美的系统。" }, { "speaker": "加里", "text": "你知道,现在Openclaw有很多失败的情况,但它已经达到了95%。" }, { "speaker": "加里", "text": "我觉得最近使用Openclaw就像开一辆法拉利,这让人非常兴奋。" }, { "speaker": "加里", "text": "太疯狂了。" }, { "speaker": "加里", "text": "你可以做很多事情,机器能想出你从未想过的事情,并且它做得如此之快。" }, { "speaker": "加里", "text": "但同时这也是法拉利,你需要成为机械师。" }, { "speaker": "加里", "text": "就像当你最需要的时候,法拉利会在路边抛锚,你知道,你需要拿出你的扳手和打开引擎盖,像修复它一样进行修理" }, { "speaker": "Garry", "text": "所以,这是计算机科学和技术领域非常激动人心的时刻,因为这就像Homebrew计算机俱乐部的时刻,也就是Apple 1问世的时候。" }, { "speaker": "Garry", "text": "比如Steve Jobs和Steve Wozniak制作的Apple 1,它内部是一个电路板,用木头制成的盒子钉在一起,然后用胶带固定,你知道吗?" }, { "speaker": "Garry", "text": "如果你想要一台个人电脑,这就是你必须做的。" }, { "speaker": "Garry", "text": "我们现在就是处在这样的阶段。" }, { "speaker": "Garry", "text": "像现在有相对聪明的技术人才需要花费两到三个小时和大约500美元或1000美元的代币以及云服务,才能让这样的事情运行起来。" }, { "speaker": "Garry", "text": "但一旦你做到了,就像我们处于自己组装的法拉利阶段。" }, { "speaker": "Garry", "text": "你可以驾驶它去任何地方,并且你想在山上大声喊叫:\"嘿,我有一辆法拉利。\"" }, { "speaker": "主持人", "text": "甚至修复自己的部分,我觉得人们直到真正经历过程后才理解这一点。如果你退一步看,事情发展得如此之快。" }, { "speaker": "主持人", "text": "就像你回顾过去,仅仅有一个像Stack Overflow这样的网站可以咨询编程问题时的感受就像是非常棒的。" }, { "speaker": "主持人", "text": "然后ChatGPT发布,\"哦,我有了这个比Stack Overflow更好的交互式东西。\"" }, { "speaker": "主持人", "text": "但你仍然在做同样的事情。" }, { "speaker": "主持人", "text": "你像问问题,复制粘贴代码,运行代码并查看结果,然后复制粘贴回来。" }, { "speaker": "主持人", "text": "然后通过Claude Code,你意识到你不需要再进行复制和粘贴了。" }, { "speaker": "主持人", "text": "它实际上执行并运行代码。" }, { "speaker": "主持人", "text": "然后,即使在Open Claude中,我发现当我设置它时,确实很烦人,因为它可以有效地自我砖化,并做很多令人讨厌的事情。" }, { "speaker": "主持人", "text": "但是如果你实际上有像Claude Code这样的东西,就像,它会修复它。" }, { "speaker": "加里", "text": "是的,你只需要运行Claude Code,它就会自动修复问题。" }, { "speaker": "主持人", "text": "而且很明显这不是长期的方式,但这种心态转变是,即使它是脆弱的并且需要修复也没关系,因为你可以实际上让另一个代理一直在那里修复所有的问题。" }, { "speaker": "加里", "text": "是的,我感觉这个进化我已经完全被Claude Code所影响,并且仍然如此,但可能只有大约50%或60%的时间用于构建产品或机构工程,现在是在Claude code中。" }, { "speaker": "加里", "text": "在某个点上,基本上有一半的是通过open Claude的。" }, { "speaker": "加里", "text": "是的,这非常有趣。" }, { "speaker": "加里", "text": "也就是说,我还在大部分时间都在研究G脑本身。" }, { "speaker": "加里", "text": "所以G脑出现是因为我当然我们有彼得在节目中。" }, { "speaker": "加里", "text": "然后我终于开始着手处理这个问题。" }, { "speaker": "加里", "text": "那是一个周末,我说我得检查一下这个,看看Open Claude的状况如何。" }, { "speaker": "加里", "text": "让我们启动它吧,这是关于卡帕斯蒂写他的知识LM wiki的文章的时候。" }, { "speaker": "加里", "text": "所以我想好吧,我有一个满是Markdown的仓库,所有我的上下文都应该放在那个Markdown中,然后在某个点上我意识到哦天哪,它只是使用了grep。" }, { "speaker": "加里", "text": "grep不是那么好。" }, { "speaker": "加里", "text": "就像它正在浪费上下文,加载比它需要的更多到上下文中,然后我掉进了兔子洞。" }, { "speaker": "Garry", "text": "我刚刚进入了导轨快速启动模式,然后我已经在导轨中构建好了G堆栈,这就是我开始的方式。" }, { "speaker": "Garry", "text": "你知道,实际上这比那更有趣。" }, { "speaker": "Garry", "text": "所以我不是从零开始的。" }, { "speaker": "Garry", "text": "我在编写越来越大的代码库时学到的一件事是,你把它加载到你的大脑中。" }, { "speaker": "Garry", "text": "你会想,为了构建一个针对Gary's list的自主新闻室,我实际上需要学习向量嵌入、混合RRF和分块,当你在尝试让它工作时,你就只是直接应用。" }, { "speaker": "Garry", "text": "就像我有一个输出。" }, { "speaker": "Garry", "text": "我想要的文章应该看起来像这样。" }, { "speaker": "Garry", "text": "它需要达到这个质量。" }, { "speaker": "Garry", "text": "它需要有这些引文。" }, { "speaker": "Garry", "text": "就像你开始构建你的测试和集成测试,最终你会得到一个像输出所期望的、经过战斗考验的产品。" }, { "speaker": "Garry", "text": "所以我把两件事联系起来,你知道,这是任何人都可以做到的事情。" }, { "speaker": "Garry", "text": "这就是为什么我认为我们正进入开源的黄金时代的原因。" }, { "speaker": "Garry", "text": "嗯,我可以简单地打开这个项目在导轨上,然后我写的第一个东西是,你知道,去看看,比如,~ / git / garyslist。" }, { "speaker": "Garry", "text": "看看我们如何进行分块、嵌入,你知道的,混合RRF、rag等等,然后只是提取它,然后我想使用Postgres和PG vector,并且我想要一个完整的rag系统为我的开放爪子。" }, { "speaker": "Garry", "text": "然后就像一件事接一件事地发展起来。" }, { "speaker": "Garry", "text": "我有G脑的10个窗口,我就在做这件事。" }, { "speaker": "Garry", "text": "关于开放爪子很酷的一点,也许这是一个很好的例子。" }, { "speaker": "Garry", "text": "这是我实际使用的开放爪子。" }, { "speaker": "Garry", "text": "我确实去问了。" }, { "speaker": "Garry", "text": "你知道我是怎么进入这个领域的吗?" }, { "speaker": "Garry", "text": "1月23日。" }, { "speaker": "Garry", "text": "还有所有的电子邮件。" }, { "speaker": "主持人", "text": "一条推文,就像,“克劳德本周的代码唤醒了我25岁的自我,那个检查红牛直到黎明编程的人。”" }, { "speaker": "主持人", "text": "我们又回来了。" }, { "speaker": "主持人", "text": "建设者的身份重新出现。" }, { "speaker": "Garry", "text": "是的,你知道,我基本上回到了每天睡眠4小时,然后编程20个小时的状态。" }, { "speaker": "Garry", "text": "你知道,这也是我开始让自己陷入麻烦的时候,比如谈论代码行数。" }, { "speaker": "Garry", "text": "顺便说一句,我仍然相信这一点。" }, { "speaker": "主持人", "text": "这可能是关于代码行数作为重要衡量标准的想法的一个很好的快速旁白,在互联网上一直存在争议。" }, { "speaker": "主持人", "text": "显然,有一个反对意见是,“代码行数并不能衡量开发者的工作效率。”" }, { "speaker": "主持人", "text": "但这并不正确,对吧?" }, { "speaker": "主持人", "text": "但它也确实有影响。" }, { "speaker": "主持人", "text": "它在某种程度上也有影响,对吧?" }, { "speaker": "加里", "text": "是的。" }, { "speaker": "加里", "text": "就像它确实很明显,并且有趣的是你可以实际运行一些公开发布的代码库来去除并标准化真正的逻辑代码行数。" }, { "speaker": "加里", "text": "所以我实际上做了这个事情。" }, { "speaker": "加里", "text": "你知道,我后来因为说,“哦,我在2013年的时候编码速度是当时的100倍。”" }, { "speaker": "加里", "text": "然后在进行了逻辑代码行数的清理后,实际上提高了。" }, { "speaker": "主持人", "text": "实际上提高了。" }, { "speaker": "加里", "text": "所以事实是我实际编写了400倍的代码。" }, { "speaker": "加里", "text": "但你知道,很明显我没有写这些代码。" }, { "speaker": "加里", "text": "我是在同时指导15个代理去做这件事。" }, { "speaker": "加里", "text": "然后就数字而言,它并没有像我预期的那样降低我的代码行数。" }, { "speaker": "加里", "text": "但是让我惊讶的是,在2013年我写的代码量减少了大约70%。" }, { "speaker": "加里", "text": "所以我认为这就是问题所在。" }, { "speaker": "加里", "text": "人们会非常生气,因为如果是人类编写代码,很容易增加代码行数。" }, { "speaker": "加里", "text": "但是除非你直接指示克劳德代码真正地增加代码行数,否则它不一定这样做。" }, { "speaker": "加里", "text": "可能构建错误的东西。" }, { "speaker": "加里", "text": "你可能无法很好地引导它。" }, { "speaker": "加里", "text": "它可能不会做正确的事情。" }, { "speaker": "加里", "text": "但重要的是,它并不是在优化代码行数方面像人类工作时那样做的,对吧?" }, { "speaker": "加里", "text": "这就像生活一样。" }, { "speaker": "加里", "text": "然后,真正令人惊讶的事情是如果你回顾从2000年或1990年的软件工程文献,平均而言,一个经过测试和生产准备的专业软件工程师的代码行数并不像100行。" }, { "speaker": "加里", "text": "更像是50行。" }, { "speaker": "加里", "text": "就像30行一样。" }, { "speaker": "主持人", "text": "是的,一天。" }, { "speaker": "主持人", "text": "是的,一天,对吧?" }, { "speaker": "加里", "text": "对我来说可能是14行,但我只是兼职。" }, { "speaker": "加里", "text": "我不知道。" }, { "speaker": "Garry", "text": "所以,这就是400倍的由来。" }, { "speaker": "Garry", "text": "你知道,我还知道一件事是,我应该说清楚,而不是只是在代码线上逗弄人们。" }, { "speaker": "Garry", "text": "所以,如果我在网上逗你,我非常抱歉。" }, { "speaker": "Garry", "text": "就像,那里有一个更深层次的理解,并且我确实发布了一篇博客文章来解释这个问题的更多细节。" }, { "speaker": "Garry", "text": "我的意思是,这并不小题大做。" }, { "speaker": "Garry", "text": "这对技术人员来说非常重要,因为它实际上提高了你能够做到的事情的标准。" }, { "speaker": "Garry", "text": "就像攻击我代码行数的人,他们最有可能在你像放开翅膀和token max时获得好处。" }, { "speaker": "Garry", "text": "这是一些经典的问题。" }, { "speaker": "Garry", "text": "如果你有品味并且理解技术,你们应该是从得到这个最多益处的人。" }, { "speaker": "Garry", "text": "所有你需要做的就是相信。" }, { "speaker": "主持人", "text": "对。" }, { "speaker": "主持人", "text": "是的。" }, { "speaker": "主持人", "text": "所以,停止争斗,只是打开Claude Code并尝试它,你知道。" }, { "speaker": "主持人", "text": "我认为还有一件事可能正在发生,就像体验非常依赖于模型和马具。" }, { "speaker": "主持人", "text": "我注意到的一件事是,通过我的开放爪子代理进行任何稍微复杂的编程任务都只是失败了。" }, { "speaker": "主持人", "text": "就像完全相同的模型,它类似于Opus 4.7的Claude Code,但我觉得这就像任何高于简单的脚本的东西一样,我总觉得这不是那么好。" }, { "speaker": "主持人", "text": "所以我会回到Claude Code上,然后对我来说有一个时刻,我意识到,哦这就是它的感觉。" }, { "speaker": "主持人", "text": "就像六个月前的感觉,当你尝试这些事情时,嗯,这些东西还没有完全准备好。" }, { "speaker": "主持人", "text": "而Claude Code与Opus 4.5的结合是,哦,实际上就是在这里。" }, { "speaker": "主持人", "text": "它即将重演。" }, { "speaker": "主持人", "text": "现在人们感觉像是开放爪或赫尔墨斯还没有完全准备好,或者需要做很多工作。" }, { "speaker": "主持人", "text": "然后我保证,一年后,每个人都会说他们在这里听到的第一件事,就是全地球上的每个人都将有自己的个人AI。" }, { "speaker": "主持人", "text": "我们可以生活在一个世界里,我们有我们自己的AI,我们有我们自己的数据和整合,我们可以看到发生了什么,我们编写自己的提示,并且对所见内容具有控制权,或者这是由公司控制的。" }, { "speaker": "主持人", "text": "这就像你的Facebook动态,你不知道谁写了那个算法以及它受益于谁,也不知道背后是什么模型,没有人知道。" }, { "speaker": "主持人", "text": "最强大的理念之一是个人电脑革命的礼物,我们即将经历与个人AI完全相同的转变。" }, { "speaker": "主持人", "text": "这将是一个选择,人们必须决定是否愿意编写自己的提示。" }, { "speaker": "主持人", "text": "我想如果Pete Koomen在这里就好了,这也是我们从他那里学到的东西之一。" }, { "speaker": "主持人", "text": "除非你有自己的提示并能为自己编写,否则就像在API线以下的PM或非你的开发者,他们不会理解你,不会理解你的需求,也不会理解你独特关心的事。" }, { "speaker": "主持人", "text": "我认为这是决定性的问题,你会控制自己的工具还是你的工具会控制你?" }, { "speaker": "主持人", "text": "我认为公众的这一分歧在于,这些能力需要使用最新的最佳模型,而且使用它们并耗尽所有令牌现在实际上相当昂贵。" }, { "speaker": "主持人", "text": "它正在下降,但我认为人们可能只是尝试像Sonnet或免费模式,或者只订阅基本的Claude Pro套餐。" }, { "speaker": "主持人", "text": "是的。" }, { "speaker": "主持人", "text": "部分原因是,我们可能需要解决这个问题:这种新方式,几乎在构建ASI AGI时刻,你需要燃烧大量的代币,整个代币最大化范式。" }, { "speaker": "加里", "text": "这其实让我想起了旧金山的租金。" }, { "speaker": "加里", "text": "就像我们总是需要向YC创始人解释的一件事一样。" }, { "speaker": "加里", "text": "就像是,\"我不想去旧金山住,因为那里生活成本太高了。\"" }, { "speaker": "加里", "text": "但不住在那里的代价更高。" }, { "speaker": "主持人", "text": "是的,是的,就是这样的。" }, { "speaker": "主持人", "text": "这就是要点,对吧?" }, { "speaker": "主持人", "text": "比如在YC批次早期,我习惯于创始人说,\"这个公寓每月租金好几千美元。\"" }, { "speaker": "主持人", "text": "这似乎很荒谬。" }, { "speaker": "主持人", "text": "我应该付吗?" }, { "speaker": "主持人", "text": "然后他们说,\"不,你应该支付。\"" }, { "speaker": "主持人", "text": "而且如果有的话,你甚至应该支付更多来不仅仅住在旧金山,而是住在像这样的地方,在那里你可以创造这种偶然性。" }, { "speaker": "主持人", "text": "代币最大化将成为我们不得不教给创始人的事情之一,这并不是显而易见的,你不应该这样做。这实际上是租金。" }, { "speaker": "主持人", "text": "比如,你应该尽可能多地投入资金来获取最大的效益,而不是像对待办公室的桌子那样。" }, { "speaker": "主持人", "text": "当然,你可以在那上面节省开支。" }, { "speaker": "主持人", "text": "或者你不需要一个非常昂贵的沙发。" }, { "speaker": "主持人", "text": "但当涉及到实际使用模型和你的代币支出时,你应该尽可能地推动这个领域。" }, { "speaker": "加里", "text": "是的,YC的一个核心原则是如何找到好的创业想法?" }, { "speaker": "加里", "text": "生活在未来并构建所缺失的东西,对吧?" }, { "speaker": "加里", "text": "这是其深远版本,你只需要让你的大脑去思考,在一天内花费500美元在代币上,并说实际上只要我正在构建对我真正有价值的东西,我知道我正在构建正确的事情。" }, { "speaker": "加里", "text": "嗯,我会这样做。" }, { "speaker": "主持人", "text": "加里,我有一个奇怪的问题。" }, { "speaker": "主持人", "text": "你认为在某些方面,你在尝试建立所有这些同时作为Y Combinator的CEO的事实帮助了你吗?" }, { "speaker": "主持人", "text": "因为你的时间非常稀缺。" }, { "speaker": "主持人", "text": "你必须想办法在会议间隙之间写出数十万行代码。" }, { "speaker": "主持人", "text": "就像一个全职软件工程师,他们可以花时间打开网站并四处浏览并进行测试。" }, { "speaker": "主持人", "text": "这些分钟对你来说极其稀缺,所以你一直在努力找出如何自动化一切。" }, { "speaker": "加里", "text": "嗯,我确实有点羡慕时间亿万富翁。" }, { "speaker": "加里", "text": "你知道,有时候看看我的孩子们,他们现在就像是时间亿万富翁,我可以做任何事情,你可以随时在创业学校遇到人,就像你现在就是时间亿万富翁一样。" }, { "speaker": "加里", "text": "这太不可思议了。" }, { "speaker": "加里", "text": "你可以学习任何你想学的东西。" }, { "speaker": "加里", "text": "真是太好了。" }, { "speaker": "加里", "text": "所以,我个人认为我的哲学是我在疯狂地赶时间。" }, { "speaker": "加里", "text": "在我的大脑中,我可能已经在这个身体里活了100亿次生命,每个时刻都必须有意义。" }, { "speaker": "加里", "text": "然后如果我能最大化使用,也就是说你可以购买数百万年的机器意识的觉醒。" }, { "speaker": "加里", "text": "现在我可以成为时间亿万富翁。" }, { "speaker": "加里", "text": "这不是我自己的时间。" }, { "speaker": "加里", "text": "这是机器的时间。" }, { "speaker": "加里", "text": "为我工作,以及我关心的人类实体,为我关心的事业工作,对吧?" }, { "speaker": "加里", "text": "我关心YC。" }, { "speaker": "加里", "text": "我关心建设者们能够构建。" }, { "speaker": "加里", "text": "甚至在我们去年的内部会议中,在我们的离线活动中,我们会谈论如何教下一代使用这些工具。" }, { "speaker": "加里", "text": "所以,你知道的,我希望我能说,这都是大计划的一部分,这就是它开始的方式。" }, { "speaker": "加里", "text": "但这并不是真的,你知道,潜意识中我认为这是从一开始就是这样。" }, { "speaker": "加里", "text": "我想,就像我潜意识地做了像圆锥和谈论这些东西一样,坐在Boris Cherney的旁边是一个非常强大的时刻,因为我意识到他开始说一些我可以自己做的事情。" }, { "speaker": "加里", "text": "他说,“我们的团队不写一行代码。”" }, { "speaker": "加里", "text": "我想,“哦,实际上我可以这样做。”" }, { "speaker": "加里", "text": "就像现在正在观看的人一样,你和我并不不同,对吧?" }, { "speaker": "加里", "text": "我们是一样的。" }, { "speaker": "加里", "text": "我们从同一个地方开始。" }, { "speaker": "加里", "text": "我认为自己不是在天空中,尽管人们似乎认为我是,你知道的,我只是一个人试图做一件事。" }, { "speaker": "加里", "text": "如果我坐在Boris旁边,我知道这家伙是我见过最好的工程师之一。" }, { "speaker": "加里", "text": "但同时就像,如果我们打开提示一样,我们有相同的提示。" }, { "speaker": "加里", "text": "我们都有一样的MacBook Pro。" }, { "speaker": "加里", "text": "你知道的,没有什么可以阻止像我或你或其他任何人从使用数百万年的潜在令牌来为人类服务。" }, { "speaker": "主持人", "text": "好吧,加里,我认为这是一个美丽的引述,应该可以被转发。“" }, { "speaker": "主持人", "text": "它表明了我们必须要立即在X上获得它。" }, { "speaker": "主持人", "text": "你可以通过向机器借时间来拥有无限的时间。" }, { "speaker": "主持人", "text": "是的,这就是我们现在所处的时代。" }, { "speaker": "主持人", "text": "这是一个美丽的想法,可以以此作为结束。" }, { "speaker": "主持人", "text": "感谢Gary,让我们看到了未来。" }, { "speaker": "加里", "text": "谢谢你们。" }, { "speaker": "主持人", "text": "好的,感谢观看,下次在《光码》节目中再见。" } ]