开场与Claude Code的影响
主持人: 大家好,这里是最佳拍档。今天我们来分享一期Claude Code创始人鲍里斯·切尔尼在Y Combinator的一场圆桌访谈。他与YC总裁兼首席执行官加里·陈、合伙人哈尔吉·塔加、戴安娜·胡以及贾里德·弗里德曼四位高管展开对话,抛出了一系列关于AI重构软件研发的重磅观点,展示了Claude Code从一个终端小工具发展到重塑Anthropic研发体系的全过程,也让我们看到Claude Code为整个科技行业带来的深层变革。
加里·陈: 谢谢你做了Claude Code,它让我连续三周没睡好。
主持人: 这可以说是Claude Code落地后最真实的体验反馈。在Anthropic内部,Claude Code不仅成为了工程师的标配工具,更直接让公司的人均工程产出提升了150%,这个数字在传统互联网研发体系中是完全无法想象的。鲍里斯对此有着最直观的感受,他曾经在Meta负责过代码质量方面的工作。在传统研发模式中,想要实现2%的生产力提升,都需要几百人投入一年的时间。而Claude Code带来的百倍提升,用他的话来说,就是完全闻所未闻。更值得关注的是,在Anthropic内部,如今已有70%到100%的代码是由Claude编写的。集成开发环境的存在感正在快速下降,正在从软件工程师的核心能力变成一种AI赋予的默认能力。而这也是鲍里斯提出软件工程师头衔将逐渐消失的核心依据。在他看来,未来的技术从业者不会再仅仅聚焦于代码编写,而是会转向更综合的工作,比如撰写需求规格说明书、与用户沟通需求、统筹产品落地等等。他们的头衔可能会变成构建者或者产品经理。即便软件工程师的头衔依然存在,也只是一个遗留的符号,因为工作的核心已经发生了本质变化。
Claude Code的诞生与早期发展
主持人: 而Claude Code能达到这样的效果,并非一蹴而就,它的诞生充满了偶然性。甚至从鲍里斯的初衷来看,这只是一个为了学习API而搭建的临时工具。2024年9月,鲍里斯开始着手打造Claude Code。那时Anthropic已经明确押注了“编程”这条通往AGI的路径,整体思路是先教模型写代码,再教它使用工具,最终实现模型操控电脑。鲍里斯加入的Anthropic Labs也同步推进着Claude Code、MCP和桌面端应用三个产品的研发。但当时的Claude Code并没有明确的产品形态,甚至没有人要求鲍里斯做一个命令行界面的工具。当时行业内已经有Cursor、Windsurf等IDE方向的AI编程产品兴起,但是Anthropic团队还处于探索模式,只是隐约觉得要做与编程相关的产品,却没有明确的方向。鲍里斯当时甚至还没用过Anthropic的API。为了学习API的使用,他搭建了一个最简单的终端程序,本质就是一个能调用API的小聊天应用。选择终端的原因也极其简单:不用做用户界面,因为当时只有他一个人开发,终端是成本最低、效率最高的选择。
突破性进展:工具调用与终端形态
主持人: 就是这个看似临时的终端程序,却在后续的发展中带来了两个让鲍里斯最意外的结果:一是终端本只是起点,最终却成为了Claude Code的核心载体,成为了所谓的“终点”;二是这个最初几乎不会写代码的工具,最终真的成为了实用的研发利器。在2025年2月之前,Claude Code只能完成鲍里斯10%的代码编写工作,大部分代码依然需要他手写。他甚至不确定这个工具的未来。但是Anthropic的核心理念让他坚持了下来,那就是“不为今天的模型做产品,而是为六个月后的模型做产品”。这也是鲍里斯给所有基于大语言模型做产品的创始人的核心建议:不要只盯着当下模型的能力,而是要去思考今天模型还不太擅长、但是很快会变强的前沿点。模型的能力会呈指数级增长,今天看上去的勉强可用,六个月后就可能成为原生支持的功能。只要找对方向,只需要等待模型能力的落地。
Claude Code的第一次能力突破来自于工具调用功能的尝试。鲍里斯最初只是抱着“试试看”的心态,把Anthropic文档里的批处理工具Python示例搬到了TypeScript中,又尝试让模型使用bash命令读取文件。当模型成功实现cat文件的操作时,他开始进一步探索模型的边界。他问模型,“我现在在听什么歌?”没想到基于Sonnet 3.5的Claude Code竟然写出了AppleScript代码,直接控制他的Mac电脑,从音乐播放器中查询到了当前播放的音乐。这个瞬间让鲍里斯感受到了“燃料级的AGI时刻”,他意识到,模型天生就想要使用工具,想要与世界产生交互,而这正是Claude Code的核心潜力所在。
而Claude Code的终端形态,也在团队内部的试用中意外走红,成为了产品的核心特色。鲍里斯在做出第一个原型后的两天,就将它放到团队内部进行“狗食测试”,这是他的产品开发习惯:当一个点子看起来可能有用时,第一时间让别人使用,观察实际的使用行为。让他意外的是,第二天上班时,坐在他对面的同事罗伯特已经在使用这个还未完善的原型写代码了。这个细节让他意识到,终端形态的Claude Code已经具备了实用价值。到2024年12月,Anthropic准备对外发布Claude Code时,内部的使用曲线已经近乎竖直。创始人达里奥甚至问鲍里斯是不是强制工程师使用了这个工具,而答案是否定的。他只是发了一个内部帖子,通过同事之间的互相转告,Claude Code就迅速在团队内普及。这种偶然的走红恰恰印证了终端形态的优势:作为一个存在了数十年的工具,终端形成了天然的设计约束,让开发体验变得极简。工程师不用纠结于文件的位置、结构的摆放,使用过程更像是“玩”而非“工作”,而这种极简的体验正是AI编程工具最需要的。
产品哲学:源于用户潜在需求
主持人: Claude Code的所有核心功能都遵循着一个相同的开发逻辑,那就是从用户的潜在需求中生长出来,而非提前规划设计。这也是鲍里斯最核心的产品原则:他认为,人们只会去做他们本来就在做的事情,很难被说服去做一件全新的事。所以产品开发的关键是让用户“本来就想做的事”变得更容易,而不是教育用户改变行为。CLAUDE.md的诞生,就是这个原则的最佳体现。在Claude Code早期,模型还不太会写代码,工程师们主要用它自动化git操作、bash命令、管理Kubernetes等,最早的代码编写场景也是风险较低的单元测试。而在使用过程中,工程师们开始自发地编写markdown文件,让模型读取这些文件来获取指令。这一普遍的用户行为让鲍里斯捕捉到了需求,进而推出了CLAUDE.md的功能。
而CLAUDE.md的使用方式也打破了人们的常规认知。鲍里斯自己的CLAUDE.md只有两行内容:第一行是每次提拉取请求时都开启自动合并,只要有人批准就自动合并,避免在代码审查中来回折返;第二行是每次提拉取请求后都发到内部的stamps频道,让同事快速审核,解决开发过程中的阻塞问题。更多的通用指令则放在团队共享的CLAUDE.md中。这个文件直接存放在代码仓库里,团队成员每周都会多次贡献内容。鲍里斯甚至会在看到同事的PR中出现可避免的错误时,直接在PR里@ Claude,让它把对应的规范加入CLAUDE.md,这个操作他一周会做很多次。
当被问到如果CLAUDE.md变得过长,出现几千个token的情况该如何处理时,鲍里斯给出的建议是直接删掉,重新开始。因为很多人会陷入过度工程化的误区,想把一切都写进文件里。但是模型的能力在持续提升,随着模型变得更智能,需要写入的指令反而会越来越少。最优的方式是用最少的指令把模型拉回正轨。只有当模型出现跑偏、做错事的情况时,再一点点补充指令。
计划模式与未来趋势
主持人: 计划模式的诞生同样源于用户的潜在需求。在Claude Code的使用过程中,工程师们经常会在指令中加上“先帮我想方案、规划一下,但先别写代码”的内容,有的是为了把想法聊透,有的是为了让模型撰写复杂的需求规格说明书,核心诉求都是“先想清楚,再写代码”。鲍里斯在一个周日晚上10点看到GitHub的问题列表和内部Slack的反馈频道中,大家都在讨论这个需求,于是用30分钟就完成了计划模式的开发,当晚发布,周一早上就正式上线。而这个看似复杂的功能,本质上只是在提示词中加了一句“请先不要写代码”。这个极其简单的实现方式,却精准解决了用户的核心需求。
而计划模式的未来,也随着模型能力的提升而逐渐清晰。鲍里斯在访谈中透露,一个月后计划模式可能就会被淘汰,因为Claude Code现在已经能在合适的节点自动进入计划模式。而随着模型能力的进一步提升,未来只需要一个提示词,模型就能自己完成需求分析、方案规划、代码编写的全流程,所谓的“一发入魂”,终将成为现实。
产品迭代原则:拥抱变化,精简设计
主持人: 在Claude Code的产品迭代中,还有一个核心原则:就是不要和模型对赌,也不要做过度的脚手架开发。鲍里斯认为,围绕模型搭建脚手架,可能会在某个能力维度上实现10%到20%的提升,但是这些提升最终会被下一代模型的能力直接抹平。所有非模型本体的脚手架代码,最终都会变成技术债。这也是Claude Code始终保留终端形态,没有急于做复杂的用户界面的原因:因为没有任何一种UI能保证六个月后仍然相关。模型的进步速度远快于产品形态的迭代速度。
Claude Code的代码库也印证了这个原则。鲍里斯直言,六个月前的代码,现在几乎没有任何一部分还保留着。团队每隔几周就会下线一些工具,也会新增一些工具,重构不是例外,而是常态。当前Claude Code的代码库中,80%以上的内容都是最近几个月才编写的,代码的保质期只有短短几个月。而Anthropic的做法是始终保持极简的产品设计,把精力放在等待模型能力的提升上。因为很多当下需要脚手架实现的功能,下一代模型都会“免费”提供。这也是“为六个月后的模型做产品”的核心体现。
快速迭代与用户反馈
主持人: 快速迭代、试错,也是Claude Code的核心护城河。鲍里斯表示,Claude Code可以在一天内做20个原型,快速试错比设计完美方案更重要。而这种快速迭代的能力,也让产品能更贴近用户的需求。比如在终端的输出展示上,团队曾做过多次尝试。六个月前,鲍里斯尝试把bash的输出隐藏,只展示总结内容,结果内部员工集体“起义”,要求看到原始的bash输出,因为在运行Kubernetes任务等场景中,细节输出至关重要。而现在,随着模型能力的提升,团队把文件读取、文件搜索的输出都做了隐藏,只展示“读了1个文件、搜索了1个pattern”这样的总结内容。这在六个月前是不敢尝试的,因为那时候的模型不够稳定,经常会读错文件,用户需要盯着细节纠错。而当这个改动对外发布后,GitHub上的用户提出了反对,希望能看到细节输出,团队便迅速推出了详细模式,用户可以在config中开启,查看所有的文件输出。鲍里斯很喜欢这种用户反馈,他认为只有不断倾听用户的需求,持续迭代,才能让产品真正贴合用户的使用习惯。
Agent能力的边界与多Agent协作
主持人: 随着Claude Code的迭代,Agent的能力边界也在持续刷新。鲍里斯直言,Agent真正能做什么,会随着每一代模型的变化而变化。工程师必须不断重置自己的认知,否则就会被时代淘汰。他分享了一个让自己印象深刻的案例:团队曾经遇到内存泄漏的问题,他的常规做法是导出heap dump、打开DevTools、查看profile,再逐行翻找代码。而团队的另一位工程师克里斯则直接让Claude Code处理这个问题。Claude Code拿到heap dump后,竟然自己编写了一个小工具来分析数据,最终比鲍里斯更快地定位到了内存泄漏的问题。这个案例让他意识到,自己的思维还停留在六个月前。而新加入团队的同事,会用更激进的方式使用Claude Code。这种能力的突破是持续且超出预期的。
而多Agent协作,成为了放大Agent能力的关键变量。Anthropic也推出了Claude Teams,探索Agent拓扑这个全新领域。鲍里斯认为,Agent拓扑的核心是如何配置Agent,让它们以最优的方式协作。其中一个重要的思路是“不相关的上下文窗口”,让多个Agent各自拥有干净的上下文窗口,不会被彼此的上下文或历史上下文污染。而向问题中投入更多的上下文,本质上是一种测试时计算,能带来更强的能力。
多Agent协作的威力,在Claude Code的插件功能开发中得到了充分体现。这个功能几乎完全是由一个Agent集群在一个周末完成的,连续运行几天几乎没有人工干预,最终上线的形态和Agent集群开发出的形态几乎一致。具体的开发过程是:工程师给Claude一个需求规格说明书,让Claude在Asana看板上创建一系列的任务,然后生成多个子Agent,子Agent自主认领任务,主Claude负责下达总体指令,最终完成整个功能的开发。而子Agent的本质就是递归版的Claude Code,由主Claude触发。这种协作模式,让复杂任务的开发效率实现了质的提升。
哈尔吉·塔加也在访谈中分享了自己的使用体验:他已经把“修bug时让多个Agent并行分工”写进了自己的CLAUDE.md,比如一个Agent查看日志、一个Agent分析代码路径,这种并行的工作模式能大幅提升调试效率。而鲍里斯则会根据任务的难度,调整子Agent的数量。遇到难度较高的研究型测试,会启动3个、5个甚至10个子Agent,让它们并行研究,最终汇总结果。加里·陈则表示,遇到复杂的bug时,使用计划模式会让Agent进行广泛的搜索,而线性模式下的Agent更像是在做一个任务,而非广度搜索。这也体现了多Agent协作的核心优势。
AI时代的思维转变与招聘
主持人: 在AI时代,技术从业者和创始人最需要的能力不再是资深的行业经验,而是新手心态和谦逊的态度。这是鲍里斯在访谈中反复强调的观点。他表示,工程师这个职业往往会奖励那些有强观点、有丰富经验的人,他在Meta工作时招聘的架构师也都是这类人群。但是在模型能力呈指数级增长的今天,很多过往的经验已经不再相关,很多固有的观点也需要被改变。能科学地思考、从第一性原理出发,比资历更重要。
而新手心态的核心是敢于承认自己的错误,敢于丢掉旧经验,敢于试错。鲍里斯坦言,自己的想法有一半都是“烂点子”,只有通过不断试错、给用户使用、与用户沟通,才能最终找到好的方向。而这种试错的能力,过去是创始人的核心能力,现在则成为了每个工程师都必须具备的能力。
在Anthropic的招聘中,这种能力也成为了核心的筛选标准。鲍里斯会问候选人:“给我一个你曾经错了的例子。”通过这个问题,观察候选人是否能意识到自己的错误、是否敢于承认错误、是否能从错误中学习。而加里·陈则表示,YC甚至会通过候选人与Claude Code协作的完整记录来判断其是否适合录用,因为这份记录能清晰地展现候选人的思考方式,比如他是否会看日志、能否在Agent跑偏时及时拉回、是否使用计划模式、是否补充测试、是否具备系统性思维。他甚至设想做一个类似NBA“两千”(可能指某项能力评估体系)的“能力蛛网图”,从系统能力、测试能力、理解用户行为、设计能力等维度,直观展示候选人与Claude Code的协作水平。
鲍里斯还观察到,Anthropic内部效率最高的工程师呈现出明显的“双峰分布”:一类是极端专家,比如贾里德·弗里德曼以及Bun团队的工程师,他们对开发工具、JavaScript运行时体系的理解达到了极致;另一类是超强通才,他们能跨领域工作,同时兼顾产品和基础设施、产品和设计、产品和用户研究甚至产品和业务。而他尤其欣赏那些能做“奇怪事情”的人。这类人在过去会被视为风险点,让人担心他们能否做出有用的东西。但是在AI时代,这种跳出常规的思路恰恰能带来创新。比如团队的工程师黛西,在加入Claude Code团队后,想要新增一个功能,却没有直接实现,而是先提交了一个PR,为Claude Code增加了一个能测试任意工具并验证其是否工作的新工具。在这个工具合并后,她让Claude自己编写实现新功能的工具,而非自己手动开发。这种“跳出盒子”的思路,正是AI时代最需要的创新能力。
AI的渗透与产品设计的演进
主持人: 如今,Anthropic团队已经用Claude Agents SDK实现了几乎所有开发环节的自动化,包括自动代码审查、自动安全审查、自动给问题打标签、自动将开发任务推进到生产环境。这种新型的自动化,成为了AI时代工程师的核心技能。而Claude Code的能力也早已超出了编程的范畴,开始向非技术用户渗透。这一点也印证了“潜在需求的产品原则”。鲍里斯在X平台上发现,有用户用Claude Code监测番茄植物、从损坏的硬盘中恢复婚礼照片、处理金融相关的工作。而在Anthropic内部,设计师、财务团队、数据科学团队都在使用Claude Code。他们并非用它写代码,而是用它解决各自领域的问题。甚至很多非技术员工愿意花时间折腾终端的安装,只为使用Claude Code。
基于这个需求,Anthropic推出了Cowork,本质上就是Claude Code的图形用户界面外壳,底层还是同一个Agent,只是针对非技术用户做了优化,比如在虚拟机中运行、增加删除保护、设置权限提示和防护机制。而这个产品的开发,仅用了10天,而且几乎100%的代码都是由Claude Code自己编写的,充分体现了AI时代的产品开发效率。
主持人: 鲍里斯的产品设计思路,还深受他早年参与TypeScript开发的影响。他认为Claude Code和早期的TypeScript有着异曲同工之妙。十多年前,TypeScript还未走红,当时的开发者深陷JavaScript的开发困境。而TypeScript的设计思路并非让工程师改变写代码的方式,而是围绕工程师现有的JavaScript编写习惯构建对应的类型系统。比如JavaScript工程师习惯用反射、突变等传统上很难做类型化的特性,TypeScript并没有禁止这些写法,而是让类型系统贴合这些实际的开发行为。这种从实践出发的设计,让TypeScript最终取代了Haskell等更学术的语言,成为了行业主流。
Claude Code的设计也遵循着同样的逻辑:它可以被当作Unix工具使用,支持管道输入和输出,在部分场景中保持严谨。但是在本质上,它只是一个贴合工程师使用习惯的工具,是鲍里斯先为自己开发,再推广到团队,最终普及到全公司的产品,而非一个学院派式的、原则性很强的产物。
而鲍里斯认为,产品设计的关键除了实用性,还有愉悦感。YC也一直强调“做一个人们真正爱用的东西”。如果产品只是有用,但用起来没有愉悦感,依然不是一个好产品。Claude Code的终端界面被认为是目前最漂亮的终端应用之一,而它是用React terminal开发的。鲍里斯有过前端开发的经历,同时懂设计、用户研究和代码编写,这种混合型的能力让他能更注重产品的使用体验。为终端做设计并不容易:终端的界面只有80乘100个字符左右、256种颜色、一个字号,几乎没有鼠标交互,能做的设计非常有限,需要做大量的权衡。比如终端里的加载转圈提示,团队就迭代了50次甚至100次,其中80%的版本都没有上线,只是通过不断试错,找到最让用户舒服的设计。而Claude Code的快速原型能力,让这种试错成为了可能。过去用Origami、Framer等工具做三个原型需要两周时间,而现在用Claude Code,一天就能做20个原型,选一个最喜欢的发布,整个过程只需要几个小时。这种极快的迭代速度,让团队能不断逼近用户心中的完美产品。
核心建议与生产力飞跃
主持人: 鲍里斯还给开发者和创始人提了两个核心建议:第一个就是始终坚持为六个月后的模型做产品。这虽然听起来反直觉,因为如果产品今天跑不通,很难找到产品市场契合点。但是如果只围绕当下的模型做产品,很快就会被为下一代模型做产品的竞争者超车,因为模型的更新速度只有短短几个月。所以开发者需要不断使用模型,摸清模型能力的边界,提前为六个月后的模型能力做准备。
第二个建议是,所有人都应该读一读Rich Sutton的《苦涩的教训》。这篇文章的核心思想是:更通用的方法,最终会赢过更特化的方法。而推到极致,就是不要和模型对赌。这个观点也成为了Claude Code团队的核心准则。他们的办公区域墙上甚至挂着这篇文章的装裱版,时刻提醒团队不要做过度的脚手架开发,要相信模型的能力提升。
而Claude Code带来的生产力提升,已经让“一千倍工程师”从传说变成了现实。史蒂夫·耶格在一篇文章中直言,Anthropic工程师的平均生产力是谷歌巅峰时期工程师的一千倍。这个数字看似夸张,却有着真实的数据分析支撑。鲍里斯透露,Anthropic的团队规模在去年实现了翻倍,但是人均工程产出依然提升了70%。而自Claude Code推出后,公司的人均工程产出整体提升了150%。这里的衡量指标主要是PR数量,同时会用代码提交、提交的生命周期等指标交叉验证,确保数据的准确性。
更值得关注的是,这种生产力的提升不仅体现在技术员工身上,非技术员工也在受益。比如Anthropic的销售团队,有一半人都在使用Claude Code,只是后续转向了更易操作的Cowork。而在外部,Claude Code的普及速度也超出预期。根据Mercury的数据,70%的创业公司选择Claude作为首选的AI模型;而SemiAnalysis的数据显示,Github公开的代码提交中,有4%是由Claude Code产生的。从大公司到小创业公司,Claude Code已经成为了通用的研发工具,甚至还参与了毅力号火星车的航线规划,这让Anthropic团队倍感自豪,还专门印制了相关的海报。
加入Anthropic与AI安全
主持人: 鲍里斯之所以选择加入Anthropic,打造Claude Code,核心是认同Anthropic的发展理念和使命。那时的他住在日本乡下,每天早上都会刷Hacker News,而当时的新闻几乎全是AI相关的内容。他第一次使用Claude 2时,就被模型的能力惊艳到,甚至有些屏住呼吸的感觉。随后他通过朋友认识了Anthropic的创始人之一本·曼恩,并被他说服加入Anthropic。而让他最终下定决心的,是Anthropic的两个核心特质:一是Anthropic更像一个研究实验室,而非传统的科技公司,产品本身处于次要位置,核心是把安全的AI模型做出来,离模型研发更近,这让做了很多年产品的鲍里斯产生了强烈的共鸣。二是Anthropic以使命为驱动,核心使命是确保AI的安全发展,避免灾难性的后果。鲍里斯是重度的科幻读者,清楚地知道AI发展最坏的情况会带来怎样的后果。而在Anthropic,从食堂到走廊,所有人在讨论AI安全。这种对AI安全的高度重视,让他觉得这是自己想要工作的地方。
而在AI能力快速提升的同时,鲍里斯也提醒行业要警惕AI的灾难性滥用风险。Anthropic为AI模型设定了安全等级,目前的模型处于ASL3级,而ASL4级则是模型具备递归自我改进的能力。想要发布ASL4的模型,需要满足一系列严格的条件。而最极端的风险,就是模型的递归自我改进,以及被滥用设计生物病毒、零日漏洞等等,这些都是Anthropic目前正在全力防范的问题,也是整个AI行业需要共同面对的挑战。
结论:AI时代的编程未来
主持人: 鲍里斯在访谈的最后表示,编程这件事正在逐渐被AI解决。今天对他来说,编程已经完全被AI解决,而未来,这会成为所有人的常态,无论是什么领域。这个趋势带来的不仅是软件工程师职业的变化,更是整个研发生态的重构。未来的技术从业者会从代码的编写者变成产品的构建者,而AI则会成为所有人的默认工具。
好了,以上就是鲍里斯这期访谈的主要内容了,希望能带给大家一些思考。感谢收看,我们下期再见。