我们正在将 Cloudflare 打造成构建和部署智能体(agents)的最佳平台。但可靠的智能体并非仅靠提示词(prompts)就能实现,它们需要一套由底层原语构成的稳健协调的基础设施。
在 Cloudflare,我们多年来一直在构建这些原语:Durable Objects 用于状态持久化,Workflows 用于长时间运行的任务,以及 Dynamic Workers 或 Sandbox 容器用于安全执行。像 Agents SDK 这样强大的抽象层,旨在帮助开发者在 Cloudflare 开发者平台上构建智能体。
但这些原语仅提供了执行环境。智能体仍需要一个能够驱动它的模型。
从今天起,Workers AI 正式加入了大模型竞赛。我们现在在我们的 AI 推理平台上提供前沿的开源模型。我们从发布 Moonshot AI 的 Kimi K2.5 模型开始,该模型现已在 Workers AI 上推出。Kimi K2.5 模型拥有完整的 256k 上下文窗口,并支持多轮工具调用、视觉输入和结构化输出,非常适合各类智能任务。通过将前沿规模的模型直接引入到 Cloudflare 开发者平台,我们现在可以在单一、统一的平台中运行整个智能体生命周期。
智能体的核心是驱动它的 AI 模型,而这个模型需要具备高推理能力和大上下文窗口。Workers AI 现在可以运行这些模型。
在过去几周里,我们测试了 Kimi K2.5 作为内部开发工具的引擎。在我们的 OpenCode 环境中,Cloudflare 工程师将 Kimi 作为日常的智能编码任务驱动程序。我们还将其集成到了自动代码审查管道中;您可以通过 Cloudflare GitHub 仓库上的公共代码审查代理 Bonk 看到这一点。在生产环境中,该模型已被证明是比大型专有模型更快、更高效的替代方案,而不会牺牲质量。
最初为 Kimi K2.5 提供服务是一次实验,但一旦审查了模型的性能和成本效益后,它很快变得至关重要。作为一个说明性示例:我们有一个对 Cloudflare 代码库进行安全审查的智能体。该智能体每天处理超过 70 亿个 token,并且使用 Kimi,它在一个代码库中就发现了超过 15 个确认的问题。粗略计算一下,如果我们在这个单一用例、单一代码库上使用中等规模的专有模型运行此智能体,每年将花费 240 万美元。使用 Kimi K2.5 运行此智能体成本仅为其中一小部分:仅仅通过切换到 Workers AI,我们就节省了 77% 的成本。
随着 AI 采用的增加,我们看到工程团队运作方式以及个人运作方式的根本转变正在发生。人们拥有一个全天候运行的个人智能体变得越来越普遍。推理量呈指数级增长。
这种个人和编码智能体的新崛起意味着成本不再是一个次要问题;它是扩展的主要障碍。当每位员工都有多个智能体每小时处理数十万个 token 时,专有模型的计算就无法成立。企业将寻求转向开源模型,这些模型在不收取专有价格标签的情况下提供前沿级的推理能力。Workers AI 在这里促进这一转变,提供从个人智能体的无服务器端点到为整个组织内的自主智能体提供动力的专用实例的一切服务。
Workers AI 自两年前推出以来就一直在为模型提供服务,包括 LLM,但我们历史上优先考虑较小的模型。部分原因是,一段时间以来,开源 LLM 远远落后于来自前沿模型实验室的模型。但随着 Kimi K2.5 等模型的出现,这种情况发生了变化,但要服务于这种非常大的 LLM,我们必须对我们的推理堆栈进行更改。我们想与您分享一些支持 Kimi 等模型背后的幕后工作。
我们一直在为 Kimi K2.5 开发自定义内核,以优化我们为其提供服务的方式,该模型基于我们的专有 Infire 推理引擎 构建。自定义内核提高了模型的性能和 GPU 利用率,释放出如果只是开箱即用运行模型本来会错过的收益。还有其他技术和硬件配置可用于服务大型模型。开发人员通常结合使用数据、张量和专家并行化技术来优化模型性能。 disaggregated prefill 等策略也很重要,在这种策略中,您将预填充和生成阶段分离到不同的机器上以获得更好的吞吐量或更高的 GPU 利用率。将这些技术与推理堆栈集成需要很多专门的经验才能正确完成。
Workers AI 已经完成了为 Kimi K2.5 提供服务的技术实验,以实现出色的吞吐量。当您自行托管开源模型时,许多功能并不会自动出现。使用像 Workers AI 这样的平台的好处是,您不需要成为机器学习工程师、DevOps 专家或站点可靠性工程师来进行托管所需的优化:我们已经完成了困难的部分,您只需要调用 API 即可。
与此发布同时,我们还改进了我们的平台,并发布了几个新功能,帮助您构建更好的智能体。
当您使用智能体时,您可能会在上下文中发送大量输入 token:这可能是详细的系统提示词、工具定义、MCP 服务器工具或整个代码库。输入可以达到模型上下文窗口的大小,因此在理论上,您可能会发送几乎 256k 输入 token 的请求。这真是一大堆 token。
当 LLM 处理请求时,请求被分解为两个阶段:预填充阶段处理输入 token,输出阶段生成输出 token。这些阶段通常是顺序的,在您可以生成输出 token 之前必须完全处理输入 token。这意味着有时 GPU 在完成预填充时并未完全利用。
在多轮对话中,当您发送新提示时,客户端会将会话中的所有先前提示、工具和上下文发送到模型。连续请求之间的差异通常只是几行新的输入;所有其他上下文都在之前的请求期间经过了预填充阶段。这就是前缀缓存发挥作用的地方。我们不是对整个请求进行预填充,而是可以缓存先前请求的输入张量,并且只对新输入 token 进行预填充。这节省了大量的时间和计算,这意味着更快的首次 token 时间 (TTFT) 和更高的每秒 token (TPS) 吞吐量,因为您不会被预填充阻塞。
Workers AI 一直执行前缀缓存,但现在我们将缓存 token 作为使用指标公开,并为缓存 token 提供比输入 token 更低的折扣。(定价可在模型页面中找到。) 我们还有新技术可以帮助您提高前缀缓存命中率,从而降低成本。
为了路由到同一模型实例并利用前缀缓存,我们使用新的 x-session-affinity 标头。当您发送此标头时,您将提高缓存命中率,从而导致更多缓存 token、更快的 TTFT、TPS 和更低的推理成本。
您可以像下面这样传递新标头,每个会话或每个代理一个唯一的字符串。一些客户端如 OpenCode 已经自动实现了这一点。我们的 Agents SDK starter 也已经为您设置了布线。
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/moonshotai/kimi-k2.5" \
-H "Authorization: Bearer {API_TOKEN}" \
-H "Content-Type: application/json" \
-H "x-session-affinity: ses_12345678" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is prefix caching and why does it matter?"
}
],
"max_tokens": 2400,
"stream": true
}'
无服务器推理真的很难。在按 token 付费的业务模式下,单次请求基础上的成本更低,因为您无需支付整个 GPU 来处理您的请求。但存在权衡:您必须应对其他人的流量和容量限制,并且无法保证您的请求将被处理。这不局限于 Workers AI——鉴于频繁有关于过载提供者和服务中断的新闻报道,显然在所有无服务器模型提供商中都存在这种情况。虽然我们始终努力为您服务您的请求,并内置了自动缩放和重新平衡功能,但存在硬性限制(如硬件),这使得这成为一个挑战。
对于超出同步速率限制的请求量,您可以提交批处理推理以异步完成。我们正在引入一个经过改进的异步 API,这意味着对于异步用例,您不会遇到容量不足错误,推理将在某个时间点可靠地执行。我们的异步 API 看起来更像 flex 处理而不是批处理 API,我们只要在我们的模型实例中有空闲空间就会处理异步队列中的请求。通过内部测试,我们的异步请求通常在 5 分钟内执行完毕,但这将取决于实时流量情况。随着我们将 Kimi 推向公众,我们将相应调整我们的扩展设置,但异步 API 是确保您不会在耐久工作流中遇到容量错误的最佳方法。这对于非实时用例非常完美,例如代码扫描代理或研究代理。
Workers AI 之前有一个异步 API,但我们最近重新设计了其背后的系统。我们现在依赖于拉取式系统而不是历史推式系统,使我们能够在有容量时立即拉取排队请求。我们还添加了更好的控制来调整异步请求的吞吐量,实时监控 GPU 利用率并在利用率较低时拉取异步请求,以便关键同步请求优先处理,同时仍然高效地处理异步请求。
要使用异步 API,您可以按照如下所示发送您的请求。我们还有一个方法来设置事件通知,这样您就可以知道何时完成推理而不是轮询请求。
let res = await env.AI.run("@cf/moonshotai/kimi-k2.5", {
"requests": [{
"messages": [{
"role": "user",
"content": "Tell me a joke"
}]
}, {
"messages": [{
"role": "user",
"content": "Explain the Pythagoras theorem"
}]
}, ...{
< add more requests in a batch >
}];
}, {
queueRequest: true,
});
// (2.) grab the request id
let request_id;
if (res && res.request_id) {
request_id = res.request_id;
}
// (3.) poll the status
let res = await env.AI.run("@cf/moonshotai/kimi-k2.5", {
request_id: request_id
});
if (res && res.status === "queued" || res.status === "running") {
// retry by polling again
...
} else
return Response.json(res); // This will contain the final completed response
立即开始使用 Workers AI 上的 Kimi K2.5。您可以阅读我们的开发者文档以了解模型信息和定价,以及如何利用通过会话亲和性标头的提示缓存和异步 API。Agents SDK starter 现在也使用 Kimi K2.5 作为其默认模型。您还可以通过 Opencode 连接到 Workers AI 上的 Kimi K2.5:连接至 Kimi K2.5 on Workers AI via Opencode。要进行现场演示,请在我们的游乐场中尝试一下。
如果您对这些围绕无服务器推理、ML 优化和 GPU 基础设施的问题感兴趣——我们正在招聘!

Cloudflare 的连接云保护整个企业网络,帮助企业高效构建互联网规模应用,加速任何网站或互联网应用程序,抵御 DDoS 攻击,将黑客拒之门外,并可以帮助您在零信任之旅中取得成功。
从任何设备访问 1.1.1.1 开始使用我们的免费应用程序,让您的互联网更快更安全。
要了解有关我们帮助构建更好互联网的使命的更多信息,请从这里开始:start here。如果您正在寻找新的职业方向,请查看我们的开放职位。