字节笔记本
2026年6月19日
Claude Code:智能体进化的一年 — Boris Cherny & Catherine Wu 深度对谈
Boris Cherny(Claude Code 技术负责人)与 Catherine Wu(产品负责人)深度对谈,回顾 Claude Code 一年来的巨大跃升——从单步助手到"数千智能体组成的树",揭秘 Anthropic 内部如何用例行程序(Routines)、Auto 模式与手机远程控制实现大规模自动化开发,以及跨角色融合的新工作范式。
嘉宾:Boris Cherny,Claude Code 技术负责人 / Catherine Wu,Claude Code 产品负责人
翻译说明:基于公开英文对话整理,按原意翻译,保留专有名词(CLAUDE.md、Routines、Auto mode、Remote Control、loop、worktree 等)。上标数字为原文对话段落编号。
本期金句
"Every single time Claude makes a mistake, I don't tell Claude to do it differently, I tell it to write it to the CLAUDE.md." 每次 Claude 犯了错,我不直接告诉它怎么做,而是让它把这件事写进 CLAUDE.md。
"I don't talk to an agent anymore. I talk to loop or I talk to a routine. And it prompts Claude for me." 我不再和智能体对话了,我和 loop 或例行程序对话,由它们来替我提示 Claude。
"If an automation doesn't work 100% of the time, it's not really an automation." 一个只跑通 95% 的自动化,不是真正的自动化。(引自 Cat Wu)
"All the roles are merging." 所有的角色都在融合。
"Put Claude at the center of everything." 把 Claude 放在一切事物的中心。
1. 回忆:Claude Code 刚发布时的样子
Catherine Wu:当我们首次发布 Claude Code 时,就像我发过的一个小视频,我上了 Slack,大概只有两个人给了类似的回应表情……人们当时还挺兴奋的。我觉得这真的很酷。特别是在处理我那些非常简单的工程任务时,它做得相当不错。¹
Boris Cherny:这真是一种非常委婉的说法,其实就是说它当时并不怎么好。(笑)¹
Catherine Wu:我真不敢相信,我们首次推出 Claude Code 至今竟然才过了一年。²
Boris Cherny:很难回忆起当时是什么样子了。现在的状况和我们今天所做的完全不同。现在我手下有一整支智能体大军在做事。比如,我在提示一个智能体,或者我有一个智能体在提示其他智能体,而这些智能体又去提示另一些智能体,就像一棵由数千个智能体组成的树。²
2. 最重要的一课:把错误写进 CLAUDE.md
Boris Cherny:但我认为,做这些工作时最重要的一点是,每次 Claude 犯了错,我不会直接告诉 Claude 换个方式做,而是告诉它把这件事写进 CLAUDE.md 文件,或者创建一个技能之类的方法来改变做法。如果你能做到这一点,Claude 就能永远运行下去。我觉得我们还意识到的另一件事是,"验证(verification)"非常重要。我们以前并没有意识到这一点。²
Catherine Wu:我在我们接触的开发者和企业中经常听到这个话题。对于如何让 Claude Code 非常擅长验证,你有什么建议吗?³
Boris Cherny:我觉得这件事几乎每个人都有误解。因为每当我们谈论验证时,人们想到的往往是单元测试,或者是 lint 代码检查,亦或是类型检查。这些显然是非常容易自动化的东西,而且这些东西早就已经自动化了。
但实际上,当我们谈论针对智能体的验证时,情况略有不同。核心在于:智能体能把这个东西运行起来吗?要弄清楚到底该怎么做,需要花一点脑力,因为它通常并不直接明了。我认为这就是挑战之一。³
Boris Cherny:我记得在 Opus 4 的时候,Claude 测试了它自己。我们直接把它接入 Opus 4,然后我说:"Claude,构建这个功能,然后像在 bash 里那样测试你自己。"它就打开了一个小的 Claude 命令行界面,然后测试了它自己的功能。我当时就觉得,哇,这太疯狂了。³
Boris Cherny:虽然现在我们对这种事已经习以为常了,比如,现在你知道的,我们为 iOS 模拟器、Android 模拟器以及桌面端的计算机使用(computer use)运转了这些闭环机制。这已经不令人惊讶了。但在当时那简直太疯狂了。你现在是怎么做的呢?³
Catherine Wu:这阵子我主要在折腾桌面端应用,团队里有一位工程师实际上添加了这个"桌面开发技能",教 Claude 如何运行本地桌面应用。我一直让它使用这个技能,但它有时在预发环境(staging environment)里还是会遇到问题或 bug。⁴
Catherine Wu:所以在这种情况下,我会让它去阅读 Slack,去了解:"嘿,现在预发环境是不是挂了?或者是不是已经有其他人遇到这个问题了?"然后,当它调试完整个问题后,我告诉它去更新这个"桌面开发技能"。⁴
Catherine Wu:这个技能的作用是,Claude 会真正启动一个本地桌面应用,并利用"计算机使用"能力在上面四处点击。所以当我添加了一个新的用户界面(UX)时,它会到处点击来调用这个新的 UX。它还会测试边缘情况,当发现问题时,它会修复它并重新检查。⁴
3. 角色融合:PM、设计师、工程师的边界正在消失
Boris Cherny:老实说,这是我最喜欢这个团队的一点,那就是每个人都写代码。我从来没呆过一个连产品经理(PM)都会写代码的团队。这简直太不可思议了,而且你写的代码真的非常好。比如……⁵
Catherine Wu:你太客气了。⁵
Boris Cherny:但我也觉得这正在变得越来越容易,因为本质上是 Claude 在写代码,所以稍微更重要的反而是你有什么样的想法。而且我觉得,如果你是一个掌握产品上下文和业务上下文的人,并且你在思考设计和用户,你就一定能想出更好的点子。⁵
Catherine Wu:这就好像所有的角色都在融合。⁶
Boris Cherny:我记得当初看到我们的设计师 Meaghan 提交的代码拉取请求(PRs)时,我一开始被吓坏了。我当时想:天哪,为什么 Meaghan 在提 PR?然后她说:"对对,我只是在修复那个按钮。"然后我就觉得:"好吧行吧,这代码看起来不错,所以也许没问题。"而现在我觉得这种事完全习以为常了。⁶
Catherine Wu:是的。我们在所有沟通过的企业里都看到了这种现象。最开始通常是工程师先采用 Claude Code。然后相邻的职能角色看到后会想:"哇,这东西非常强大,让我也试试。"⁶
Catherine Wu:然后我们发现这很疯狂。我们发现我们的设计师直接在应用里做原型和修改反而效率更高,而不再需要去 ping 工程师了。PM 也在直接修改应用。⁶
Catherine Wu:比如我们的财务团队都在 Claude Code 里运转,他们在那里做预测模型。嗯,还有数据科学团队。如果你和我们的数据科学家聊聊,那就太酷了。就是每个人屏幕上都开着 Claude Code。是的,我觉得它对于不同角色来说具有极其惊人的多功能性。⁶
4. 例行程序(Routines):让另一个 Claude 替你修 Bug
Boris Cherny:你觉得现在有哪些使用场景是在挑战其极限的?⁷
Catherine Wu:有一个让我非常兴奋的场景是"例行程序(Routines)"。我们团队里有一位工程师,他在我们所有的产品中发布了语音模式。他设置了这样一个例行程序:专门监听每一个进来的工单、每一个 GitHub issue,以及每一个关于语音模式的 bug 报告,然后他的 Claude 就会接手,主动提交一个修复补丁,然后把 PR 发送给他。⁷
Catherine Wu:当他把语音模式的这套流程跑通后,他想:"好吧,我们还收到了很多其他没有被回复的反馈。"所以,他也为那些设置了一个监听例行程序。⁷
Catherine Wu:有一次我发布了一个小功能,里面有一个我没注意到的边缘情况。有人为此提交了一个 bug,我本打算当晚去处理这个 bug。当我的 Claude 正在工作时,它说:"等一下,另一个 Claude 已经修复了这个问题。"我当时想:"这怎么可能?我之前完全没跟他谈过这个功能。"⁷
Catherine Wu:于是我去找他,问:"你是怎么这么快修复这个的?"他说他有另一个例行程序,专门寻找那些 5 小时内未被回复的 bug 报告并提交修复,而且他会直接把那些容易验证的 PR 合并进去。⁷
Boris Cherny:嗯。现在 Claude 经常跟我说这种事。⁸
Catherine Wu:就是别人已经修好了?⁸
Boris Cherny:总是会有另一个人的 Claude 已经在处理它了。是的,这就是变化之一。我觉得,不久前我们还在试图弄清楚如何使用例行程序,我觉得像智能体 SDK 就是我们能够通过编程方式使用 Claude Code 的第一个初步想法。但我感觉一开始并不是很清楚我们该怎么用它?用它来做什么?⁸
Boris Cherny:而我认为例行程序是第一个真正显而易见的应用。而且我不知道,比如它包揽了所有的代码审查。它像保姆一样照看每一个 PR。你还记得以前你实际上需要去回复代码审查的评论吗?以前你得去修复 CI 问题?以前你得去变基(rebase)代码分支?是的。我已经很久没做过这些事了。⁸
5. Auto 模式:告别权限提示轰炸
Catherine Wu:是的。当你在命令行(CLI)中与 Claude 同步工作时,你最常用的功能是什么?⁹
Boris Cherny:好吧,以前是计划模式(plan mode)。我现在不用那个了。⁹
Catherine Wu:那你现在用什么替代?⁹
Boris Cherny:自动模式(Auto mode)。自动模式是最好的。⁹
Boris Cherny:代替了计划模式。是的,因为更新的模型实际上不再需要计划步骤了。我认为这对 Opus 4 到大概 4.5 来说非常重要。然后我认为从 4.6 开始,特别是到了 4.7,它就完全不需要那个计划步骤了。⁹
Boris Cherny:我想有些人可能还在用,他们喜欢保留那个(计划)产物。但我不用了。我所有的事都用自动模式,因为这样我启动我的 Claude 后它就开始工作,然后我就直接去处理下一个 Claude 了。我不需要坐在那里盯着它看。⁹
Boris Cherny:但在非常早期的阶段,我们为 Claude Code 设置了类似权限提示模型,对吧?就像它要运行一个工具,然后它会问你:"嘿,你可以让我运行这个工具吗?"然后你必须回答是或否。⁹
Boris Cherny:在一年半以前,这已经是我们能做到的最好方式了,因为我们当时没有分类器,模型也没有像今天对齐得这么好。所以自动模式简直是巨大的一步飞跃,因为实际上你并不想去读大部分这样的权限请求。直接把请求路由给另一个模型,让它来检查安全性,这种效果要好得多。是的。⁹
Boris Cherny:如果某件事看起来有点可疑,或者你知道这不是你想要运行的命令,或者它不安全,这个模型就会直接拒绝它,然后你可以之后再回去允许它。我认为这是那种阶跃式的变化之一。我们根本不可能在一年半以前做到这一点。⁹
Catherine Wu:这就是人的本性,当你同意了 99% 的请求时,你在阅读它们时双眼就会变得呆滞麻木。所以实际上我们觉得自动模式比阅读每一个权限提示要安全得多,因为这意味着你只需要把注意力集中在最重要的事情上,而不是被一大堆 99% 都是"同意"的东西狂轰滥炸。¹⁰
6. 安全性:红队测试与信任智能体
Boris Cherny:我觉得安全性就是这种东西:你嘴上谈论它是一回事,但要真正正确地做到它则是完全不同的另一回事,因为它呈现出来的样子并不总是如你预想的那样。¹⁰
Boris Cherny:这完全取决于持续进行红蓝对抗测试(red teaming),持续进行渗透测试(pen testing),持续去观察寻找,总是保有一个威胁模型,然后利用它去弄清楚:"这个东西会被怎样攻击?人们会如何被提示词注入?"一点没错。¹⁰
Boris Cherny:我觉得团队就是痴迷于此。这太重要了,正因为如此,我才敢放心地信任智能体让它自己运行。我才可以脱身去安排第二个智能体。如果我不信任它,我就根本没法这么做。¹⁰
Catherine Wu:而在内部,为了真正把自动模式推给我们的用户,我们必须首先自己充分信任它。所以我们当时做的是,收集了数以千计的完整智能体运行轨迹和权限提示的记录,让自动模式去分类判断它是否安全。¹¹
Catherine Wu:它在这方面做得非常好,于是我们找来了红队成员,要求他们尝试进行提示词注入并试着黑进代码库,我们利用这些构建了评估测试(evals),并确保所有这些恶意操作都被拒绝了。¹¹
Catherine Wu:接着,我们让我们自己的内部团队也尝试去对 Claude Code 以及 Claude Code 的自动模式进行提示词注入和黑客攻击。然后我们改进了自动模式,以确保我们能拦截住所有的这些攻击。因此,它不仅能保护你免受今天广泛存在的漏洞威胁,还能防范我们所能构建出的最聪明的攻击。¹¹
7. 在新事物上构建:扔掉旧的工程直觉
Boris Cherny:是的,我的意思是说老实讲这是一种很奇怪的方法。我觉得过去一年里有各种各样的功能,当第一次有人提出时,我的反应都是:"啊,不,不可能的,这行不通。"然后随着时间推移,我逐渐认识到我实际上经常是错的,因为在模型上进行构建就是这么奇怪。是的。¹²
Boris Cherny:就好像我这么多年学到的所有这些工程知识,很大一部分我只能抛弃掉。这就是现在这项工作的一部分。我们是在一个全新的事物上进行构建,所以我们只能重新学习。¹²
Boris Cherny:自动模式绝对就是其中之一。当我第一次听到这个想法时我想:"把提示路由给另一个模型?没门,这行不通的。"然而经验结果证明,它实际上运行得极其出色。¹²
8. Loop 与下一次飞跃:不再和智能体对话
Catherine Wu:我听说你也喜欢 loop(循环指令模式)。¹³
Boris Cherny:嗯,是的我喜欢 loop。你是怎么用它的?我认为关于 loop,我们在一年半前经历过一次转变:我们觉得,好吧,这里有源代码,但其实工程师该去交互的对象,也许不再是源代码了,也许是智能体。¹³
Boris Cherny:于是我们实现了这样一个飞跃:我不直接写源代码,我和一个智能体对话,由智能体来为我写源代码。而我认为现在正在发生的事情是我们在进行下一次飞跃。我不再和智能体对话了。我和 loop 或者例行程序对话。然后它来代替我去提示 Claude。¹³
Boris Cherny:这简直太疯狂了。我的意思是,这也就一年半的时间,这已经是两次巨大的飞跃了。如果你退一步看,你是如何看待整个工程组织正在发生的变化的?¹³
9. 历史类比:扔掉文件柜,把 Claude 放在一切的中心
Boris Cherny:我要戴上我的商业猫咪帽(换个商业视角)了。我有一个最喜欢的案例研究,那是 90 年代《哈佛商业评论》的一篇文章。他们当时在讨论:计算机已经普及了,为什么我们没有看到生产力的提升?那真的是一个了解当时人们真实感受的绝妙缩影。¹⁴
Boris Cherny:因为你知道,人们一度使用大型机,后来公司转向了个人电脑。这在当时是个新事物,公司都在试图弄清楚怎么使用它。这就跟他们现在试图弄明白如何使用 AI 是一样的。¹⁴
Boris Cherny:结果证明,要从计算机中获得生产力效益,你要做的并不是保留你纸质的文件柜以及纸笔业务流程,然后在旁边放一台计算机做点辅助。实际上你必须做的是:扔掉文件柜,扔掉所有的纸和笔,把计算机放在最中心。所有事情都必须通过计算机来运转。它必须是每个业务流程的中心。¹⁴
Boris Cherny:我觉得在 Anthropic,我们有一种做法,当你入职时你不会去问别人问题。比如没有人入职时问过我问题。大家可能都是同样的做法:他们去问 Claude。这有点不可思议。这是我待过的第一家这样的公司。¹⁴
Boris Cherny:我觉得对我们来说,Claude 绝对是处于一切事物的中心。每当我有问题,我问 Claude。每当我写代码,我用 Claude。每当我需要代码审查,Claude 来做。每当我需要安全审查,Claude 来做。每当我需要填表或做其他事,Co-work 帮我做。¹⁴
Boris Cherny:所以 Claude 就处于一切的中心。我觉得那些真正弄明白这一点的公司——现在已经有不少了——他们正是把 Claude 放在了核心位置。¹⁴
Catherine Wu:我认为对于计算机来说,这种转变花了 10 到 15 年的时间,但实际上对于 AI,因为我们有如此大量的工作已经准备好了、被数字化了,而且 Claude 能够使用计算机,能够编写代码并运行代码,所以这种转变发生得要快得多。¹⁵
10. 告别繁琐,找回工程的乐趣
Boris Cherny:我觉得这真的非常令人兴奋。就像我觉得我现在再也不用去打扰别人了。当我与人互动时,那是因为觉得很有趣,我可以和他们在某些事情上协作,一起创造一些东西。不再是因为我需要他们、我必须从他们那里得到些什么。因为现在 Claude 实际上能干很多这类的事情。¹⁵
Boris Cherny:此外,作为一名工程师,我感觉我从来没有在做工程时体会过这么多的乐趣,因为繁琐的部分我不需要做了,我只是想出点子,和客户交谈。对于每一个想法,我都不再需要一个待办事项列表了,因为 Claude 会把一切都构建好。¹⁵
Boris Cherny:所以我的工作就是想出这些绝妙的点子,这太有趣了。好的,那么问题来了:未来是属于产品还是工程?是每个人都将成为产品经理(PM)还是每个人都将成为工程师?¹⁵
Catherine Wu:每个人都会兼具这两种身份。我非常强烈地感觉到这些角色正在融合。比如看看我们的团队:我们的产品团队都写代码,我们的开发者关系团队都写代码,我们的设计团队也都写代码。¹⁶
Catherine Wu:然后再看看我们的工程师,他们中的许多人都在端到端地交付产品。他们产生了一个关于要构建什么的想法,他们把它构建出来,他们与法务和营销团队合作,弄清楚我们该如何向世界传达这个产品,并确保它同样是安全的。很多时候他们就是端到端地跟进完整个流程。¹⁶
Catherine Wu:所以我认为现在 AI 真的能让那些拥有强烈好奇心、拥有极佳产品品味、并且喜欢这种端到端所有权的人受益。而现在有很多人同时运行着成百上千个智能体。随着人们从单个智能体过渡到多个甚至数百个,你认为人们应该采用哪些产品工具?¹⁶
11. 手机编程:远程控制让 Boris 把笔记本电脑留在了办公桌上
Boris Cherny:直到最近,我写代码的方式还是开着大概 6 个终端标签页,对同一个代码库检出 6 份 git 代码,然后在它们之间来回切换。现在非常不一样了。我只有一个标签页。¹⁷
Boris Cherny:我使用了我们刚刚发布的新型智能体视图(agent view)。它简直太棒了,我很高兴我们花了一段时间去迭代它,让它变得非常出色。我也使用桌面应用程序,因为那样我就不用再摆弄什么代码检出了。你知道,它会自动进行工作树克隆,会为我创建工作树(worktrees)。¹⁷
Boris Cherny:另外有一件在半年前我绝对想不到的事是:现在我可能有一半的工程工作都是在手机上完成的。因为我有这么多个智能体在运行,所以我直接从手机上启动。我使用远程控制(remote control),它现在的体验棒极了。¹⁷
Boris Cherny:我会先在电脑上启动个任务,然后我用手机远程连接,接着我就能四处走动,去买杯咖啡,然后随时检查一下我的智能体,或许再启动另一个智能体。¹⁷
Boris Cherny:有时我在和某人聊天,我们想出了一个新点子,我就会当场启动一个智能体。我会用语音模式跟它交流,直接让它去把东西建出来。我甚至都不需要再回到我的电脑前了。¹⁷
Catherine Wu:我记得你刚开始这么做的时候,因为你下班时真的把电脑留在桌子上,打开着,连着电源,锁着屏。我还以为你会在晚些时候回办公室来拿电脑。¹⁸
Catherine Wu:但后来天都挺晚了,我就想:嗯,也许他只是不小心把它忘在这儿了。结果第二天又发生了同样的事,第三天还是如此。我当时就想:等等,这太奇怪了,因为你一直在合并 PR,但你的电脑就在我旁边。我记得当时问你,你回答说:"是啊,我正躺在沙发上敲代码呢。"¹⁸
Boris Cherny:哈哈,没错。那就是远程控制变得非常好用的那一个星期。¹⁹
12. 上下文工程:极简主义
Catherine Wu:是啊。那么用户经常问到的另一个问题是,你是怎么做上下文工程(context engineering)的?特别是在大型企业里?¹⁹
Boris Cherny:这是一件有时代印记的事,你知道大家以前谈论提示工程,后来谈论上下文工程。这某种程度上是与模型当时的能力水平相匹配的。在 Sonnet 3.5 的时代,你必须做提示工程;在 Opus 4 的时代,你必须做上下文工程。但有了今天的这些模型,你完全不需要做这些了。你只需要给它最少可能的系统提示词,给它最少可能的工具,然后让模型自己去弄明白。你只需要给模型一种"拉取上下文的方法"。我认为那才是最重要的事情。你是怎么看这个的?¹⁹
Catherine Wu:我对这个的看法非常相似。我是一个"上下文极简主义者(context minimalist)"。所以我总体的哲学是:只告诉模型它需要知道的东西,让它自己去弄明白剩下的部分。我觉得当你给模型塞了太多的上下文时,就好像你在微观管理它。而有时模型其实知道一种能达到相同结果的更好方法。我个人更倾向于给予模型这份去自由发挥的权利。²⁰
Catherine Wu:嗯,而且总体来说,我们也正在让我们的驱动框架(harness)变得更加精简,这样你就有更多的空间来存放自己的提示词。并且这也让它能更好地遵循你的指令。²⁰
13. 展望:未来一年的产品形态
Boris Cherny:现在有各种不同使用 Claude 的方法,但我觉得一年之后,这将是一套完全不同的新东西。如果到时候还是这些旧东西,那反而太令人惊讶了。因为我想我们现在正在目睹这些巨大的趋势正在发生。智能体运行的时间越来越长,越来越自主。²¹
Boris Cherny:我现在很少只一次运行一个智能体了。通常是几个、几十个、几百个甚至几千个智能体同时运行。因此,与其适配的产品形态(form factor)将与以前完全不同。²¹
Boris Cherny:我不知道它究竟会是什么样子,而且我认为在很大程度上这将取决于团队去弄清楚它。这就是为什么我非常高兴我们以现在的这种方式运营团队:每个人都能提出自己的想法,每个人都能够去思考产品,每个人都时刻在和用户交谈。因为我不认为这些点子会由我们想出来,它们将来自整个团队。²¹
Catherine Wu:完全同意。同时也来自我们社区中和我们一起构建的每一个人。²²
说明:本文基于公开英文对话整理,上标数字为原文对话段落编号,中英对照供学习参考,不代表原作者立场。
原文来源:agentskills.dev