软件工程似乎正站在一个历史性的拐点上。许多人把过去几十年的技术进步归纳为几次关键范式转移:从大型机到个人计算机,从本地服务器到云计算,从传统开发到 DevOps 自动化。而现在,我们很可能正在进入另一种同样深远的阶段——由人工智能代理驱动的软件开发生命周期(AI-led SDLC)。 就在五年多前,我刚刚从大学的软件工程专业毕业。当时课堂上教授的许多核心原则——例如系统设计、模块化架构、代码质量控制——今天依然有效。但与此同时,我也越来越清晰地意识到:我们当时学习的大量具体实践,可能正在迅速变得过时。原因并不是这些知识本身不正确,而是软件工程的执行方式正在发生根本改变。 如果说过去的软件开发是“人写代码、机器执行”,那么未来的软件开发更像是人定义目标,机器组织实现过程。在这种模式下,开发者不再是唯一的执行者,而是逐渐转变为一群 AI 代理的协调者、监督者与设计者。虽然我们还没有完全进入那种工程师管理“AI 开发团队”的世界,但越来越多的迹象表明,这样的时代已经近在眼前。 理解这一变化,最好的方式或许是回顾过去的软件工程教育,然后看看哪些东西已经开始发生变化。 在大学期间,我花了两年时间学习一门叫做“系统设计”的课程。这门课几乎完全围绕一个问题展开:如何把人类的想法转化为软件系统。我们经常收到一些虚构的商业场景,例如一个店主和他的妻子不断提出新的产品想法,而我们的任务就是把这些模糊的需求进行分析、拆解和建模。这个过程通常需要经过多轮讨论与推理,最后才能转化为应用架构、伪代码以及 UML 图。 从某种意义上说,这种训练是在培养一种“需求翻译能力”。工程师必须理解业务逻辑,同时把这些逻辑转化为可以实现的软件结构。这曾经是软件工程中最重要的智力活动之一。 然而今天,这一过程已经发生了微妙但深刻的变化。当我刚刚打开编辑器准备分析需求时,一个 AI 代理往往已经生成了需求列表、系统蓝图以及代码脚手架。换句话说,人类曾经最核心的一部分工程工作,正在被自动化工具迅速压缩。 类似的变化也发生在调试领域。 过去,调试几乎是一种艺术。开发者需要逐行阅读代码、分析日志、设置断点,并在复杂的系统行为中寻找真正的因果关系。我至今仍然记得自己在 IBM 实习时的工作状态:很多时间都在定位系统问题,然后在 Stack Overflow 上寻找可能的解决方案。 但今天,随着 AI 工具的出现,调试的方式已经完全不同。现在更常见的场景是,开发者直接让 AI 分析日志、总结错误并提出修复建议。传统意义上的“逐行调试”,在很多情况下已经不再是第一选择。 从效率角度看,这当然是一件好事。但这种变化也带来了一个更深层的问题:如果 AI 接管了越来越多的技术细节,人类工程师的角色会发生什么变化? 在理论层面,这种变化可能带来一种新的认知结构。过去的软件工程包含大量重复性的“体力劳动”:写模板代码、查资料、排查日志、阅读文档。这些任务虽然枯燥,但也在无形中帮助工程师理解系统的底层结构。 当这些任务被 AI 接管之后,人类工程师可能只剩下那些最复杂的问题。乍看之下,这似乎是一种进步——工程师终于可以专注于真正有价值的工作。然而长期来看,这种变化也可能带来新的挑战。如果开发者始终处于高复杂度问题之中,他们是否还能保持对基础系统的直觉理解?当基础训练减少时,工程能力是否会逐渐依赖工具本身? 更进一步的问题是创新。 今天的大多数 AI 系统,本质上仍然是复杂的预测模型。它们可以在已有知识上进行组合、优化和扩展,但并不会主动创造完全新的思想。正如技术评论员 Scott Hanselman 所说,很多 AI 工具其实只是“更强大的自动补全”。 这就引出了一个有趣的类比。如果 AI 代理是足球教练,它们是否能够像瓜迪奥拉那样重新定义比赛风格?还是只会不断优化现有策略,例如更高效地执行传统战术?在这种情况下,AI 可能会加速技术进步,但未必能够带来真正的范式创新。 除了这些理论问题,还有一些更现实的变化。例如开发者知识生态的变化。Stack Overflow 曾经是全球程序员最重要的知识共享平台之一,但近年来其流量明显下降。许多开发者已经不再通过论坛寻找答案,而是直接向 AI 提问。 这种趋势带来了一个新的担忧:未来训练…
中国在人形机器人竞赛中领先——但美国仍然有机会
仅靠规模并不能决定这场竞争,软件能力、合作伙伴关系以及特斯拉能否实现大规模部署同样关键。 自今年年初以来,中国的人形机器人在国内外引发了巨大关注——从美国拉斯维加斯的消费电子展(CES),到中国的春节联欢晚会,各种展示不断出现。这些表演甚至激发了一些大胆的说法:认为一场新的工业革命正在到来,美国将很难再追赶上。 目前,中国企业已经在全球人形机器人市场中占据主导地位,去年全球超过 90% 的销量来自中国企业,出货量达到数千台。虽然埃隆·马斯克仍然坚持认为特斯拉最终会在这个行业中领先,但他最近也承认,中国公司是其最主要的竞争对手,并表示特斯拉的 Optimus 机器人至少要到明年才会准备好上市。 为了分析这些说法,并超越那些病毒式传播的机器人表演背后的真实情况,科技咨询公司 Omdia 的首席分析师苏连杰(Lian Jye Su)在 2 月 25 日的一场线上活动中接受了《Rest of World》的采访。苏连杰也是 Omdia 最新人形机器人报告的作者。在采访中,他分析了销量背后的趋势、中国和美国在人形机器人开发策略上的差异、为什么特斯拉仍然有可能找到自己的发展路径,以及在评估这个行业进展时真正重要的指标是什么。 以下访谈内容经过编辑,以提高简洁度和清晰度。 为什么中国生产人形机器人的公司数量远远多于美国或其他国家? 第一个原因其实很简单:中国在过去几十年里持续提升其高端工程制造能力。自从中国政府推出一系列工业政策之后,比如“中国制造 2025”和“十四五规划”,这些政策都高度关注强化工业制造能力。现在我们开始看到这些政策带来的成果,而这种能力不仅体现在机器人行业,还体现在更广泛的制造领域,例如电动车、太阳能面板产业以及航空工业。 与此同时,中国在软件领域也进行了大量投资。例如,从基础模型的开发到 AI 芯片的设计与生产,现在都可以在中国完成。这些因素的结合推动了当前中国在人形机器人生产规模上的快速扩张。 此外,还有第三个重要因素:需求。 中国许多国有企业正在积极采用这些机器人。在很多其他市场中,这种需求其实并不存在。可以说,这种需求在很大程度上成为了催化剂,推动中国人形机器人的生产与应用加速发展。 美国公司的战略似乎有所不同。特斯拉声称希望在 2027 年推出 Optimus 机器人。这个时间表现实吗? 特斯拉在人形机器人领域一直是先驱之一。事实上,在最早的人形机器人演示中,来自私营公司的展示中,特斯拉就占据重要位置。 实际上,Optimus 很有可能在明年就能够推出。 真正的问题在于:部署规模会有多大。 目前最大的挑战仍然是规模,而在这一点上,中国显然占据优势,因为它拥有更广泛、更成熟的制造基础。 在美国,制造商的反应相对较为谨慎。这部分原因是许多制造基地位于亚洲而不是美国。因此,美国市场的人形机器人应用速度可能会更慢。 不过,这对特斯拉或任何美国人形机器人创业公司来说并不一定是坏事。建立生产能力本来就需要时间,而等到这些公司真正建立起自己的制造基础时,它们也会准备好进行大规模部署。 那么,评估哪家公司在人形机器人领域领先的最佳标准是什么? 如果我们分析人形机器人的构成,就会发现它需要非常优秀的硬件和软件。 公司还必须具备生产能力以及大规模生产的能力。 同时,公司在研发团队上的投入也很关键,无论是软件工程师还是硬件工程师。 理想情况下,我们还希望看到强大的商业合作伙伴关系。 在当前的市场环境中,大多数人形机器人公司仍然处于创业阶段,因此要实现国际市场扩张其实非常困难。 因此,在很多情况下,这些公司最终都需要系统集成商或经销商,帮助它们进入其他国家市场并扩大全球影响力。 同时,它们还需要当地的合作伙伴来提供安装、部署、调试和维护支持。 因此,在评估一家人形机器人公司的成熟度时,需要从多个维度进行综合判断。 目前我们看到的情况是:中国厂商在生产规模方面明显更加领先。 但美国公司在技术层面仍然非常强大,尤其是在硬件和软件研发方面。 那么,中国的人形机器人行业是否存在潜在泡沫?如果美国的制造能力暂时落后,一旦市场进入大规模应用阶段,美国是否会更难竞争? 目前来看,机器人生产和出货方面的市场仍然相对理性。 实际上,市场确实需要更多机器人。…
前沿模型大战
就在不久之前,Sam Altman 的 OpenAI 看起来还在企业界将人工智能推向大众的竞赛中占据着相当稳固的领先地位。 OpenAI 打造了科技史上增长最快的消费者应用,账上拥有超过 1000 亿美元的资金,并与世界上最强大的计算基础设施公司合作。 然而,在硅谷,公司总是不断兴衰更替。 就在短短几个月里,OpenAI 的较小竞争对手 Anthropic 已经新增了数千家大型企业客户。该公司预计今年的收入将超过 190 亿美元,而去年这一数字是 90 亿美元,几乎翻倍。在一些科技圈子中,它的技术也被称赞为同行中最出色的。 甚至一场与美国国防部围绕合同产生的激烈冲突,也在某种程度上帮助了 Anthropic——至少在公众舆论中如此。在 OpenAI 宣布与五角大楼达成合作之后,Anthropic 的智能手机应用在苹果 App Store 下载榜上迅速冲到了第一名。 这场涉及美国国防部、OpenAI 与 Anthropic 的合同争议,是这两家人工智能创业公司之间长期且高度个人化竞争的最新一轮。这两家公司是科技行业最重要的 AI 初创企业,而两位领导者对于人工智能应如何发展也持有截然不同的观点。 这件事同时也显示出,在 AI 世界里命运变化有多么迅速。如今,各家公司正投入数百亿美元,希望最终的赢家能够掌握未来科技行业的主导权。 风险投资人 Siri Srinivas 表示: “过去,一个公司的故事往往需要多年时间才会形成。但现在,行业叙事可能几个月就会发生一次翻转。” 科技行业向来不缺乏激烈竞争。 在 1990 年代,Netscape 推动浏览器普及之后,微软通过强硬策略击败了这家新兴公司,并最终引发了一场改变行业格局的反垄断诉讼。 而在 2017 年 Uber 丑闻缠身的时期,它的竞争对手 Lyft 则利用粉色胡子标志和对司机更友好的广告形象迅速扩大影响力,向市场传递自己是一个更温和、更友好的替代选择。 如今的 AI 竞赛则是对这些历史竞争的进一步升级。…
Cursor 为 AI 编程主导权而开战
在成为最火爆、增长最快的 AI 编程公司之后,Cursor 正面临一个新的现实:开发者可能根本不再需要代码编辑器。 2026 年 1 月 5 日,Cursor 的员工结束假期回到公司,参加了一场全员会议。会议的幻灯片标题是:“战时(War Time)”。 在假期期间,一些员工在试用 Anthropic 最新模型 Opus 4.5 时,突然意识到一件令人不安的事情:这个模型的编程能力已经进步到开发者不再需要逐行审查输出结果。开发者不再需要在 Cursor 的代码编辑器中与 AI 助手协作,而是可以直接向自动化代理下达高层级指令,然后得到完整功能——有时甚至是完整产品。 而这正是问题所在。 Cursor 最初建立在一个完全不同的假设之上。CEO Michael Truell 在 2024 年曾向《福布斯》描述这款产品是“程序员版的 Google Docs”——一个人类与 AI 一起协作、不断优化代码的编辑器。 但如果 AI 已经不再需要人类协作,那为什么还需要编辑器呢?如果逐行编写和修改代码已经不再是程序员工作的核心流程,那么 Cursor 整个产品的核心假设就突然受到挑战。 在那场全员会议上,Cursor 的领导层警告说,接下来的几个月将会是动荡时期。一些项目可能会被砍掉,优先级也会发生改变。公司的新最高任务被标记为: P0 #1——优先级零号任务:构建最好的编程模型。 不是最好的工具封装。 而是最好的模型。 这可以说是一种氛围上的巨大转变。在 Cursor 内部,这感觉像是一场清算时刻。 而这种变化之所以如此震撼,是因为就在不久之前,Cursor 看起来几乎势不可挡。 公司在 2025 年初的年化收入约为 1 亿美元。到…
Claude Code 会毁掉我们的团队吗?
第一次坐下来使用 Claude Code 的 Opus 4.5 来开发软件时,我简直不敢相信它有多强大。 我接下来的想法是:这将会改变软件团队内部的动态。 角色之间的僵局 Marc Andreessen 最近把当前的局面形容为一种“墨西哥式对峙(Mexican standoff)”: 每个工程师现在都觉得自己可以做产品经理,也可以做设计师。 每个产品经理都觉得自己可以写代码、也可以做设计。 每个设计师则觉得自己也能胜任另外两种角色。 风险在于,许多个体贡献者开始认为自己不再需要其他人。 在短期内,这对团队文化来说将会非常具有冲击性。 当原本稀缺的技能变得更容易获得时,人们就会感到压力,想要“向上走一层”,以证明自己的价值。 Kent Beck 在 X(Twitter)上表达了类似的感受: “我 90% 的技能价值刚刚跌到了 0 美元,而剩下 10% 的杠杆价值却增加了一千倍。” 我担心的是,每个人都在重新校准自己的能力,朝着同样的那 10% 靠拢。所有个体贡献者都在争相冲向同一个高杠杆层级。 在 Ben Werdmuller 的文章《AI coding works now》中,他给工程师提供了一些建议。他写道:“AI 编程正在把重心从实现(implementation)转移到判断(judgment)。”他建议工程师重点培养以下四种能力: 制定产品目标 理解用户真正想要什么 对你正在创造的体验和价值有极其清晰的认知 设计、构建并维护稳健的软件架构 然而,对 Ben 的建议提出的挑战是:很多人都认为这些能力本来就属于自己。 公司领导层认为目标和战略本来就是他们的职责。 产品经理认为自己最有资格理解用户需求。 设计师希望掌控用户体验的设计。 而市场和销售团队则希望定义产品向客户传递价值的方式。 工程师则掌握架构的规划和实现。性能、可扩展性、安全性——这些都需要真正的专业能力。 随着 AI…
我不知道我的工作在十年后是否还会存在
在2021年,当一名优秀的软件工程师是一件令人感觉非常好的事情。世界上到处都是软件,而且每年都有更多公司出现,需要雇佣工程师来编写代码、运行系统。我知道自己很擅长这件事,也知道只要我愿意,我可以一直做下去。我热爱的工作似乎永远不会枯竭。 到了2026年,我已经不确定软件工程这个行业是否还能再存活十年。即使它还能存在,我也几乎可以肯定,它将会比过去二十年发生更大的变化。也许我会找到一种方式,在一个细分领域里通过监督 AI 代理来获得不错的收入;也许我最终不得不彻底离开这个行业。不管怎样,我曾经热爱的那种工作正在慢慢消失。 自食其果 不过,如果对此过度悲伤,其实也有些不太体面,原因有两个。首先,在2010年代成为一名优秀软件工程师的核心意义,就是代码可以提供巨大的杠杆,让我们自动化掉其他行业的大量工作。这正是编程为什么会成为(而且至今仍然是)一个如此高收入职业的原因。如今我们开始自动化自己的行业,从某种意义上说,这也许是一种宇宙层面的公平。但我想,今天任何一位在职的软件工程师心里都在担忧同一个问题:当 AI 代理完全渗透进这个行业之后,我还能做什么? 第二个原因是,说不定我会是最后一批被取代的人之一。作为一名资深工程师(staff engineer),我的工作在 AI 代理出现之前,其实就已经有点像在监督 AI 代理了:我大量的时间都在用人类语言与其他工程师沟通,确保他们的方向正确,协调各种工作等等。相比之下,初级工程师和中级工程师可能会更早受到冲击。毕竟,当你可以用远低于成本的价格租用 Claude Opus 4.6 的实例时,为什么还要雇一群工程师去充当少数高级工程师的“手和脚”呢? 高估与低估 我认为接下来的十年里,有一个问题会主导我的职业生涯:科技行业到底会高估还是低估 AI 代理的能力? 如果科技公司低估了 AI 代理的能力——也就是说,即使 AI 已经有能力取代工程师,公司仍然继续雇佣工程师——那至少我的工作还能保住更长一段时间。不过即便如此,“我的工作”也会越来越像是“监督一群 AI 代理”。我花在审查代码上的时间会比真正写代码的时间更多,阅读模型输出的时间可能会超过阅读我自己代码库的时间。 如果科技公司反而高估了 AI 的能力,那么情况会变得更奇怪,但从中期来看,我的处境反而可能更有利。在这种情况下,科技公司集体意识到自己过早停止招聘工程师,于是不得不急忙寻找足够的技术人才,来管理那些庞大而复杂的、由 AI 生成的代码库。随着初级工程师市场逐渐枯竭,真正有经验的高级工程师和资深工程师数量将会停滞不前,从而推高像我这样的人才需求——当然,这种情况会一直持续到模型最终足够优秀,可以完全取代我为止。 我是不是太悲观了? 当然,软件工程行业在过去也曾多次看起来像是要“完蛋”了。高阶编程语言曾被认为会让非技术人员也能编写计算机代码。外包也曾被认为会摧毁高生活成本国家对软件工程师的需求。但这些末日预言最终都没有成为现实。不过,这一点其实并不能给人太多安慰。历史上确实有很多行业因为技术进步而消亡。当某个行业真正被技术淘汰时,总会出现一个它无法再撑过去的危机。 最乐观的观点大概是:即便每一行软件所需的工程师数量减少了,但由于软件总量增长得太快,对软件工程师的需求反而会增加。这种现象通常被称为“杰文斯效应”。在这种思路下,有些工程师会说类似的话,比如:“总会有人需要清理这些 AI 生成的代码,所以我总会有工作。” 但我觉得这种情况不太可能。AI 代理不仅可以写代码,也可以修复漏洞、整理代码结构,而且在这些方面的能力和写新代码一样强——事实上,它们已经比许多工程师更好,而且每个月都在持续进步。既然如此,公司为什么要雇佣工程师来管理 AI 生成的代码,而不是直接投入更多、更强的 AI 呢? 如果杰文斯效应真的会发生,那可能意味着 AI 编程工具会进入某种平台期:它们足够优秀,可以生成大量代码(这一点我们已经看到了),但还不够优秀到能够很好地维护这些代码。乍看之下,这种情况似乎很合理。每个软件工程师都知道,维护代码往往比编写代码更困难。但遗憾的是,我并不认为事情会这样发展。 从我个人使用 AI 工具的经验来看,它们在代码维护方面也变得越来越强。过去一年左右,我几乎在查看代码库时遇到的每一个问题,都会同时问 AI 一遍,并且自己也去寻找答案。我亲眼看着它们从一开始的束手无策,进步到“有时候比我更快”,再到“通常比我更快,而且有时候还能给出更有洞见的答案”。 目前来看,一个能力合格的软件工程师仍然有很大的发挥空间。但这个空间正在不断缩小。我不认为 AI…
好消息:AI 将吞噬应用软件但那些造就伟大软件公司的护城河,并不会消失
软件行业正在经历一场“恐慌发作”。自 2026 年初以来,公开上市软件公司的 ETF 下跌了 30%,抹去了自 ChatGPT 发布以来的全部涨幅。像 Salesforce、Adobe、Intuit、ServiceNow 和 Veeva 这样的行业风向标——这些在过去十多年里为投资者持续创造复利回报的公司——在短短几周内下跌了 25% 到 30%。Substack 上的爆款文章描绘了一个企业软件客户基础被掏空、标普指数进入多年大幅回调的世界。他们把这称为“ SaaSpocalypse ”。这迅速成为市场共识:AI 将杀死软件行业。 是的,AI 很重要。但得出“AI 将摧毁垂直与功能型软件商业模式”的结论,完全说不通。真相是:AI 不会杀死软件公司。等这波恐慌过去之后,人们会发现,AI 是软件行业有史以来最好的事情。 为什么这么说? 看空的逻辑建立在一个对软件公司本质的误解之上。市场把“软件”当成一种商品化的投入要素,仿佛软件公司的价值在于代码本身,好像代码变便宜了,竞争就会变激烈,公司价值就会缩水。但代码从来不是价值所在。如果代码才是价值核心,这些公司根本不可能成长到今天的规模——它们早就会被开源软件,或者被发展中国家的廉价软件工程劳动力击垮。 今天的悲观论调通常落在四种观点之一:也许基础模型实验室会上移到应用层,占据每一个功能型应用;也许企业会“氛围编程”(vibe code)替代内部工具,至少会用这种可能性来压低软件公司的定价权;也许现有玩家会利用 AI 大幅扩展产品边界,彼此碰撞;又或者会涌现出大量新进入者——那种“单人十亿美元公司”——用更低价格打击 incumbents。再加上一点:智能体不会在乎品牌忠诚或熟悉名称,它们只会为某个任务选择最便宜的选项。 AI 可能会增加竞争;但它也会极大扩展软件公司能做什么、做得多快,以及它们所服务市场的规模。最终结果不会是利润率归零。软件行业将变得更大,而那些真正赢得竞争优势的公司,将继续拥有持久的护城河。 真正重要的护城河不会消失 当代讨论商业护城河的经典著作是 Hamilton Helmer 的《Seven Powers》。他提出七种构建竞争优势的方式:规模、网络效应、反向定位、转换成本、品牌、被垄断的资源、流程能力。我们逐一来看。 转换成本,或许是唯一真正会发生变化的护城河。AI 确实降低了更换供应商的摩擦与成本:智能体可以协助完成许多过去令人头痛的迁移工作。这意味着那些“挟持客户而非赢得客户”的传统公司,会面临更大压力。 但这对整个软件行业来说是好事。当企业必须真正赢得客户忠诚,而不能仅仅依靠锁定机制时,结果是更好的产品、更快的创新,以及一个更健康、增长更快、为客户创造更多价值的竞争生态。AI 可能会让部分客户转向新的赢家,但不会削弱整个行业的利润池。公司只会变得更好。 网络效应是经典护城河,而且不会消失。我们通常在社交媒体或平台型市场中谈论网络效应——节点越多,网络越有价值。但应用软件同样存在生态、协作和数据网络效应。表面上看,Salesforce 只是一个 CRM 数据库;但任何在企业环境中工作过的人都知道,它也是一个生态系统。当所有人都使用同一个平台时,这个网络会自我强化:你使用 Salesforce,因为所有人都在使用 Salesforce。使用者越多,其第三方应用生态和管理员专家群体就越有价值。近几年,Figma 也是如此:设计师、工程师、产品经理、市场人员都在 Figma 上协作。参加一年一度的 Config 大会,你就能直观看到生态的力量。 这种动态在…
聊聊房间里的那台类人机器人
我热爱机器人。我从事人工智能和机器人相关工作已经大约 5 年了。所以从情感上讲,我当然非常希望家里能有一台类人机器人,帮我洗碗、洗衣服,甚至替我去买菜。谁不想要呢? 但我真的不认为我们已经接近“通用型家用类人机器人”的时代。不知为何,在 2026 年,说出这样的观点竟然显得有些“有争议”。所以我决定把它写下来。 我的核心观点是:通用型类人机器人就像自动驾驶汽车——但实际上还要难得多。在解释原因之前,我们先谈谈好消息。 过去 5 年里,类人机器人领域确实取得了一些非常令人印象深刻的进展。我们现在已经拥有: 更好、更便宜的硬件。像 Unitree 和 Boston Dynamics 确实做出了非常出色的成果。尤其是 Unitree,价格已经大幅下降:Unitree G1 起售价 1.35 万美元,H2 起售价 3 万美元。1X 允许以 2 万美元预订 Neo。这只是我过去工作时使用的一只机器人手的成本的一小部分,而现在你能买到的是一整台机器人。 多模态基础模型与世界模型。所有前沿实验室现在都在用图像和文本训练模型;Google 还在 Gemini 的预训练中加入视频数据。我们有像 OpenAI 的 Sora 2 和 Google 的 Genie 3 这样的模型。这对机器人领域来说是个好消息,因为你完全可以把这些预训练模型作为具身智能(embodied AI)的基础,甚至可能用世界模型在无需大量真实世界数据的情况下训练它们完成多种任务。 巨额资本流入。人们对类人机器人非常兴奋,投资者正在向这个领域大量投入资金。比如 Figure(融资 10 亿美元,估值 390 亿美元)、1X(试图以 100 亿美元估值再融资 10 亿美元)、Neura(也在尝试以 80–100 亿美元估值融资…
构建 Claude Code 的经验教训:像智能体一样看世界
在构建一个智能体框架(agent harness)时,最困难的部分之一,就是设计它的行动空间(action space)。 Claude 通过“工具调用(Tool Calling)”来行动,但在 Claude API 里,工具可以用很多不同的原语来构建,比如 bash、skills,以及最近加入的代码执行(想了解 Claude API 上“程序化工具调用”的更多内容,可以阅读 @RLanceMartin 的新文章)。 面对这么多选择,你要如何设计智能体的工具?你只需要一个工具,比如代码执行或 bash 就够了吗?还是你会准备 50 个工具,每个对应智能体可能遇到的一种用例? 为了让自己更贴近模型的思维方式,我喜欢想象:你被给了一道很难的数学题。你会希望有什么工具来帮助你解题?答案取决于你自己的能力! 纸和笔是最低配置,但你会受限于手算速度和准确度。计算器更好,但你必须知道如何使用它更高级的功能。最快、最强的选择是一台电脑,但你也必须知道如何编写并执行代码来使用它。 这个框架对于设计智能体非常有用。你想给智能体提供与它自身能力相匹配、形状合适的工具。但你怎么知道它的能力到底是什么?你需要去观察、阅读它的输出、不断实验。你需要学会像智能体一样去“看”。 下面是我们在构建 Claude Code 的过程中,通过认真观察 Claude 得到的一些经验教训。 改进追问能力与 AskUserQuestion 工具 在构建 AskUserQuestion 工具时,我们的目标是提升 Claude 提问的能力(通常被称为 elicitation,即“引出信息/追问”)。 当然,Claude 也可以直接用纯文本提问,但我们发现,用户回答这些问题常常会觉得花了不必要的时间。我们能不能降低这种摩擦,提高用户与 Claude 之间的沟通带宽? 尝试 #1——修改 ExitPlanTool 我们最先尝试的是:给 ExitPlanTool 加一个参数,让它在输出计划的同时,附带一个问题数组。这是最容易实现的方法,但它让 Claude 感到困惑,因为我们同时在要求它给出计划,又要求它提出关于计划的一组问题。如果用户的回答与计划内容冲突怎么办?Claude 需要调用 ExitPlanTool 两次吗?我们需要换一种思路。(你可以在我们关于提示缓存(prompt caching)的文章里读到更多我们为什么要做 ExitPlanTool…
在人工智能已经出现的今天,我还应该考虑成为一名计算机程序员吗?
我有三个儿子,他们都知道我是一个计算机程序员,其中至少有一个对这个领域表达了兴趣。我热爱计算机编程,并且努力把这种热爱传达给我的儿子们、课堂上的学生,以及任何愿意倾听的人。 近来,我越来越频繁地从亲戚、朋友和学生那里听到一个问题: 在人工智能已经出现的今天,我还应该考虑成为一名计算机程序员吗? 我对此的回答是:“是的,而且……” “是的” 从根本上说,计算机编程关乎两件事情: 使用计算机解决问题在解决这些问题的过程中学会控制复杂性 我很难想象在未来,懂得如何用计算机解决问题,以及如何控制解决方案中的复杂性,会比今天更没有价值。因此,即便有了人工智能工具,我仍然认为这会是一条可行的职业道路。 “你必须自己写代码” 话虽如此,我认为人工智能对初级程序员来说是非常危险的,因为它能够为许多问题高效地生成代码。如果一名初级程序员没有真正学会写代码,而只是生成代码,那么他们其实是在剥夺自己获得那种“身临其境”的代码理解力的机会——那种理解只有在一行一行敲代码、亲自踩坑的过程中才能形成。 因此,我会警告我的学生: “是的,AI可以为这次作业生成代码。但不要让它这么做。你必须自己写代码。” 我会解释,如果他们不写代码,就无法真正有效地阅读代码。而在一个以人工智能为基础的编程未来,阅读代码的能力很可能会变得更加重要。 如果你无法读懂代码,你就会掉入“魔法学徒的陷阱”:创建出自己并不理解、也无法控制的系统。 编程变成提示词,是否就像汇编变成高级语言? 有些人说,从高级语言转向由AI生成代码,就像当年从汇编语言转向高级编程语言一样。 我不同意这种类比。 编译器在很大程度上是确定性的,而当前的AI工具并不是。给定一个高级语言结构,例如一个for循环或if语句,你通常可以相当确定地预测,在特定计算机架构下(至少在优化之前)生成的汇编代码大致会是什么样子。 但对于基于大语言模型的提示生成方案,却无法做到这一点。 高级编程语言是一种非常好的方式,可以用更少的文本创建高度明确的问题解决方案,这是汇编语言难以做到的。它们消除了大量“偶然复杂性”,留下的(如果代码写得合理)大多是“必要复杂性”。 而LLM生成的代码,往往并不能消除偶然复杂性,甚至可能通过选择不恰当的问题解决方法、走捷径等方式,引入更多的偶然复杂性。 如果你不能读懂代码,你又如何分辨这一点? 而如果你想读懂代码,你就必须自己写代码。 AI是一个很棒的助教 我还会告诉学生,如果使用得当,AI是一个极其高效的助教。如果你不把它当成代码生成器,而是把它当成帮助你理解概念和技术的学习伙伴,它将极大地促进你的智力成长。 学习计算机编程最困难的事情之一,就是“卡住”。你看不出诀窍,也不知道该从哪里开始,无法取得进展。 更糟糕的是,你可能因为偶然复杂性而卡住:比如不知道如何使用某个工具链,甚至不知道什么是工具链。 这不是你的问题,而是环境的问题。毫无意义地卡住会剥夺你真正学习的时间,甚至会把人从计算机科学这个领域中击退。 (我在伯克利自学Unix时就曾经卡住,这也是我后来退出那里的计算机科学项目的原因之一。) AI可以帮助你跨越这些障碍,如果使用得当,它会是一个很好的助教。我发布过一个AGENTS.md文件,供学生配置编码代理,使其表现得像一个优秀的助教,而不是代码生成器。我鼓励他们以这种方式使用AI。 只要使用得当,AI不必成为阻碍你成长为优秀程序员的因素。 “而且……” 我确实认为AI会改变计算机编程。它的改变可能没有某些人想象得那么剧烈,但在某些根本层面上,它确实会带来变化。 纯粹写代码的价值可能会下降 写代码这一行为本身,可能会相对贬值。 我对此感到有些遗憾。我通常很享受写代码的过程,用(比喻意义上的)双手让某个东西动起来是一件很有乐趣的事情。把代码写好是一门艺术,也是一种满足,其中有许多审美上的选择。 然而,看起来纯粹的代码书写能力,在未来可能会变得相对不那么重要。 当这一点的重要性下降时,我认为其他技能会变得更加重要。 沟通能力 例如,清晰地写作、思考和表达——无论是与大语言模型交流,还是与人类交流——在未来很可能会变得更加重要。许多程序员本来就有文学倾向,而这项技能的价值很可能会随着时间推移而提升,非常值得刻意培养。 阅读书籍、撰写文章或博客,都是有助于提升这方面能力的活动。 理解商业 你还可以将部分精力投入到更好地理解商业(或者政府角色等)上。 计算机编程本质上是用计算机解决问题,而企业里充满了各种需要解决的问题。 有些商业人士看到AI会说:“太好了,我们不需要程序员了!”但在我看来,同样也可以设想程序员会说:“太好了,我们不需要商业人士了!” 我认为这两种观点都很短视。不过,我确实认为AI可能赋予程序员一种能力:在本质上仍然从事编程工作的同时,投入更多时间去理解他们正在解决的现实世界问题(无论是商业问题还是其他问题)。 这与提升沟通能力是相辅相成的。 系统“架构”能力 和许多程序员一样,我对“软件架构师”这个词持复杂态度。我见过一些“架构宇航员”给世界带来了很多痛苦。 不过,找不到更好的词语来形容的话,我认为软件架构能力会随着时间变得更加重要:即有效组织大型软件系统的能力,尤其是控制这些系统复杂性的能力。 对初级开发者来说,这其中的一个难点在于:传统上,良好的系统架构能力来自于构建小模块的经验——最初可能做得不好,但随着时间推移逐渐改进。 我遇到的大多数糟糕架构师,要么是糟糕的程序员,要么几乎没有编程经验。 如果你让AI接管“简单部分”的代码生成,你又如何培养成为优秀架构师所需的直觉? 这就是为什么我再次强调:你必须自己写代码。 有效使用LLM…