SuperAPI AI 工具集

cloudflare-agents

智能体与模型

查看项目

更新于 10-15 14:41

技能介绍

用途

Cloudflare Agents SDK 用于在 Cloudflare Workers + Durable Objects 上构建 AI 驱动的自主智能体。它定位为基础设施层,负责连接、状态与调度,而非 AI 推理本身。

主要能力

  • 通过 WebSocket 与 Server-Sent Events 进行实时通信
  • 使用内置 SQLite 数据库持久化状态(每个智能体最高 1GB)
  • 使用延迟、指定日期或 cron 表达式调度任务
  • 通过触发异步 Cloudflare Workflows 运行工作流
  • 使用 Browser Rendering API + Puppeteer 浏览网页
  • 结合 Vectorize 向量数据库与 Workers AI embeddings 实现 RAG
  • 构建实现 Model Context Protocol 的 MCP 服务器
  • 支持 human-in-the-loop 的审核与批准模式
  • 扩展到全球数百万个独立智能体实例

每个智能体实例是全局唯一、有状态的微服务器,可运行数秒、数分钟或数小时。

使用方式

快速开始

使用模板脚手架创建项目:

npm create cloudflare@latest my-agent -- \
  --template=cloudflare/agents-starter \
  --ts \
  --git \
  --deploy false

或在现有 Worker 中添加:

cd my-existing-worker
npm install agents

创建 Agent 类:

// src/index.ts
import { Agent, AgentNamespace } from "agents";

export class MyAgent extends Agent {
  async onRequest(request: Request): Promise<Response> {
    return new Response("Hello from Agent!");
  }
}

export default MyAgent;

配置 Durable Objects 绑定(wrangler.jsonc):

{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "my-agent",
  "main": "src/index.ts",
  "compatibility_date": "2025-10-21",
  "compatibility_flags": ["nodejs_compat"],
  "durable_objects": {
    "bindings": [
      {
        "name": "MyAgent",
        "class_name": "MyAgent"
      }
    ]
  },
  "migrations": [
    {
      "tag": "v1",
      "new_sqlite_classes": ["MyAgent"]
    }
  ]
}

关键配置规则:name 与 class_name 必须一致;new_sqlite_classes 必须放在首个 migration 中(之后无法添加);Agent 类必须导出;migration tag 不可重复使用。

部署:

npx wrangler@latest deploy

与 AI 推理层组合

推荐组合:Agents SDK + Vercel AI SDK。

import { AIChatAgent } from "agents/ai-chat-agent";
import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";

export class ChatAgent extends AIChatAgent<Env> {
  async onChatMessage(onFinish) {
    return streamText({
      model: openai('gpt-4o-mini'),
      messages: this.messages,
      onFinish
    }).toTextStreamResponse();
  }
}

也可搭配 Workers AI(需手动解析 SSE):

const response = await env.AI.run('@cf/meta/llama-3-8b-instruct', {
  messages: [...],
  stream: true
});

可恢复流式传输(agents@0.2.24+)

AIChatAgent 支持可恢复流式传输,客户端可重新连接并继续接收流式响应而不丢失数据。流在页面刷新、连接中断后仍保留,并在打开的标签页与设备间同步。使用 AIChatAgent 且版本为 agents@0.2.24 或更高时自动生效,无需修改代码。

适用场景

需要以下任一能力时使用 Agents SDK:WebSocket 双向实时通信、Durable Objects 有状态实例、内置状态持久化、多智能体协调、定时任务或 cron、human-in-the-loop 工作流、长时间运行的智能体、有状态工具执行的 MCP 服务器。

若仅需基础聊天界面、SSE 单向流式、无持久状态、单用户单会话,则直接使用 Vercel AI SDK 更简单。

限制

Agents SDK 不提供 AI 推理、不处理流式响应解析、不包含模型提供商集成。它需要配置 Durable Objects、migrations 与 bindings,代码量与搭建复杂度高于仅用 AI SDK。

版本与依赖

最新版本:agents@0.3.3、@modelcontextprotocol/sdk@latest。推荐依赖 cloudflare-worker-base。状态为 Production Ready,最后更新于 2026-01-09。

近期更新:2026 年 1 月 Agents SDK v0.3.6 修复 callable methods、更新协议版本支持;2025 年 11 月 v0.2.24+ 引入可恢复流式传输、MCP 客户端改进与调度修复;2025 年 9 月兼容 AI SDK v5 并自动迁移消息;2025 年 8 月支持 MCP Elicitation、http-streamable 传输、任务队列与邮件集成;2025 年 4 月支持 MCP(MCPAgent 类);2025 年 3 月包名由 agents-sdk 更名为 agents。