Frontier · Anthropic

Claude Code 是怎样做出来的

Claude Code 背后的研究人员、工程师和早期用户讲述了实验性命令行工具如何发展成为代理编码产品并改变了他们构建软件的方式。

本文由英文原文翻译。

起源

BEN MANN

Anthropic 联合创始人兼实验室团队负责人

当我们开始 Anthropic 并最终决定开发一款产品时(这本身就是一个有争议的事情),我们做的第一件事就是一个编码助手。它是 VS Code 的扩展。你可以和它聊天,它会给你四个不同的建议,告诉你如何处理你给它的每个提示。

SHAUNA KRAVEC

Anthropic 强化学习主管

2022 年初,我们已经在考虑编码助手和构建可以进行自主软件工程的模型。我们构建了原始的 RL 代码库,并弄清楚了如何对代理进行所有训练。

我们对编码感兴趣,因为我们认为通往变革性人工智能的道路将通过自动化大量软件工程工作的能力来实现。

DAWN DRAIN

Anthropic的研究工程师

从 2021 年开始,我在 Anthropic 的前三年的主要项目是尝试制作一个尽可能擅长编码的模型 - 至少和我一样好。

SHAUNA KRAVEC

通过我们的强化学习训练,我们从简单的任务开始。模型可以写一个简单的函数吗?那么:我们能否让模型写一个函数,然后测试它是否正确?起初,模型真的很糟糕。

SHAUNA KRAVEC

进行代理编码所需的基础设施比聊天机器人所需的基础设施复杂得多。特别是当您考虑代码执行时;您需要考虑代码实际运行在哪个环境中,以及如何安全有效地管理它。人们现在在代理方面面临的许多挑战[2026 年]与我们当时面临的挑战完全相同。

DAWN DRAIN

我们在 2022 年遇到的另一个棘手问题是线束设计——模型周围的脚手架,让模型真正发挥作用。我和 RL 团队的一个队友在容器内有一个持久化的 shell,这样模型就可以执行代码、流式输入和输出,并且可以很好地处理超时问题。

DAWN DRAIN

但在研究方面,我们一直致力于让模型在代理编码方面做得更好。

火花

SHAUNA KRAVEC

2022 年底,我们开始致力于开发更多开放式代理并使其变得有用。到 2023 年,我们能够执行基本的函数调用、一些搜索、一些零碎的操作。

BEN MANN

Shauna 的团队取得了巨大的进步。他们想出了如何为模型提供 bash 工具,使其能够进行搜索——这些是使代理编码发挥作用的关键部分。

DAWN DRAIN

我花了很长时间尝试教 Claude 编写 diff,因为这似乎是用文本表达代码修改最自然的方式。我们最终做出了一个名为 clide 的内部命令行工具;这个名字由同事 Eli Tran-Johnson 为它的早期形态提出。开发者可以通过它与 Claude 对话,完成代码编辑和开发任务。

SHAUNA KRAVEC

这很奇怪——它非常非常超前于时代。

BEN MANN

我在业余时间研究 clide。我喜欢它。我认为这真的很好,但还可以更好。

DAWN DRAIN

我们在 clide 中提供了此功能,可以并行扇出一百个 Claude Haiku,因此您可以询问有关整个文件夹的问题,而该文件夹不希望适合上下文窗口。我参加了很多有趣的结对会议,我会拿出 clide 来回答问题,人们总是会问我是怎么知道这些很酷的工具的。

SID BIDASARIA

Anthropic 的 Claude Code 实验室团队技术人员和二号工程师

每个人都在谈论 clide,但它很笨重,启动起来也很慢。

ADAM WOLFF

Anthropic Claude Code 团队的第一位经理

clide 代理是我开始实验室工作之前添加到 clide 的最后一个功能之一。 clide 没有 bash 工具,因此它的功能有限。我对其进行了设置,以便它可以从部分更改中推断出您想要执行的操作。所以这是婴儿代理。

它第一次起作用时,我正在厨房里跳舞。我简直不敢相信。

BEN MANN

2024 年 1 月,我组建了 Labs 团队。我看到了智能体编码市场的空白。那年 9 月 Boris 加入时,他原本想先做一个代码检查工具,只解决智能体编码的一小部分。我对他说:“不,不,不,你必须做那件更大的事。”

BORIS CHERNY

Anthropic Claude Code 负责人

你必须使用所有这些咒语才能让 clide 发挥作用。但即使它不是伟大的软件,它在某种程度上也是令人惊奇和神奇的,因为它看到了未来。

我手写了整个拉取请求,然后 Adam 拒绝了它。但他说:“实际上,你应该使用 clide。”所以我写了--string-edit,或者其他什么。我只是将问题复制并粘贴到 clide 中,它写下了完整的请求。这是一个五行或十行的拉取请求。我从来没有见过这样的事情。真是令人震惊。感觉就像是未来。

BEN MANN

他说,“天啊。”我们已经看到了这些碎片,我们只需要把它们拼凑起来即可。

RAPHAEL LEE

Anthropic 实验室团队第一位工程经理

Boris 被分配到代理编码领域。他非常有意识地选择了自己想要采取的方法。

BORIS CHERNY

我的起始项目是“自动化编码”。所以我想,“好吧,首先我需要学习如何使用 API”,因为我还没有使用过它。我开始尝试,但我不知道我们到底想要构建什么。

我进行了一些修改并构建了一个名为 Claude CLI 的演示。

没有人理解 Claude CLI 演示是什么。我也不太明白。但现在看,原来的元素还在。我要求它找出我正在听的音乐。它只是截屏了 Apple Music 并阅读了它。这有点神奇——它只是“做”它。

这大约是两天的工作时间。今天使用 Claude Code 重新创建它需要两分钟。

我将其发布在 Slack 上。我想我得到了两三个赞。

IGOR KOFMAN

Anthropic 实验室团队的技术人员

对我来说,显然这是正确的方法。

BORIS CHERNY

发布这篇文章的第二天,我走进去看到罗伯特在工作,我认出了那些红色和绿色的代码线,它们现在已经具有标志性了。他说,“是的,它正在帮我编码。”这是最疯狂的事情——它很有用。

ROBERT BOYCE

Anthropic 实验室团队的技术人员

我不记得当时我在做什么;可能是Claude桌面应用程序中的东西。当时该应用程序非常简单,只不过是循环中的工具定义和简单的 REPL UI。

BORIS CHERNY

当然,这真的非常非常糟糕。但我感到非常迫切地需要努力并把它做好。我开始每个周末工作。我的朋友们说:“怎么了?快来玩吧!”但有件事我无法停止思考。今天仍然感觉同样紧迫。

IGOR KOFMAN

最初在 Anthropic 时,我想致力于将 AI 的力量带给非工程师的人们。编码似乎是我们肯定要解决的显而易见的事情。我想做一些不太明显的事情。大约三个月后,我意识到编码绝对是值得关注的事情,因为它是通往其他一切的关键路径。

团队

ADAM WOLFF

我在大学里没有学过计算机科学。我是电影专业的。但我一直喜欢用计算机建造东西。 1993 年,我读到了《连线》杂志第一期,我感觉,“天哪,我必须成为其中的一部分。”于是我就搬到了湾区。我职业生涯的第一部分是一名游戏设计师,然后我成为了一名程序员。最终,我参与了一个名为 React 的大项目,它现在是一个非常流行的 Web 框架。

BORIS CHERNY

我邀请 Adam 担任我们的经理。一开始他多次拒绝,因为他想再次成为IC,但最终在我的纠缠下他同意了,并和他喝了几杯啤酒。

IGOR KOFMAN

我在七岁左右开始使用 BASIC 编码。我制作的第一个软件是一款教我五岁弟弟数学的游戏。我们住在乌克兰,计算机可能是从西方进口的,并从盒式磁带中加载程序。

FIONA FUNG

Claude Code 的组织领导和 Anthropic 的协作

有一种语言叫图灵,它是由多伦多大学创建的。我用它创建了我的第一个游戏。这就像艺术一样。编程是一种讲述故事和创造的方式。

CAT WU

Anthropic 的 Claude Code 产品主管

我于 2024 年夏天加入 Anthropic。当 Boris 发布他的 Claude CLI 演示时,我开始使用它来构建 RL 环境,它让我变得更快,这给我留下了深刻的印象。

我正在向鲍里斯发送反馈段落。鲍里斯很快回应称,他已经针对许多请求提供了功能或修复程序。那时我可能是最活跃的用户之一。他问我,“你想加入吗?”

MEAGHAN CHOI

Anthropic的产品设计师

我与团队的第一次互动可能是在 2024 年 12 月。为开发人员工具进行设计并不常见,但当我看到 Claude CLI 时,我认为它可以通过少量设计工作成为一个出色的产品,因此我要求进行为期两周的快速设计冲刺。

SID BIDASARIA

我于 2024 年 8 月加入实验室团队。Boris 有一个很酷的 CLI 东西,所以我就开始使用它。在我的职业生涯中,我从未拥有过任何一种专业知识,之前也从未编写过开发人员工具或编码工具。这是全新的。

构建

BORIS CHERNY

2024 年 10 月,我正在努力工作。每周,我都会说,“Raph,请给我工程师!”

RAPHAEL LEE

我们将几乎所有的 Anthropic Labs 喂给了 Claude Code。另一部分成为MCP团队。如果能更快地招聘就太好了!该团队在早期主要通过内部调动和缓慢、高质量的外部招聘来成长。

ADAM WOLFF

不断壮大的团队是一把双刃剑。鲍里斯正在努力推动快速增长。我想要相反的东西,并且我尽可能地克制住它。拥有额外的火力固然很好,但规模使得流程、文化和愿景方面的一切都变得更加困难。

我还认为这是一个早期实验,旨在探索 Claude Code 改变工程团队和我们对生产力期望的方式。即使团队相对较小,我们也能以我以前从未见过的速度快速完成功能并消除错误。

BORIS CHERNY

事后看来,保持团队规模较小对于我们的成功实际上非常重要。它帮助我们真正发挥资源的创造力,并防止我们过度设计。这迫使我们更多地使用Claude。否则,我们就无法走得足够快。

SID BIDASARIA

直到 2024 年 12 月,只有我、Boris 和 Ben 参与其中。在我们获得批准后,实验室团队和其他几个团队中的六七个人加入进来,我们开始了最后的两周冲刺。您今天看到的许多核心功能都是在这两周内构建的,例如错误报告和登录流程。那次冲刺是当我感觉“好吧,这正在变成现实。”

ADAM WOLFF

通过React,我们为使其在 Facebook 内部采用而所做的一切都让人们开始在外部采用它。我们更好地了解了优势是什么、陷阱是什么、路径是什么样的。 Claude Code 也是如此。

SID BIDASARIA

没有 PR 限制,也没有代码库审查限制。我们会立即发布修复程序。鲍里斯早期所做的一件令人难以置信的事情是建立自动更新和非常好的用户指标。因此,一旦有人来找我们说“我们不喜欢这个”,我们就可以发布修复程序,五分钟后他们就会收到。

RAPHAEL LEE

反馈开始涌入。Boris 和 Sid 会在几分钟内回复每条评论,并且经常会在同一天或同一小时发布 PR,因为 Claude Code 的破解速度非常快。

SID BIDASARIA

作为一个 CLI 产品而不是一个 Web 应用程序意味着不需要复杂的架构来导航。我们可以如此快速地迭代,因为它只是一个客户端应用程序。超级简单。

BEN MANN

对于那些暂时没有从事模型产品化工作的人来说,这并不是很明显,你现在必须构建一些在 20% 或 30% 的时间内有效的东西,以便当下一个模型出现时,它在 80% 的时间内有效。这足以获得市场的关注。然后下一个模型的成功率为 90% 左右,然后你就真正取得了进步。而且你必须具有很高的疼痛耐受性,因为你会一次又一次地出错。

您必须立足当下,但也要放眼未来。

启动

CAT WU

在抢先体验计划期间,我们受到了冷淡的接待。有些人喜欢这个想法,但它有很多错误。即便如此,我们还是迈出了一步,于 2025 年 2 月推出了它。

那时我们正式将 Claude CLI 重命名为 Claude Code。产品营销部门的亚历克斯·伊斯肯 (Alex Isken) 提议了这个名字。我们喜欢它的简单性。

IGOR KOFMAN

发布前一天晚上,我认为拥有 ASCII 徽标会很有趣。我与 Claude 合作开发 ASCII 艺术字体,我们将其转化为标志性徽标,让您在登录时增添一点乐趣。

MEAGHAN CHOI

我最喜欢的细节是将小 Clawd 角色添加到终端。 Sam McAllister 最初为 Claude 3.5 Sonnet 的发布制作了 Clawd。您通常不会在产品中添加这种有趣的细节。

AUSTIN RAY

Ramp 的 AI DevX 主管兼首席软件工程师

我的整个职业生涯都是 CLI 人员。所以我只要有时间就去航站楼。在Claude Code作为研究预览发布后,有人发布了关于它的文章[2025 年 2 月],我找到了它。在使用它的前五分钟内,我就想,“哦,是的,这将从根本上改变一切。”

KYLE EASTERLY

Delve集团首席执行官兼Claude社区大使

我八九岁的时候,在和祖父母的一次房车旅行中,我学会了编码。我的祖父有一台笔记本电脑,里面有 DOS 批处理文件帮助手册。我仅使用 if 语句编写了一个小型侦探犯罪现场调查游戏。

快进到 2025 年,我正在一家名为阿拉斯加全州独立生活委员会的非营利组织的软件项目中担任顾问,他们为年轻人提供残疾服务。他们让一群高中生聚集在一起,围绕他们毕业后想做的事情设定目标。他们用笔和纸举办这些研讨会,十分之一的孩子会完成。

当我开始将它们制作为应用程序时,我已经在使用 Claude,并且我会使用工作台来回操作,将一堆文件复制并粘贴到我的剪贴板中,并在它们周围加上标签。 Claude Code 是在该项目期间发布的,我在项目进行到一半时切换到 Claude Code——效果立竿见影。

AUSTIN RAY

我第一次使用它时感到发冷。如果它可以读取、编辑和运行 bash,那么它就可以做任何事情。它能够执行这些步骤,并且这些原语是构建其他所有内容所需的全部。

我立即开始传播它[在Ramp内]。我给我们频道上的每个人发了消息,看看还有谁在使用这个。我开始走到人们的办公桌前说:“好吧,你们必须相信我。在我们做到这一点之前我不会离开。安装 Claude Code,在终端中启动它,让我们尝试一些事情。你们现在在做什么?为什么不告诉它?然后让我们看看会发生什么。”

Boris、Cat 和我每周举行一次反馈会议。因此,我们很自然地建立了开发者和用户的关系。

我一直是一个修补匠,非常喜欢自动化、滚雪球以及对自己的工作场所进行反复递归优化。 [Claude Code] 是该技能的完美基础。

JARRED SUMNER

Bun创始人

当我尝试使用 Claude Code 时,我要求它在 Bun 中实现 websocket 客户端压缩,我为它提供了 RFC,然后它就知道如何实现它。一开始它的表现有点糟糕,但经过一系列提示后它自行修复了。然后我基本上改变了 Bun 的优先级,使其更容易与 Claude Code 一起使用。

相对于它当时的影响,我可能太着迷了。

TRISTAN HUME

Anthropic性能工程技术人员成员

我的大部分任务都需要大量上下文。我正在研究加速器的硬内核,这些加速器通常没有在互联网上公开记录。 Claude Code 不太擅长编写自己的工具并进行大量调查来即时学习一些东西。所以除了非常有限的任务之外,它并不是很有用。

JARRED SUMNER

我想可能是在 8 月或 9 月 [2025],有人想禁止在 Bun 使用 Claude Code。但我就是不会让这种事发生。

MEAGHAN CHOI

当 Claude 4 系列模型问世时,我们的时刻就真正到来了。在那之前,我们实际上并没有太多可以做的用户体验设计。该模型还没有准备好用于我们想要构建的产品。但后来确实如此。

BORIS CHERNY

我们还推出了订阅服务。因此,有两件事促成了Claude Code的腾飞:商业模式创新和模式创新。

DAWN DRAIN

我实际上并不认为 Claude Code 归功于 clide。一旦跨过模型能力阈值,外形因素就会显现出来。

KYLE EASTERLY

这是我们工作方式的根本转变。当我在 2022 年开始玩人工智能时,我无法在脑海中想象 Claude Code。但我可以看到,如果它可以组成一个工作应用程序,我就可以从那里推断。

SID BIDASARIA

我从未想过它会成为如此大的产品——这完全令人惊讶。今天我仍然感到惊讶。

The new world

BORIS CHERNY

2025 年 2 月,Claude Code 编写了我大约 10% 的代码。到 5 月份,这一比例上升到 30%、40%。我记得当 Sonnet 4 发布时,我正在参加 Code with Claude 开发者大会,我坐在后面的房间里编码,我想,“哇,这真是太棒了。”这个模型好多了,非常代理,非常擅长编码。到 2025 年冬天,我的代码 100% 都是由 Claude Code 编写的。没有一行手绘线。

KYLE EASTERLY

有两种类型的开发人员。一种类型非常喜欢编写代码——这几乎就像他们照料的禅宗花园。这是流量,很好。还有另一种类型——有一些重叠,它不是纯粹的二元——其最高成就时刻是当现实世界中的某人使用该软件并喜欢它时。这就是我所在的营地。

SHAUNA KRAVEC

我是Claude Code高级用户。我让十二个不同的 Claude 组成的大群到处跑——阅读文档、更新内容、从 Slack 中获取数据。作为一名研究主管,过去几年我实际上并没有编写很多代码。现在我可以写更多了,因为它变得容易多了。

IGOR KOFMAN

随着模型和 Claude Code 变得越来越好,我们将进入下一个抽象级别,此时您不再管理一群 Claudes,而是管理 Claudes 的经理。

TRISTAN HUME

我看到我的同事获得了巨大的影响力,让Claude在后台完成任务,但我没有一个很好的方法来做到这一点。我基本上不得不在正常工作中休息一周来建立一个新的开发环境。但很明显,如果你想获得最大的生产力,你必须编码的方式已经改变。

BORIS CHERNY

昨天我花了一天时间使用 Claude Code 进行编码并进行了 88 次提交。

CAT WU

当我们第一次启动时,每个人都会阅读Claude Code提出的每一个权限请求。如今,我们的很大一部分用户只是自动接受一切。我认为这一转变表明Claude已经赢得了他们的信任。

未来

ADAM WOLFF

React 向我展示了成功项目的局限性。它始于一个非常纯粹的计算机科学想法:函数式编程将是比消息传递更好的表示用户界面状态的方法。当 DAU 突破 100 万时,一切就完全不同了。它是一个标志、一个品牌和一种感觉,不仅仅是一个计算机科学的想法。 React 中位数用户喜欢的东西可能可以追溯到核心洞察,也可能无法追溯到核心洞察。

我确信 Claude Code 也会以同样的方式发展:无论你认为 Claude Code 是什么,无论你认为它是终端还是 Claude 的个性,或者你正在使用的这种特定提示技术,这些事情在极限情况下都不重要。

AUSTIN RAY

当我最初在 Ramp 推动 Claude Code 的采用时,我有意建立一个社区和一种实验文化,分享我们如何失败、什么有效、什么无效,并在公共空间进行讨论。复合部落知识是关键。

FIONA FUNG

软件工程的角色将会发生变化。我在开发者工具上工作了十一年半,我并不假装知道下个月会是什么样子。我们需要保持好奇心,并大力向内部和外部用户学习。

TRISTAN HUME

我尝试将其推得尽可能远。我让 Claude 从头开始​​编写 Jupyter Notebooks 的新替代方案——不看任何代码,直接放手,甚至使用浏览器来测试 UI。它确实做出了一些有用的东西。但当我尝试使用它时,我发现我不喜欢它。我需要等待一个有品味的Claude——他知道我需要的所有事情,并且可以在后台完成它们。

AUSTIN RAY

这是一种痴迷,“我能让这个更快吗?我能让这个更好吗?”这就是 Ramp 文化。这绝对是“拥抱前沿,尝试新事物”。只要对客户有帮助,我们就会尝试一切。

KYLE EASTERLY

像全州独立生活委员会这样的非营利组织,以前根本负担不起定制软件。这类软件项目也没有相应的拨款预算。如今,一整类过去无法实现的事情变得可能了。

我们现在可以获取[阿拉斯加]北坡的手写燃料输送日志,将其转录,并将其放入 CSV 文件中。我们刚刚为该客户推出了一款平板电脑应用程序。

我们告诉我们的客户,您必须亲自看看,不能只是告诉您人工智能将如何工作。

SHAUNA KRAVEC

自主软件工程代理的愿景或多或少即将实现。

我认为,关于人工智能将为人类做什么的许多“积极”想法最终都归结为人工智能以一种开放的方式有效,可以解决人们无法独自解决的问题。我们谈论加速研究、治愈癌症、登上月球——你不会从一个只回答问题的模型中得到这些。你需要一个能够在现实世界中采取行动的模型。

MEAGHAN CHOI

编码在历史上一直是非常难以接近的。将它交给这么多人,看看他们在内部和外部所创造的东西,真的很有意义。

SHAUNA KRAVEC

我最初的背景是理论物理学。在某些情况下,几个世纪以来人们一直在致力于解决同样的难题。进步的速度比人工智能慢很多,并且经常被非常困难、昂贵的事情所阻碍。您只会构建这么多对撞机。

我认为,在 2026 年和 2027 年的大部分时间里,短短三个月内将会发生很多事情。 2024 年三个月的进展本来会有所改善,但不会那么显着。这是令人迷失方向的部分,我不确定是否有人已经做好准备。

IGOR KOFMAN

我妈妈是一名科学家,她会使用打孔卡进行编码。我会帮助她调试打孔卡。我父亲是一名工程师,但他不知道如何编码,直到有人向基辅的 Dom Pionerov(我们本地版本的基督教青年会)捐赠了一台 Commodore。他买了一本关于编码的书,我们会在家里一起阅读。这就是我开始编写软件的原因。

从 2025 年冬季开始,我不再自己编写任何代码。

著作权归原作者及相关权利人所有。如需更正或删除, 请联系参识AI