Code w/ Claude 2026 · Spotify 一手案例

编码不再是瓶颈。但让 Spotify 跑得快的,不是 Claude

同样一个 Claude,提效差别为什么这么大?首席架构师 Niklas Gustavsson 的答案很反直觉:秘诀不在模型,在他们几年前为「人」建好的那套地基。

几周到几月 3 天
一次跨后端 Java 迁移的用时变化 Fleet Management · Honk · Backstage
一个反转

先看结果,再看那个拐弯

Spotify 的数字确实猛。到演讲时(2026 年中),96% 的工程师每周都在用 AI 编码工具,PR 频率涨了 60%,绝大多数 PR 都是开发者跟 AI agent 搭档写出来的。采纳曲线在去年底 Opus 4.5 发布之后骤然变陡。Niklas 说,他们一直在内部推各种提效工具,但从没见过 AI 编码工具这种采纳速度。

96% 50% 0 Opus 4.5 发布 节假日小回落 2025 中 2026 中
其它内部工具的典型采纳 Claude Code(Opus 4.5 后陡升)

到这儿为止,像是又一个「上了 AI 就变快」的故事。但 Niklas 当场把它拐了个弯:让 Spotify 跑这么快的,不是 Claude 本身。顺着这句话往下想就会发现,单买同样的工具,并不等于能复制 Spotify 的结果,差别在工具之外。

真正让他们快的,是几年前就建好、本来全是为「人」服务的那套平台底座。而当初为了让人高效做的标准化,现在对 agent 的增益更大

很多人以为「上 AI 工具」是起点,工具买了提效自然来。Spotify 的经验正相反,地基决定上限,没有那层标准化的底座,再好的 agent 扔进碎片化的代码里也跑不顺。

📐

"If Claude has a lot of other code to look at, and that code looks roughly consistent, Claude will do a better job. That's what we're seeing."

Claude 身边可参照的一致代码越多,它干得越好——他们实测过:碎片化代码库里 agent 的表现可量化地更差 · Niklas Gustavsson

这套地基

那它到底长什么样

起因早于 agent。Spotify 几年前就撞上一个麻烦:生产代码库的增长速度,是工程师人数的 7 倍。开发者越来越多的时间花在维护上,升依赖、迁 API、打补丁,做功能的时间反被挤掉,迁移是大家公认的头号痛点。

工程师人数
生产代码库
7× 速度增长
人没多多少,代码库却翻着倍涨,维护的活只能交给自动化

为了接住这件事,他们建了两块地基。这两块当初都是为人做的,后来才发现对 agent 也刚好够用。

地基一
Fleet Management
不让几百个团队一个个手动改,而是写一小段「会改源码的代码」(底层叫 Fleetshift),跑在几千个组件上,自动提 PR。
累计 250 万+ 自动 PR · 自 2024 中约一半 PR 由它出
地基二
Backstage
他们开源的内部开发者门户。此前约一百个内部工具各管一摊,碎得发懵;Backstage 把它们收进一个单一视窗,围着一份组件目录组织。
~100 个工具 → 一个门户

"The fewer technologies we are world-leading in, the faster we go."

越少世界领先的技术,跑得越快——Spotify 最老的工程原则之一,比 AI 早很多年,却恰好为后来的 agent 铺好了路

变成杠杆

地基怎么就成了 agent 的跑道

先看确定性脚本的天花板。Fleet Management 早期靠「写脚本改代码」,简单可重复的活干得漂亮,碰到复杂改动就难了,因为用程序去操纵抽象语法树或写正则,需要很高的专门技能。最能说明问题的是那个自动更新 Maven 依赖的脚本,核心功能不过是找到 pom.xml、更新 Java 依赖,但为了把所有边角情况兜住,它一路长到了 2 万多行。复杂的改动,没人写得动。

maven-bump.transform确定性脚本
// 处理 pom.xml 里所有可能的边角情况
if (node.type === 'dependencyManagement') {
  if (hasProperty(version)) resolveProp(...)
  else if (isRange(version)) parseRange(...)
  else if (isBOM(parent)) walkImportScope(...)
  // ……还有 profile / classifier
  // ……exclusion / relativePath / 继承链
}
if (node.type === 'plugin') { /* 又一堆 */ }
// …… 每个边角都得手写一遍
20,000+行代码
honk.prompt交给 agent
「把这些仓库里的 Java 依赖升到新版本,遇到 BOM、profile、继承链照常处理,跑通构建再提 PR。」
一句自然语言 → agent 自己应付边角情况

2025 年 2 月,Spotify 开始在 Fleet Management 里用 AI agent,多轮迭代后有了 Honk。Niklas 打趣说,它名字和图标都挺傻,但用起来出乎意料地顶用。

关键在这里:Honk 不是凭空厉害,它是踩在前面那套地基上才跑得起来的。这四条,正好对应地基的四个面:

🎯
Fleetshift 给它编排
找目标、排期、追进度由 Fleet Management 管,Honk 只干中间那段改码
标准化让它能自验证
跑 Claude(Agent SDK)+ 自家 harness + K8s,在 CI 里跨多 OS 跑构建,没过就自己改了再试
📐
一致代码库让它更准
就是第二节那条可量化的差异,到处是一致样板可参照,agent 干得明显更好
🛡️
活护栏让它即时纠错
Backstage 暴露成 MCP,golden state + lint 一发现写法不对就反馈,它自己改回来
输入 编排 改码 验证 → 产出 一句 prompt 自然语言描述改动 Fleetshift 找目标 · 排期 · 追进度 Honk Claude Agent SDK · K8s CI 自验证 跨多 OS 跑构建 PR 没通过就让 Honk 自己改了再试

成果是实打实的。到 2025 年 11 月,Honk 已经生成了 1500 多个被合并进生产的 PR,而且不是琐碎改动:Java 值类型换成 record、数据管道升级到带破坏性变更的新版 Scio、迁到 Backstage 的新前端系统。这些迁移比手写省时 60% 到 90%。在所有 agent 里,Claude Code 是表现最好的,用在约 50 个迁移上、占了合并 PR 的大多数。开头那个 3 天完成的 Java 迁移,就是这么来的。

1,500+ PR
Honk 生成并合并进生产(截至 2025-11)
60–90%
复杂迁移比手写省下的时间
3
最近一次跨后端 Java 迁移,过去要几周几月

开发者还自己玩出了新花样。Honk 挂在 Slack 上,工程师在对话里 @ 它,对话本身就是天然的上下文,它飞出去把活干了、带个 PR 回来。他们内部有个实时仪表盘叫 Goose Farm,每只鹅代表一个正在跑的 Honk 会话。到 Honk v2 又加了多人协作,让 agent 跟多个开发者和团队一起干,而不只是一个人坐在终端前。

🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿🪿
Goose Farm · 每只鹅 = 一个正在跑的后台编码会话
"Firmer guardrails are accelerators, not constraints."

更硬的护栏不是束缚,是加速器:把人能管的边界划清楚,agent 反而跑得更快、更稳。

Niklas Gustavsson · Spotify 首席架构师 · Code w/ Claude 2026
瓶颈转移

编码不再是瓶颈,瓶颈挪到了人身上

编码速度上去之后,约束就移到了人的决策上。Spotify 向来是想法比建的产能多,但现在任何人都能在客户端的大仓库里打开 Claude,几分钟原型出一个功能想法,过去这要几天,连他们的 CEO 都在这么建原型。

另一面是,现在多出来 60% 的 PR 要审。Spotify 正在学怎么分配人的判断力,安全的自动合并,把评审火力集中到最要紧的地方。当瓶颈从写代码挪到做决策,他们几年前在 Fleet Management、Backstage、工程标准化上下的注,正好接住了这一棒。

以前的瓶颈
写代码
原型从几天压到几分钟,谁都能开 Claude 试
现在的瓶颈
审与决策
多出 60% 的 PR 要审,判断力成了新的稀缺
原始来源
Coding is no longer the constraint: Scaling devex to teams and agents at Spotify

Niklas Gustavsson(Spotify 首席架构师 & 工程副总裁)@ Code w/ Claude 2026 · 官方录像

Spotify 工程博客 · Honk 系列

数字以官方为准(96% / PR +60%)。内容忠实还原演讲与博客,关键数字已逐项核对。