写点什么

Cloudflare 推出 Think:一款面向 AI 代理的持久化运行时

作者:Patrick Farry
  • 2026-04-24
    北京
  • 本文字数:1473 字

    阅读完需:约 5 分钟

Cloudflare 宣布推出 Think 项目预览版,这是一套针对其 Agents SDK 的基础组件,旨在将 AI 代理从无状态编排过渡到持久化的、基于角色的基础设施。此次发布引入了一个类内核的运行时环境,在这个环境中,代理可以在平台重启后继续存活,管理关系型记忆树,并在受限的沙箱内执行自主编写的代码。这些内核基础组件借鉴了 OpenClaw 等新型个人代理框架的成功经验。

现有的企业级框架,例如 Google Agent Development Kit (ADK) 和 AWS Bedrock AgentCore,主要采用请求-响应模型。虽然这些服务负责恢复会话状态,但它们实际上是基于快照进行操作。在这些架构中,代理的记忆是一个外部化的键值映射(KV map)或 JSON 数据块,会在新一轮会话开始时从远程存储中获取。在处理长期运行的任务时,这种模式的局限性就显现了出来。在复杂的推理周期中,如果底层的无服务器计算被抢占,执行上下文就会消失,导致逻辑执行的实际进度丢失。虽然框架可以恢复上次保存的快照,但该执行窗口内取得的具体进展已丢失,系统只能从上次成功保存的地方重新启动整个操作。

Think 项目的核心创新在于引入了 Fiber。与标准的无服务器函数调用不同,Fiber 是一种持久化调用,能够保存自身的指令指针检查点。利用 runFiber 原语和 ctx.stash(),开发者可以直接将代理的执行进度保存在内部同位置的一个 SQLite 数据库中。

这使得代理能够处理那些超出传统无服务器时限的非确定性、长期运行的工作负载。如果平台在代理处于循环中时重启,那么运行时会恢复该 Fiber 并触发 onFiberRecovered 钩子,从而使代理能够从上一个检查点继续执行。

TypeScript

// 示例:保存多步研究循环检查点export class ResearchAgent extends Agent {  async startResearch(topic: string) {    void this.runFiber("research", async (ctx) => {      const findings = [];      for (let i = 0; i < 10; i++) {        const result = await this.callLLM(`Step ${i}: ${topic}`);        findings.push(result);        // 检查点:若中断,Fiber 将从这里恢复        ctx.stash({ findings, step: i, topic });      }      return { findings };    });  }  async onFiberRecovered(ctx) {    if (ctx.name === "research" && ctx.snapshot) {      const { topic, step } = ctx.snapshot;      // 根据已保存的进度恢复逻辑      await this.continueResearch(topic, step);    }  }}
复制代码

为解决工具调用过程中的安全和延迟问题,Think 允许代理生成代码,并引入了分级执行安全环境。这些工具在 Dynamic Workers 中运行,这些受限的 V8 隔离区在毫秒内即可创建出来,而且没有访问特权。这使得代理能够生成自定义扩展,并在沙盒本地执行复杂的逻辑。这大大减少了令牌的使用量,因为该模型不再需要在每个中间步骤中通过上下文窗口处理原始数据。

此外,Think 还重新设计了会话持久化机制。许多框架采用线性记录历史的方式,而 Think 的会话 API 则将对话以关系树的形式进行存储。消息通过“父 ID”进行索引,这样代理就可以创建对话分支和分叉,从而能够并行探索不同的解决方案,而不会“污染”主要的推理路径。

该系统还提供了可编辑的“上下文块”:这是系统提示中结构化且持久化的部分,模型可以对其进行查询和更新。这使得代理能够主动管理自身“已学习的事实”,并对比较旧的对话分支进行非破坏性的压缩处理。

目前,Think 项目仅面向 Cloudflare Workers 用户提供实验性预览。

声明:本文为 InfoQ 翻译,未经许可禁止转载。

原文链接:https://www.infoq.com/news/2026/04/cloudflare-project-think/