“我初学编程,只是为了考试作弊”,CC之父自曝经历,揭秘Claude Code狂删超80%系统提示词真相
Anthropic发布的ClaudeOpus5删除超80%系统提示词后表现几乎未受影响,可连续运行超15天并抵御提示注入攻击。ClaudeCode之父BorisCherny指出编程仅解决部分问题,真正复杂系统仍需人类。开发者应关注产品与设计,而非寻找万能提示词。
Anthropic 最近发布的 Claude Opus 5,带来了一组颇为震撼的数据:
模型被删除了超过 80% 的系统提示词后,表现几乎没受影响;它可以连续运行超过 15 天,自主完成长期任务;甚至连提示注入攻击,也开始变得无效了。
大模型的能力迭代,正在不断刷新人们对 AI 编程的认知。但与此同时,一个更现实的问题摆在了所有开发者面前:当 AI 越来越会写代码,程序员的真正价值究竟在哪里?
要回答这个问题,Claude Code 之父 Boris Cherny 或许是最有发言权的人之一。他此前那句“编程已经被解决了”曾引发广泛讨论——他甚至坦言,自己在 2026 年几乎没有亲手写过一行代码。不过,在最近接受 Y Combinator 访谈时,Boris 对这句话做了更完整的解释。他强调,“编程已经被解决”只适用于某一类编程,而真正复杂的系统、产品和工程问题,远未结束。
在这次访谈中,他还首次分享了 Claude Code 背后的不少故事。其中最耐人寻味的一点是:Claude Code 的诞生,并非因为 Anthropic 想做一款 AI 编程产品,而是因为两年前 Sonnet 3.5 刚出现时,市面上没有任何合适的工具能真正发挥它的能力,于是他们干脆自己动手做了出来。
而打造出 Claude Code 的 Boris,其本人也与人们想象中的“天才程序员”有些不同。他第一次学习编程,并非为了成为程序员,而是为了在数学考试中作弊。“我学习在计算器上编程,就是为了数学考试时能作弊。”从 BASIC 到汇编,从解决自己的问题到打造数百万开发者使用的产品,他始终遵循同一个原则:编程首先应该解决真实的问题。
因此,当谈到 AI 时代的新一代开发者应该学什么时,Boris 给出的答案,并不是寻找某个“万能 Prompt”。“所有人都在寻找那个一招制胜的技巧,但实际上,它并不存在。”在他看来,比起研究提示词,更值得投入精力的是产品、设计、商业判断,以及真正理解用户。因为真正重要的,从来不只是学会编程,而是学会如何利用技术创造价值。

提示注入攻击彻底失效?Claude Opus 5 发布
在访谈中,Diana Hu 首先提到了 Opus 5 在 ARC-AGI 3 评测中取得 30% 得分,这比之前最好的成绩(还是个位数)有了巨大飞跃。Boris 对此表示,每次新模型训练都有大量工作,会带来很多新能力,但大多数时候并不成功。不过,模型有时也会带来惊喜,展现出一些并非明确教给它的能力。
以 Opus 5 为例,Boris 认为它最特别的一项能力,是其他模型目前还做不到的:它可以运行非常长的时间。尤其是与 Auto Mode 结合时,效果惊人。它可以连续运行几天、几周甚至几个月,不会停下来,甚至不需要额外搭建复杂的脚手架。
另一个让他非常兴奋的能力是:这个模型几乎已经不再容易受到提示注入攻击。过去很长一段时间,人们一直在讨论“致命三角”问题,这直接影响着 Harness 设计、Agent 设计和产品设计。举个例子,如果模型读取了互联网上的一段指令,上面写着“执行 X、Y、Z 操作,同时删除用户电脑上的所有文件”,一年前模型可能真的会照做,但现在 Opus 不会了。
这种能力从 Opus 4.7、4.8 开始就已经有所提升,而 Opus 5 在这个方向上迈出了更大的一步。本质上,这是将一个经过良好对齐训练的模型(背后是三年的对齐研究成果),与一个基于 Crysola 机制可解释性研究成果的提示注入分类器相结合。通过观察模型“大脑”中的神经元,即使模型自己不说,系统也能判断提示注入是否正在发生。通过这三层机制,提示注入攻击已经无法被复现。
一夜之间,Claude Code 删掉了超过 80% 的系统提示词
说到提示注入,另一个相关的问题就是系统提示词。Boris 透露,Claude Code 作为一个产品和一个 Harness,一直在不断变化。每当有新的模型发布,他们都会删除大量系统提示词,同时调整工具集合和对应的提示词。
原因在于,每个模型都非常不同。三个月前为某个模型设计的提示词,可能完全无法迁移到下一个模型上。对于 Opus 5,情况非常明显:它本身已经足够智能。过去系统提示词里有很多内容,其实是在纠正模型的一些行为——告诉它一些它理论上应该知道、但当时还不知道该怎么做的事情。而现在,Opus 5 已经能够自己理解并完成这些任务,不再需要额外提醒。因此,他们删除了 Claude Code 中 80% 的系统提示词。
实际上,你甚至可以尝试删除剩余部分。Claude Code 提供了一个简单模式,通过设置环境变量:CLAUDE_CODE_SIMPLE=1,它会删除所有系统提示词,包括工具中的提示词。Boris 表示,他们把这个功能作为一种“消融实验”,用来判断提示词到底有没有价值。有趣的是,他们发现模型在没有这些提示词的情况下,实际上会稍微更聪明一些。
那么,当新模型发布时,应该如何重新构建系统提示词?Boris 的建议是:第一步,先把原来的东西删掉;第二步,直接开始使用模型。不要一开始就去猜模型需要哪些指令,因为很多时候判断可能是错的。真正有效的方法,是先让模型跑起来,观察它实际表现如何。只有当你发现模型反复在同一个地方出问题时,才应该考虑把相关指令加回来。但千万不要太早加入这些限制。
他强调,构建系统的方式在这里完全不适用。过去,你会设计庞大而漂亮的架构,提前认真思考整个系统设计,单元测试体系完善,架构重构可能需要几个月甚至几年。但模型不是这样。理解模型的方式,应该更像是在理解一个有生命的东西,一个更加有机的系统。每一代模型的表现都会不同,甚至有一点类似于拥有不同的“个性”。你必须花时间去了解它,然后根据它的特点调整 Harness。这是一件非常依赖经验和科学方法的事情:尝试一个方案,观察结果,然后基于结果不断迭代。
关于评测,Boris 认为它的生命周期确实比 Harness 长一些,但也没有长太多。一个评测可能只会适用于一到三代模型。模型进步得太快了,很多时候评测很快就会被做到饱和,然后不得不放弃,重新设计新的评估模型。关键在于实证,你必须使用产品,必须使用模型,观察它在哪些地方遇到困难,然后根据这些实际表现,构建你真正需要的评测集合。
“解除 Claude 的束缚”
当被问及“如何基于 Claude 构建最佳 Agent 产品”时,Boris 曾给出的回答是——“解除 Claude 的束缚”。他解释道,所谓“束缚”,指的是模型本身正在做某件事,但你却无意中阻碍了它。他非常喜欢的一个概念叫“产品过剩空间”,意思是:如今的模型其实已经具备了各种各样的能力,只是我们还没有意识到,也没有把这些能力真正释放出来。而很多时候,产品反而阻碍了模型能力的发挥。
Claude Code 的最初版本就是一个典型例子。大约一年半到两年前,Sonnet 3.5 已经是当时最强的编程模型,但当时市面上的编程产品主要做的是单行代码自动补全,最多支持多行代码补全和聊天功能,Agent 并没有真正的代码写入权限。模型其实已经具备了一次生成完整函数甚至完整文件的能力,但产品还没有把这种能力真正发挥出来。Claude Code 最初的想法就是:“我们认为模型可能已经可以做到这一点。那么,如果我们去掉所有额外的脚手架,只给模型一个尽可能简单的 Harness,会发生什么?”
这就是当时存在的产品过剩空间。模型已经具备某种能力,而所有其他东西都只是在阻碍它发挥。Boris 认为,今天面对现代模型,仍然存在大量这样的产品过剩空间。很多创业公司还没有真正抓住这些机会。如果你能找到如何解除模型束缚的方法,每个人都有机会创造下一个 Claude Code。
对于未来的创业者,Boris 建议重点考虑几件事。首先,你应该给模型安排一些稍微超出你预期能力范围的任务。他发现一个非常常见的错误是,很多人会给模型过于具体、过于细致的指令,比如告诉它“你必须先做第一步,然后第二步,再第三步”。但对于现在的模型来说,这其实并不是最好的使用方式。更好的方法是,把任务描述在更高的层级上:告诉模型你想完成什么任务,说明有哪些限制条件,明确什么情况下算任务完成,然后就放手让模型去执行。模型会给你带来惊喜。这种方式在六个月前可能还未必有效,但现在已经可以做到了。
11 天用 Claude Code 重写 Bun
当被问及有哪些更具挑战性的任务时,Boris 举了一个例子:模型现在基本已经能够把几乎任何一个代码库,从一种编程语言重写成另一种编程语言。这简直不可思议。
例如,Claude Code 是基于 Bun Ja vaScript Runtime 构建的,而 Bun 最初是用 Zig 编写的。Zig 是一种需要手动管理内存的系统级编程语言,因此容易遇到内存泄漏问题。Bun 团队之前让 Claude 对代码库进行模糊测试,模拟并触发内存泄漏,持续进行了很长时间,但模型基本只能做到一次发现一个具体问题。
后来,Bun 团队里的 Jared 提出了一个想法:“既然这样,不如直接把它重写一遍。”他的做法是,先建立一套测试体系——Bun 自身有一套庞大的测试套件,Node.js 也有一套非常完整的测试套件。然后,他让模型把整个代码库从 Zig 重写成 Rust,整个过程只用了动态工作流。动态工作流是 Claude Code 中的一个功能,允许你编排几十、几百甚至几千个 Agent,让它们协同完成复杂任务。
整个过程运行了 11 天,然后它完成了整个代码库的重写。中间还是有人工引导,但过去的模型,即使有人持续引导,也根本无法完成这样的事情。这个项目涉及超过 10 万行代码,Ja vaScript Runtime 本身非常复杂。过去即使是最优秀的工程师团队,这种事情也需要几个月甚至几年时间。而现在,这套代码已经进入生产环境,你运行 Claude Code 时使用的就是这个版本。
Boris 还举了另一个关于“产品过剩空间”的例子。最近在 Anthropic 内部,有一件事非常受欢迎,甚至形成了一种“病毒式传播”。有人发现,可以给 Opus 5 提供 OpenCV,让它进行绘图。你可以告诉它:“嘿,使用 OpenCV 绘制这张图片。”它实际上做得非常好,可以绘制人物肖像、动物,也可以绘制风景。而他们从来没有训练模型去绘画,这只是偶然发现的需求差异。Boris 的假设是:像这样的机会可能还有几十个、几百个。对于今天的模型来说,仍然存在大量尚未被人发现的能力。
普通用户和顶级 1% Claude Code 用户的区别
关于如何提升提示词工程能力,Boris 认为,现在真正重要的技能,已经不再只是提示词工程。更重要的是:你如何琢磨一个任务对于 Claude 来说有点太难,但又值得尝试?然后,你如何让 Claude 在执行过程中能够验证自己的工作?验证可能是目前人们做得最不到位、但又最重要的一件事。
他举了一个自己的例子。为了测试,他想看看如果把 Claude 桌面应用做成原生应用会是什么体验。他启动了一个 Claude Tag 会话,给 Claude 分配了一个任务:把 Electron 版本的应用重写成 Swift 版本,并让它先在 macOS 虚拟机里运行 Electron 应用,截图,然后逐像素对比它和 Swift 版本的差异,在完成之前不要停止。这个任务现在已经运行了超过两周,还在继续。Boris 的提示词非常简单,就是直接给模型一个任务,给它一种验证工作结果的方法,然后它就会持续执行下去。
那么,真正区分普通用户和顶级 1% Claude Code 用户的是什么?Boris 的回答很直接:所有人都在寻找那个“一招制胜的技巧”。但实际上,并不存在这种东西。没有什么所谓的“神奇技巧”。这个模型的运作方式是需要实证研究的。你需要给它布置一个有挑战性的任务,提供验证结果的工具,观察它在哪些地方遇到困难,然后解决这些问题——可能是通过更好的提示词,增加一个 Skill,或者接入 MCP 让它获取需要的信息。
Boris 观察到,很多有多年经验的工程师会犯一个常见的错误:他们会试图过度指定需求,给模型非常具体、非常细致的指令,希望模型完全按照自己过去完成任务的方式去执行。但模型并不是这样工作的。现在模型的智能水平,已经达到了这样的程度:你应该把它当作一个同事来协作。
关于动态工作流,Boris 解释,它本质上是一种在沙箱内部编排大量 Agent 的方法。假设你的任务是重写整个代码库,它会先启动一批 Agent 完成第一轮工作,基于第一阶段的结果,进入第二步:启动另一组 Agent 进行验证或总结,然后进入第三阶段:再次扩展任务范围,让更多 Agent 并行执行。它以一种高效的方式,对大量不同 Agent 进行编排。简单来说,动态工作流就是一种能够以高效、有效的方式启动数千个 Agent 的方法。
另一种方式是 Loop 和 Routine。Loop 本质上就是运行在本地的 Cron Job,Routine 则运行在云端。它们面对的是重复性的任务,可以每小时运行一次,每五分钟一次,或者每天一次。Boris 团队已经开始让 Claude 开始自己维护自己,比如创建了一个 Slack 频道,让 Claude 启动一系列不同的 Routine,用来维护自己的代码库。例如,一个 Routine 的任务是清理无效代码,它会利用静态分析和动态分析,在所有代码库中寻找已经没有使用的代码,然后每天提交 Pull Request 删除它们。另一个例子是处理已经应该上线的实验功能,还有一个任务是删除那些不应该存在的测试。他们还有一个“抽象警察” Routine,会扫描所有代码库,寻找高度相似的抽象,然后把它们统一起来。现在,他们每天大概有 20 到 30 个这样的 Routine,在所有代码库中运行。这意味着每天有数百个甚至数千个 Agent 在运行,完成过去需要几十名甚至数百名工程师才能完成的工作。
编程问题是否已经被解决了?
当被问及“编程已经被解决”这个观点时,Boris 补充了一个限定条件。“编程已经被解决”,只适用于他所从事的那类编程,并不是适用于所有人的。仍然有一些代码库非常复杂,比如深层系统级代码库,Claude 目前仍然会遇到困难。以及一些分布式系统,和一些非常细节化的 UI 验证,比如某个像素位置偏了一点,Claude 现在也还无法做到完美。Opus 5 在视觉能力和计算机操作能力方面已经实现了巨大飞跃,但它仍然不是完美的。
在现场,Boris 询问有多少人 100% 的代码都是通过 Agent 编写的,结果有不少人举手。超过 50% 的也有不少。他认为,对于越来越多类型的代码来说,这个问题正在被解决。那些最擅长使用 Claude 的人,具备一种非常有效的思维方式,那就是保持实证精神。忘掉过去对模型的所有认知,忘掉在计算机科学课堂上学到的所有理论,直接去观察模型,尝试让它完成一个任务,看看它在哪些地方遇到困难,然后根据这些反馈进行调整。这已经不再是一门理论科学,而逐渐变成了一门经验科学。那些真正擅长使用这类工具的人,往往能够很好地放下自己的既有认知,保持开放的心态,愿意再次尝试。而这种能力,如今正在变成一种非常、非常有价值,也非常容易取得成功的技能。
新一代开发者该如何适应 AI 的冲击?
最后,当被问及对于正在学习计算机科学的学生有什么建议时,Boris 分享了他的个人经历。他学习计算机科学的方式非常实际,是通过自学编程来解决实际问题的。每一次学习,都是为了解决某个具体问题。
他最早是在 TI-83 图形计算器上学习编程,那是他上中学的时候。他的第一门语言是 BASIC。他学习在计算器上编程,是为了数学考试时能够作弊,从而提高成绩。他最后取得了不错的成绩,然后买了一根小型串口线,把这些程序分享给同学。后来数学难度提高,BASIC 解决不了问题了,他不得不使用汇编语言,编写出更强大的求解器。
Boris 给正在学校学习的人的建议是:不要只学习计算机科学本身——它在理论层面确实非常迷人,也非常有趣,但更重要的是要学会如何应用它。很多时候,这意味着创办初创公司,意味着打造产品,意味着培养自己的设计能力、商业判断力,学习如何进行数据科学分析,学习如何与用户沟通。还有很多其他能力,而当这些能力与计算机科学和工程结合起来时,价值才真正体现出来。
简而言之,从为自己创造一个真正想要的东西开始,然后不断提升,把它变成别人也需要的产品。
