Anthropic 把 Claude 背后的 Messages API 从 Python 整体迁到了 Rust。负责工程的 Katelyn Lesse 和负责产品的 Angela Jiang 在 Latent Space 播客里讲了这次迁移的经过:切换后 CPU 用量下降约 40% 至 50%,首个 token 的响应时间缩短约 10% 至 20%,长时间运行的任务改善更明显。按嘉宾的说法,Rust 版 API 在录制前一周已经全量上线。
Messages API 是开发者调用 Claude 的主入口。Angela Jiang 回忆,她大约一年前加入时,这套系统还是一个 Python 单体服务,只跑在一个 GCP 区域里。
卡住它的是 CPU
外界谈大模型公司的瓶颈,通常盯着 GPU,这次访谈里反复出现的却是 CPU。用量快速增长之后,API 服务、产品后端、代码沙箱和持续集成都在抢 CPU,代码写得越多,CI 跑得越频繁。按嘉宾的描述,研究团队和产品沙箱分的是同一块 CPU 配额,一边多用,另一边就得少用。Python 版服务在这种环境下显得格外费资源。
选 Rust 在内部有争议,原因很直接:
“we don’t have a single Rust developer in the room.” (会议室里一个 Rust 开发者都没有。)
团队后来才陆续招进有 Rust 经验的工程师。

人画架构,Claude 写实现
分工是这样排的:工程师负责分布式系统的设计和验证,大部分实现代码交给 Claude 写,Claude 也被拿来帮工程师补齐要用到的 Rust 知识。嘉宾强调,计划和验证两件事比写代码本身更要紧。
验证的做法偏传统。团队先做出一份完整的 Rust 版 API 分支,把线上流量影子复制过去,逐条比对新旧两套系统的输出是否一致,再用功能开关和负载均衡一点点把真实流量切过去。迁移由一个专门小组负责,其他工程师照常开发新功能;为了不让两边越拉越远,团队用静态分析标出那些在 Python 里新增、Rust 版还没有对应实现的功能,移植小组则尽量拒绝在迁移期间加新需求。
嘉宾的估计是,按常规做法一块块渐进迁移,可能要花好几年,这次属于一次性整体移植。具体用了多长时间、Claude 生成的代码占多大比例,访谈里没有给出数字,外部目前也无法核实。
同类重写放在一起看
这类“模型主写、人来兜底”的大规模重写,最近已经出现过几次。GitHub 此前披露用 Copilot 把自家运行时重写成约 83 万行 Rust;Opus 5.5 发布前后,也有团队用它两周把 TypeScript 编译器搬到 Rust。几件事的共同点是目标语言都选了 Rust,验证都靠新旧输出对照或完整测试集兜底。
差别在出错的代价。编译器和开发工具出问题,影响的多半是开发者本地;Messages API 承接的是全部外部调用,行为一旦不一致,就会直接落到客户的生产系统上。Anthropic 能在这条链路上做整体移植,靠的是影子流量和逐条比对这套老办法,单靠模型写得快撑不起来。
对其他公司来说,能借鉴的部分大概是验证流程,未必是语言选择。没有影子流量和输出比对的条件,模型一次吐出来的大批量代码,很难判断是否和旧系统行为一致。
下一步动会话状态
团队透露,之后会做架构层面的调整,其中一个方向是把对话状态存在服务端,客户端不必每轮都重传完整历史。长对话场景下,这能省掉大量重复传输和重复处理。这项改动何时上线、会不会影响现有接口和计费方式,Anthropic 目前没有公布。
参考来源:Latent Space 播客访谈、CocoLoop、Anthropic 开发者文档;访谈核验 CPU 降幅、首 token 延迟改善区间与全量上线状态。