agents-sdk

Build, debug, or review Cloudflare Agents SDK applications using the agents package.

By cloudflare · 67,941 installs

npx skills add cloudflare/skills --skill agents-sdk

Source repository · Upstream listing

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](https://developers.cloudflare.com/agents/getting started/quick start/) First agent, project setup Adding to existing project [Add to existing project](https://developers.cloudflare.com/agents/getting started/add to existing project/) Install into existing Workers app Configuration [Configuration](https://developers.cloudflare.com/agents/api reference/configuration/) wrangler.jsonc , bindings, assets, deployment Agent class [Agents API](https://developers.cloudflare.com/agents/api reference/agents api/) Agent lifecycle, patterns, pitfalls State [Store and sync state](https://developers.cloudflare.com/agents/api reference/store and sync state/) setState , validateStateChange , persistence Routing [Routing](https://developers.cloudflare.com/agents/api reference/routing/) URL patterns, routeAgentRequest Callable methods [Callable methods](https://developers.cloudflare.com/agents/api reference/callable methods/) @callable , RPC, streaming, timeouts Scheduling [Schedule tasks](https://developers.cloudflare.com/agents/api reference/schedule tasks/) schedule() , scheduleEvery() , cron Workflows [Run workflows](https://developers.cloudflare.com/agents/api reference/run workflows/) AgentWorkflow , durable multi step tasks HTTP/WebSockets [WebSockets](https://developers.cloudflare.com/agents/api reference/websockets/) Lifecycle hooks, hibernation Chat agents [Chat agents](https://developers.cloudflare.com/agents/communication channels/chat/chat agents/) AIChatAgent , streaming, tools, persistence Client SDK [Client SDK](https://developers.cloudflare.com/agents/communication channels/chat/client sdk/) useAgent , AgentClient , state, RPC, HTTP Client tools [Client tools](https://developers.cloudflare.com/agents/harnesses/think/client tools/) Client side tools, autoContinueAfterToolResult Server driven messages [Autonomous responses](https://developers.cloudflare.com/agents/communication channels/chat/autonomous responses/) saveMessages , waitUntilStable , server initiated turns Resumable streaming [Chat agents](https://developers.cloudflare.com/agents/communication channels/chat/chat agents/ resumable streaming) Stream recovery on disconnect Email [Email](https://developers.cloudflare.com/agents/api reference/email/) Email routing, secure reply resolver MCP client [MCP client](https://developers.cloudflare.com/agents/model context protocol/apis/client api/) Connecting to MCP servers MCP server [MCP server](https://developers.cloudflare.com/agents/model context protocol/apis/handler api/) Building MCP servers with createMcpHandler MCP transports [MCP transports](https://developers.cloudflare.com/agents/model context protocol/protocol/transport/) Streamable HTTP, SSE, RPC transport options Securing MCP servers [Securing MCP](https://developers.cloudflare.com/agents/model context protocol/guides/securing mcp server/) OAuth, proxy MCP, hardening Human in the loop [Human in the loop](https://developers.cloudflare.com/agents/concepts/agentic patterns/human in the loop/) Workflow approvals, elicitation, timeout handling Durable execution [Durable execution](https://developers.cloudflare.com/agents/api reference/durable execution/) runFiber() , stash() , surviving DO eviction Queue [Queue](https://developers.cloudflare.com/agents/api reference/queue tasks/) Built in FIFO queue, queue() Retries [Retries](https://developers.cloudflare.com/agents/api reference/retries/) this.retry() , backoff/jitter Observability [Observability](https://developers.cloudflare.com/agents/api reference/observability/) Diagnostics channel events Push notifications [Push notifications](https://developers.cloudflare.com/agents/communication channels/webhooks/push notifications/) Web Push + VAPID from agents Webhooks [Webhooks](https://developers.cloudflare.com/agents/communication channels/webhooks/) Receiving external webhooks Cross domain auth [Cross domain auth](https://developers.cloudflare.com/agents/runtime/operations/cross domain authentication/) WebSocket auth, tokens, CORS Readonly connections [Readonly](https://developers.cloudflare.com/agents/api reference/readonly connections/) shouldConnectionBeReadonly Voice [Voice](https://developers.cloudflare.com/agents/api reference/voice/) Experimental STT/TTS, withVoice Browse the web [Browser tools](https://developers.cloudflare.com/agents/api reference/browse the web/) Experimental CDP browser automation Think [Think](https://developers.cloudflare.com/agents/api reference/think/) Experimental higher level chat agent class Migrations [AI SDK v5](https://github.com/cloudflare/agents/blob/main/docs/agents/migration to ai sdk v5.md), [AI SDK v6](https://github.com/cloudflare/agents/blob/main/docs/agents/migration to ai sdk v6.md) 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 execution — runFiber() / stash() for work that survives DO eviction Queue — Built in FIFO queue with retries via queue() Retries — this.retry() with exponential backoff and jitter MCP integration — Connect to MCP servers or build your own with createMcpHandler Email handling — Receive and reply to emails with secure routing Streaming chat — AIChatAgent with resumable streams, message persistence, tools Server driven messages — saveMessages , waitUntilStable for proactive agent turns React hooks — useAgent , useAgentChat for client apps Observability — diagnostics 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 If not installed: For chat agents: Wrangler Configuration 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 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 Read [client sdk.md](references/client sdk.md) for client selection and current connection examples. For chat UI and tools, also read [streaming chat.md](references/streaming chat.md). References Core [references/state scheduling.md](references/state scheduling.md) — State persistence, scheduling, SQL [references/callable.md](references/callable.md) — RPC methods, streaming, timeouts [references/routing.md](references/routing.md) — URL patterns, custom routing, getAgentByName [references/configuration.md](references/configuration.md) — Wrangler config, bindings, Vite setup Chat & Streaming [references/streaming chat.md](references/streaming chat.md) — AIChatAgent, resumable streams, tools [references/client sdk.md](references/client sdk.md) — useAgent , useAgentChat , AgentClient [references/server driven messages.md](references/server driven messages.md) — Trigger patterns, saveMessages [references/human in the loop.md](references/human in the loop.md) — Approval flows, needsApproval Background Processing [references/workflows.md](references/workflows.md) — Durable Workflows integration [references/durable execution.md](references/durable execution.md) — runFiber , stash , surviving eviction [references/queue retries.md](references/queue retries.md) — Built in queue, retry with backoff Integrations [references/mcp.md](references/mcp.md) — MCP client and server, transports, securing [references/email.md](references/email.md) — Email routing and handling [references/webhooks push.md](references/webhooks push.md) — Webhooks, push notifications [references/observability.md](references/observability.md) — Diagnostics channel events Experimental [references/think.md](references/think.md) — @cloudflare/think higher level chat agent [references/voice.md](references/voice.md) — @cloudflare/voice STT/TTS [references/codemode.md](references/codemode.md) — Code Mode for tool orchestration [references/browse the web.md](references/browse the web.md) — CDP browser tools