Anthropic收购了Stainless并关闭了其SDK生成器业务,而Cloudflare则选择开源自家工具Forge来应对。

Cloudflare宣布推出一款开源工具,该工具能够读取API定义,并自动生成与之配套的SDK、命令行工具、文档以及其他交互接口。

这款名为Forge的工具采用Apache 2.0许可证发布,用户可以私下运行和修改,无需向Cloudflare支付任何费用。Dimitri Mitropoulos、Matt Taylor和Samuel MacLeod在周一发布的一篇博客文章中指出,该项目目前仍处于早期阶段:它已经能够为Cloudflare的cf命令行工具(用于在Cloudflare平台上进行统一操作的命令行接口)生成所需的输出,公司的API文档和SDK预计将在未来几个月内迁移过来。

“我们认为,为API构建工具是互联网的核心组成部分,你应该能够在不依赖SaaS产品的情况下做到这一点,”作者在文中写道。

当SDK生成器消失时

Cloudflare的这一宣布,距离谷歌做出类似举措仅过去了11天。谷歌此前透露,已与API工具公司Speakeasy合作,将后者的OpenAPI代码生成套件以AGPLv3许可证开源。

在9月17日发布的一篇博客文章中,谷歌表示,这一决定是因为其SDK生成服务突然中断——该服务提供商被收购后“突然宣布关闭”。这一变故恰好发生在谷歌正准备推出新API的时候。

“这次突如其来的中断表明,专有的、闭源的生成器会带来不可接受的平台风险,”谷歌写道。“如果整个行业依赖OpenAPI来定义接口,那么将这些接口编译成客户端库、命令行工具和智能体工具的工具链,也应该是开放的基础设施。”

谷歌所指的服务提供商正是Stainless。Anthropic于5月18日收购了这家专注于SDK和MCP工具的公司,此后Stainless宣布将逐步关闭其产品线,其中包括用于随API变化同步更新客户端库的SDK生成器。

据The New Stack当时的报道,此次关闭影响了包括OpenAI、谷歌和Cloudflare在内的大批客户。尽管这些公司保留了Stainless此前已为其生成的SDK,但它们失去了用来随API演进重新生成和更新这些SDK的共享服务。

就Cloudflare而言,公司此前已经着手构建后来演变为Forge的部分基础设施。今年4月,Cloudflare发布了cf的技术预览版,这是一款新的统一命令行接口,旨在最终通过一套一致的命令,为开发者和AI智能体提供访问Cloudflare各项产品的途径。当时,Cloudflare表示已创建了一套基于TypeScript的新模式和生成系统,用以保持CLI命令、配置、绑定及其他接口与其API同步。

此前的预览版功能有限,但如今cf已进入公开测试阶段,支持Cloudflare的全部API。Forge会读取Cloudflare已经为其产品维护的OpenAPI描述文件,并据此生成cf的各项命令,使公司能够将功能范围从Wrangler中大约280个函数扩展到覆盖Cloudflare API的3000多项操作。Cloudflare计划用cf取代Wrangler:测试阶段结束后,公司计划发布Wrangler的最后一个主要版本,随后将这款旧工具转入为期18个月的维护支持阶段。

值得注意的是,Cloudflare正着力将cf推向AI智能体领域:如今,单一的CLI工具便可用来完成诸如部署和监控Worker、配置Cloudflare Access、购买域名或管理WAF防护等操作。该工具默认输出JSON格式,并内置自然语言命令搜索功能,旨在帮助智能体在不将数千条可能命令都载入上下文的情况下,找到正确的操作指令。

这也很好地说明了Forge的用途。Cloudflare无需将SDK、CLI命令和文档作为独立的实现分别维护,而是可以从同一套底层API定义中统一生成它们。当API发生变化时,相应的开发者接口——或者智能体接口——都可以从同一数据源重新生成,从而减少了需要手动维护以保持同步的工具数量。

Cloudflare为何自研生成器

尽管Stainless曾是Cloudflare生产环境中依赖的托管生成产品之一,但Cloudflare并未特别点名该公司,而是详细阐述了其对整个托管生成器这一类别产品感到不满的原因。

部分问题源于规模之庞大:Cloudflare表示,目前公司拥有超过3500个API操作,由不同工程团队维护的数百项服务提供支撑。因此,生成器必须确保这一庞大API体系中的变更能够准确反映到客户使用的工具中,同时又不能让每一次更新都变成一场全公司范围的协调工作。

Cloudflare还希望工程师能够在底层代码合并之前,就看到某项API变更会对最终生成的SDK、CLI和文档产生怎样的影响。此外,公司希望同一套系统能够超越传统SDK的范畴,延伸至MCP服务器和Cap'n Web绑定等领域——后者允许应用程序通过Cloudflare基于TypeScript的RPC系统调用远程服务,其方式与调用本地函数几乎无异。

这一点在使用外部服务时被证明颇为困难。Cloudflare表示,API某一部分引入的问题可能要等到另一个团队后续尝试发布产品时才会显现,这使得工程师必须沿着他们并不完全掌控的系统反向追溯故障根源,然后再跨越公司与供应商的边界协调修复方案。

“我们尝试过几款试图解决这一问题的托管产品,并在生产环境中依赖过其中一些,”作者写道。“但没有一款真正为我们解决了这个问题,有些甚至已经彻底关闭了。”

开源因素

因此,Stainless的停运在一定程度上解释了Cloudflare为何选择将Forge开源。Stainless的生成器是专有的,并以托管服务的形式交付,这使得客户必须依赖该公司持续运营该服务。而Forge采用宽松的Apache 2.0许可证,意味着开发者可以在自己的基础设施上运行它、修改它,或者分叉该项目并独立于Cloudflare继续使用。

AI智能体的兴起进一步加剧了这一问题的紧迫性,因为它们越来越依赖SDK、CLI和API绑定来理解软件的功能以及如何与之交互。如果这些接口滞后于底层服务的更新,智能体可能基于不完整或过时的能力描述来运作。

这正是Cloudflare首席技术官Dane Knecht在解释为何保持接口更新在当下变得愈发重要时所强调的担忧。

“API始终是软件互联互通的方式,但AI智能体的出现让SDK、CLI和API绑定的质量变得更加重要,”Knecht通过邮件告诉The New Stack。“如果这一层出现过时或不完整的情况,智能体不仅会面临更糟糕的开发体验,还可能误解某项服务的实际能力。”

归根结底,Cloudflare打造Forge的原因在于,SDK和CLI生成工作已经“变得过于重要”,不能被排除在公司内部开发流程之外。

“Cloudflare需要一条团队自己能够运行、测试和扩展的流水线,我们认为其他开发者也应该拥有这种开放、不依赖特定供应商的基础设施,”Knecht表示。

当然,Forge还有很多地方需要证明自己。该项目仍处于早期阶段,cf是其首个投入生产的成果,Cloudflare表示其API文档和现有SDK将在未来几个月内完成迁移。文中提到的多种输入格式和生成目标,目前仍属于未来的工作计划。

但这一时间点颇具深意。短短11天内,谷歌和Cloudflare——这两家曾经的Stainless客户——都在公开场合全力支持开源SDK生成基础设施,这一转变正是源于它们此前所依赖的专有服务的突然消失。谷歌将这种依赖关系描述为“不可接受的平台风险”。而Cloudflare通过Forge,正试图将同样的风险从自身的技术栈中剔除。

Q&A

Q1:Forge是什么?它能做什么?

A:Forge是Cloudflare开源的一款工具,能够读取API定义,自动生成对应的SDK、命令行工具、文档等开发者接口,采用Apache 2.0许可证发布,用户可免费私有部署和修改。

Q2:Cloudflare为什么要自己开发Forge,而不继续使用Stainless等托管服务?

A:因为Anthropic收购Stainless后关闭了其SDK生成器服务,导致Cloudflare等客户失去了持续更新SDK的渠道。Cloudflare认为专有闭源生成器存在平台风险,因此决定自研并开源Forge。

Q3:Forge和cf命令行工具是什么关系?

A:cf是Cloudflare新推出的统一命令行接口,而Forge正是用来读取Cloudflare的API定义并自动生成cf命令的工具,目前已支持超过3000项API操作,未来将逐步取代旧工具Wrangler。

The New Stack