ASD

Agents Sdk

Construye agentes de IA en Cloudflare Workers con el Agents SDK: estado, workflows durables, WebSockets en tiempo real, tareas programadas, servidores MCP, chat y agentes de voz.

Oficial
Estrellas
2.6k

en todo el repo

Actividad
40

0–100, la ruta de este skill

Actualizado
hace 4 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
3k tok

108 tok en reposo

Paquete
20 archivos

61 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add cloudflare/skills --skill agents-sdk --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Guía la construcción de agentes de IA en Cloudflare Workers usando el Agents SDK, priorizando la documentación oficial sobre el conocimiento preentrenado
  • Explica la clase Agent, gestión de estado con setState, métodos RPC con @callable, y enrutamiento vía routeAgentRequest
  • Cubre Workflows, ejecución durable (runFiber/stash), colas con reintentos, observabilidad y hooks de React como useAgent
  • Proporciona configuración de wrangler.jsonc, bindings de Durable Objects y migraciones necesarias
  • Incluye referencias detalladas sobre chat streaming, MCP, email, webhooks, push notifications, voz y automatización de navegador

Úsalo cuando

  • Crear agentes con estado persistente
  • Construir workflows durables o tareas programadas
  • Desarrollar apps en tiempo real con WebSockets, servidores MCP o agentes de chat
  • Trabajar con agentes de voz o automatización de navegador

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Crea un agente en Cloudflare Workers con estado persistente usando el Agents SDK
    • Configura un servidor MCP con McpAgent y wrangler.jsonc
    • Añade streaming de chat con AIChatAgent y useAgentChat en React
    • Implementa un workflow durable con runWorkflow y reintentos

    SKILL.md

    En inglés

    Cloudflare Agents SDK

    Your knowledge of the Agents SDK may be outdated. Prefer retrieval over pre-training for any Agents SDK task.

    Retrieval Sources

    Cloudflare docs: https://developers.cloudflare.com/agents/

    Topic Docs URL Use for
    Getting started Quick start First agent, project setup
    Adding to existing project Add to existing project Install into existing Workers app
    Configuration Configuration wrangler.jsonc, bindings, assets, deployment
    Agent class Agents API Agent lifecycle, patterns, pitfalls
    State Store and sync state setState, validateStateChange, persistence
    Routing Routing URL patterns, routeAgentRequest
    Callable methods Callable methods @callable, RPC, streaming, timeouts
    Scheduling Schedule tasks schedule(), scheduleEvery(), cron
    Workflows Run workflows AgentWorkflow, durable multi-step tasks
    HTTP/WebSockets WebSockets Lifecycle hooks, hibernation
    Chat agents Chat agents AIChatAgent, streaming, tools, persistence
    Client SDK Client SDK useAgent, useAgentChat, React hooks
    Client tools Client tools Client-side tools, autoContinueAfterToolResult
    Server-driven messages Trigger patterns saveMessages, waitUntilStable, server-initiated turns
    Resumable streaming Resumable streaming Stream recovery on disconnect
    Email Email Email routing, secure reply resolver
    MCP client MCP client Connecting to MCP servers
    MCP server MCP server Building MCP servers with McpAgent
    MCP transports MCP transports Streamable HTTP, SSE, RPC transport options
    Securing MCP servers Securing MCP OAuth, proxy MCP, hardening
    Human-in-the-loop Human-in-the-loop Approval flows, needsApproval, workflows
    Durable execution Durable execution runFiber(), stash(), surviving DO eviction
    Queue Queue Built-in FIFO queue, queue()
    Retries Retries this.retry(), backoff/jitter
    Observability Observability Diagnostics-channel events
    Push notifications Push notifications Web Push + VAPID from agents
    Webhooks Webhooks Receiving external webhooks
    Cross-domain auth Cross-domain auth WebSocket auth, tokens, CORS
    Readonly connections Readonly shouldConnectionBeReadonly
    Voice Voice Experimental STT/TTS, withVoice
    Browse the web Browser tools Experimental CDP browser automation
    Think Think Experimental higher-level chat agent class
    Migrations AI SDK v5, AI SDK v6 Upgrading @cloudflare/ai-chat

    Capabilities

    The Agents SDK provides:

    • Persistent state — SQLite-backed, auto-synced to clients via setState
    • Callable RPC@callable() methods invoked over WebSocket
    • Scheduling — One-time, recurring (scheduleEvery), and cron tasks
    • Workflows — Durable multi-step background processing via AgentWorkflow
    • Durable executionrunFiber() / stash() for work that survives DO eviction
    • Queue — Built-in FIFO queue with retries via queue()
    • Retriesthis.retry() with exponential backoff and jitter
    • MCP integration — Connect to MCP servers or build your own with McpAgent
    • Email handling — Receive and reply to emails with secure routing
    • Streaming chatAIChatAgent with resumable streams, message persistence, tools
    • Server-driven messagessaveMessages, waitUntilStable for proactive agent turns
    • React hooksuseAgent, useAgentChat for client apps
    • Observabilitydiagnostics_channel events for state, RPC, schedule, lifecycle
    • Push notifications — Web Push + VAPID delivery from agents
    • Webhooks — Receive and verify external webhooks
    • Voice (experimental) — STT/TTS via @cloudflare/voice
    • Browser tools (experimental) — CDP-powered browsing via agents/browser
    • Think (experimental) — Higher-level chat agent via @cloudflare/think

    FIRST: Verify Installation

    npm ls agents  # Should show agents package
    

    If not installed:

    npm install agents
    

    For chat agents:

    npm install agents @cloudflare/ai-chat ai @ai-sdk/react
    

    Wrangler Configuration

    {
      "compatibility_flags": ["nodejs_compat"],
      "durable_objects": {
        "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
      },
      "migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }]
    }
    

    Gotchas:

    • Do NOT enable experimentalDecorators in tsconfig (breaks @callable)
    • Never edit old migrations — always add new tags
    • Each agent class needs its own DO binding + migration entry
    • Add "ai": { "binding": "AI" } for Workers AI

    Agent Class

    import { Agent, routeAgentRequest, callable } from "agents";
    
    type State = { count: number };
    
    export class Counter extends Agent<Env, State> {
      initialState = { count: 0 };
    
      validateStateChange(nextState: State, source: Connection | "server") {
        if (nextState.count < 0) throw new Error("Count cannot be negative");
      }
    
      onStateUpdate(state: State, source: Connection | "server") {
        console.log("State updated:", state);
      }
    
      @callable()
      increment() {
        this.setState({ count: this.state.count + 1 });
        return this.state.count;
      }
    }
    
    export default {
      fetch: (req, env) => routeAgentRequest(req, env) ?? new Response("Not found", { status: 404 })
    };
    

    Routing

    Requests route to /agents/{agent-name}/{instance-name}:

    Class URL
    Counter /agents/counter/user-123
    ChatRoom /agents/chat-room/lobby

    Client: useAgent({ agent: "Counter", name: "user-123" })

    Custom routing: use getAgentByName(env.MyAgent, "instance-id") then agent.fetch(request).

    Core APIs

    Task API
    Read state this.state.count
    Write state this.setState({ count: 1 })
    SQL query this.sql`SELECT * FROM users WHERE id = ${id}`
    Schedule (delay) await this.schedule(60, "task", payload)
    Schedule (cron) await this.schedule("0 * * * *", "task", payload)
    Schedule (interval) await this.scheduleEvery(30, "poll")
    RPC method @callable() myMethod() { ... }
    Streaming RPC @callable({ streaming: true }) stream(res) { ... }
    Start workflow await this.runWorkflow("ProcessingWorkflow", params)
    Durable fiber await this.runFiber("name", async (ctx) => { ... })
    Enqueue work this.queue("handler", payload)
    Retry with backoff await this.retry(fn, { maxAttempts: 5 })
    Broadcast to clients this.broadcast(message)
    Get connections this.getConnections(tag?)

    React Client

    import { useAgent } from "agents/react";
    
    function App() {
      const [state, setLocalState] = useState({ count: 0 });
    
      const agent = useAgent({
        agent: "Counter",
        name: "my-instance",
        onStateUpdate: (newState) => setLocalState(newState),
        onIdentity: (name, agentType) => console.log(`Connected to ${name}`)
      });
    
      return (
        <button onClick={() => agent.setState({ count: state.count + 1 })}>
          Count: {state.count}
        </button>
      );
    }
    

    References

    Core

    Chat & Streaming

    Background Processing

    Integrations

    Experimental

    Reproducido de cloudflare/skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    20 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el paquete npm agents instalado (y @cloudflare/ai-chat, ai, @ai-sdk/react para agentes de chat), además de configuración de Durable Objects en wrangler.jsonc.

    Necesita en el PATH:npm

    Detalles

    Creador
    cloudflare
    Licencia
    Apache-2.0
    Recursos incluidos
    referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de cloudflare/skills

    Este repo incluye 13 skills. Si instalas uno, normalmente ya tienes los demás.

    Configura Cloudflare Turnstile de extremo a extremo: crea el widget, lo inserta donde haga falta verificar bots, conecta el siteverify server-side y valida todo antes de reportar éxito.

    Costo de contexto al activarse
    7.2k tok
    Tamaño del paquete
    13 archivos
    Última actualización
    hace 20 días
    Oficialseguridad

    Úsalo al construir o modificar apps de Cloudflare Sandbox sobre el paquete estable @cloudflare/sandbox: comandos, sesiones, ficheros, puertos, tunnels, terminales, bridge, producción o limpieza de APIs deprecated en stable.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 7 días
    Oficialdevops infraestructura

    Úsalo al construir apps de Cloudflare Sandbox sobre @cloudflare/sandbox@next: ejecución de código, AI runners, intérpretes, jobs CI, terminales, archivos, mounts, tunnels, preview URLs, lifecycle o errores.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 7 días
    Oficialdevops infraestructura

    Úsalo al portar una app Cloudflare Sandbox de @cloudflare/sandbox estable a @cloudflare/sandbox@next (Sandbox SDK 1.0 preview), o al migrar/actualizar a Sandbox 1.0 / @next.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 7 días
    Oficialdevops infraestructura

    Skill integral de la plataforma Cloudflare: Workers, Pages, almacenamiento (KV, D1, R2), IA, feature flags, redes, seguridad e infraestructura como código (Terraform, Pulumi).

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    320 archivos
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Planifica migraciones desde Zscaler ZIA/ZPA, Palo Alto, VPN heredada, SWG o SASE hacia Cloudflare One: evaluaciones, mapeo de políticas, planes de rollout y análisis de paridad/brechas.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialdevops infraestructura

    Skills relacionados

    Parte un plan, una spec o la conversación actual en tickets tracer-bullet, cada uno declarando sus aristas de bloqueo, publicados en el tracker configurado.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    herramientas desarrollo

    Bucle de diagnóstico para bugs difíciles y regresiones de rendimiento. Úsalo cuando digas "diagnostica" o "debuggea esto", o cuando reportes algo roto, que falla o que va lento.

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 8 días
    herramientas desarrollo

    Construye y afila el modelo de dominio de un proyecto. Úsalo para fijar la terminología o un lenguaje ubicuo, registrar una decisión arquitectónica, o cuando otro skill necesita mantener el modelo.

    Costo de contexto al activarse
    857 tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo