Cloudflare Agents SDK vs Strands Agents SDK
In short
Cloudflare Agents SDK vs Strands Agents SDK: both are coding tools on Scriptiii AI Tools. Cloudflare Agents SDK pricing: Free. Free to use. (reported by the maker) Strands Agents SDK pricing: Free. Free to use. (reported by the maker) Both have 0 upvotes.
- Cloudflare Agents SDK
- Free. Free to use. (reported by the maker)
- Strands Agents SDK
- Free. Free to use. (reported by the maker)
- Upvotes
- 0 vs 0
| Field | Cloudflare Agents SDK | Strands Agents SDK |
|---|---|---|
| Page | Cloudflare Agents SDK | Strands Agents SDK |
| Pricing (maker-reported) | Free. Free to use. | Free. Free to use. |
| Upvotes | 0 | 0 |
| Best for | ai-agents, framework, agent-sdk | ai-agents, framework, agent-sdk |
| Tagline | SDK for building stateful AI agents on Cloudflare Workers and Durable Objects. | Open-source SDK from AWS for model-driven AI agents in Python and TypeScript. |
| Website | Visit Cloudflare Agents SDK | Visit Strands Agents SDK |
Pricing and pricing details come from the maker's submission. They are not independently verified.
Cloudflare Agents SDK
Cloudflare Agents
Agents are persistent, stateful execution environments for agentic workloads, powered by Cloudflare Durable Objects. Each agent has its own state, storage, and lifecycle — with built-in support for real-time communication, scheduling, AI model calls, MCP, workflows, and more.
Agents hibernate when idle and wake on demand. You can run millions of them — one per user, per session, per game room — each costs nothing when inactive.
npm create cloudflare@latest -- --template cloudflare/agents-starter
Or add to an existing project:
npm install agents
Read the docs — getting started, API reference, guides, and more.
Quick Example
A counter agent with persistent state, callable methods, and real-time sync to a React frontend:
// server.ts
import { Agent, routeAgentRequest, callable } from "agents";
export type CounterState = { count: number };
export class CounterAgent extends Agent<Env, CounterState> {
initialState = { count: 0 };
@callable()
increment() {
this.setState({ count: this.state.count + 1 });
return this.state.count;
}
@callable()
decrement() {
this.setState({ count: this.state.count - 1 });
return this.state.count;
}
}
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
return (
(await routeAgentRequest(request, env)) ??
new Response("Not found", { status: 404 })
);
}
};
// client.tsx
import { useAgent } from "agents/react";
import { useState } from "react";
import type { CounterAgent, CounterState } from "./server";
function Counter() {
const [count, setCount] = useState(0);
const agent = useAgent<CounterAgent, CounterState>({
agent: "CounterAgent",
onStateUpdate: (state) => setCount(state.count)
});
return (
<div>
<span>{count}</span>
<button onClick={() => agent.stub.increment()}>+</button>
<button onClick={() => agent.stub.decrement()}>-</button>
</div>
);
}
State changes sync to all connected clients automatically. Call methods like they're local functions.
The agent is a Durable Object, so it needs a binding and a SQLite migration in wrangler.jsonc:
{
"name": "counter",
"main": "server.ts",
"compatibility_date": "2026-06-11",
"compatibility_flags": ["nodejs_compat"],
"durable_objects": {
"bindings": [{ "name": "CounterAgent", "class_name": "CounterAgent" }]
},
"migrations": [{ "tag": "v1", "new_sqlite_classes": ["CounterAgent"] }]
}
Features
| Feature | Description |
|---|---|
| Persistent State | Syncs to all connected clients, survives restarts |
| Callable Methods | Type-safe RPC via the @callable() decorator |
| Sub-agents | Parent/child DO composition via facets, nested routing, and typed parent lookup |
| Agent Tools | Run chat-capable sub-agents as tools with streaming child timelines |
| Scheduling | One-time, recurring, and cron-based tasks |
| WebSockets | Real-time bidirectional communication with lifecycle hooks |
| AI Chat | Message persistence, resumable streaming, server/client tool execution |
| MCP | Act as MCP servers or connect as MCP clients (HTTP, SSE, RPC, elicitation) |
| WebMCP | Expose page-local tools or bridge remote MCP tools to browser agents |
| Workflows | Durable multi-step tasks with human-in-the-loop approval |
| Send, receive, and reply via Cloudflare Email Service | |
| Voice | Continuous STT, streaming TTS, VAD, interruption, SFU utilities |
| Browser Agents | Run agents in the browser tab with agents/browser |
| Code Mode | LLMs generate executable TypeScript instead of individual tool calls |
| Sandboxed Execution | Run generated code inside an isolated Worker with a virtual filesystem |
| x402 Payments | Pay-per-call APIs and tools via the x402 protocol |
| Observability | Built-in tracing, metrics, and structured logs |
| SQL | Direct SQLite queries via Durable Objects |
| React Hooks | useAgent, useAgentChat, useVoiceAgent for frontend integration |
| Vanilla JS Client | AgentClient and VoiceClient for non-React environments |
Packages
| Package | Description |
|---|---|
agents | Core SDK — Agents, routing, Voice, Channels, scheduling, MCP, workflows, x402, browser agents |
@cloudflare/ai-chat | Higher-level AI chat — persistent messages, resumable streaming, tool execution |
@cloudflare/think | Opinionated chat agent base — agentic loop, stream resumption, client tools, workspace tools |
@cloudflare/codemode | LLMs write executable code that calls your tools, instead of one tool call at a time |
@cloudflare/shell | Deprecated: use @cloudflare/computer workspaces |
@cloudflare/voice | Deprecated compatibility wrapper for the agents/voice exports |
@cloudflare/worker-bundler | Build and bundle Workers at runtime, for use with the Worker Loader binding |
hono-agents | Hono middleware for adding agents to Hono apps |
AI-chat modules used to live in
agents/ai-chat-agent,agents/chat,agents/ai-react, andagents/ai-types. Those entry points still re-export, but they're deprecated — import from@cloudflare/ai-chatdirectly. New chat-from-scratch projects should look at@cloudflare/think.
Examples
The examples/ directory has 30+ self-contained demos. A non-exhaustive tour:
- Showcase —
playground/is the kitchen-sink app: state, callable methods, scheduling, chat, tools, MCP, workflows, email, voice — all in one UI - Chat & assistants —
agents-as-tools/,computer-skills/,r2-skills/,workspace-chat/,resumable-stream-chat/,structured-input/,dynamic-tools/,multi-ai-chat/,context-overflow-recovery/ - MCP —
mcp/,mcp-client/,mcp-server/,mcp-worker/,mcp-worker-authenticated/,mcp-elicitation-mrtr/,mcp-elicitation/,mcp-rpc-transport/,webmcp/,webmcp-react/ - Code Mode & sandboxes —
codemode/,codemode-mcp/,codemode-mcp-openapi/,dynamic-workers/,dynamic-workers-playground/,worker-bundler-playground/ - Voice —
voice-agent/is the unified voice pipeline example with Workers AI, AssemblyAI, Telnyx, and ElevenLabs STT;voice-input/covers dictation;telnyx-voice-agent/covers phone transport;elevenlabs-starter/covers broader ElevenLabs media APIs - Workflows & approvals —
workflows/,a2a/ - Auth, payments, comms —
auth-agent/,cross-domain/,x402/,x402-mcp/,email-agent/,github-webhook/,push-notifications/ - Game & misc —
tictactoe/,ai-chat/
Examples using the OpenAI Agents SDK live in openai-sdk/. Work-in-progress experiments live in experimental/ (no stability guarantees).
Run any example locally:
cd examples/playground
npm start
Documentation
- Full docs on developers.cloudflare.com
docs/directory in this repo (synced upstream)- Anthropic Patterns guide — sequential, routing, parallel, orchestrator, evaluator
- Human-in-the-Loop guide — approval workflows with pause/resume
design/— architecture and design decision records (chat API, sub-agents, agent tools, workspace, voice, browser tools, retries, and more)
Repository Structure
| Directory | Description |
|---|---|
packages/agents/ | Core SDK |
packages/ai-chat/ | AI chat layer |
packages/think/ | Opinionated chat agent base |
packages/codemode/ | Code Mode |
packages/shell/ | Deprecated sandboxed execution + filesystem |
packages/voice/ | Deprecated Voice compatibility wrapper |
packages/worker-bundler/ | Runtime Workers bundler |
packages/hono-agents/ | Hono integration |
examples/ | Self-contained demo apps |
experimental/ | Work-in-progress experiments (not published) |
openai-sdk/ | Examples using the OpenAI Agents SDK |
guides/ | In-depth pattern tutorials |
docs/ | Markdown docs synced to developers.cloudflare.com |
site/ | Deployed websites (agents.cloudflare.com, AI playground) |
design/ | Architecture and design decision records |
scripts/ | Repo-wide tooling |
Development
Node 24+ required. pnpm workspaces with Nx for task orchestration, caching, and affected detection.
pnpm install # install all workspaces
pnpm run build # build all packages (Nx, cached, dependency-ordered)
pnpm run check # sherif + export checks + oxfmt + oxlint + typecheck
pnpm run test # vitest + vitest-pool-workers (Workers runtime)
pnpm run test:react # Playwright-based React hook tests
pnpm exec nx affected -t build # build only what changed
pnpm exec nx affected -t test # test only what changed
Changes to packages/ need a changeset:
pnpm exec changeset
See AGENTS.md for deeper contributor guidance.
Contributing
We are not accepting external pull requests at this time — the SDK is evolving quickly and we want to keep the surface area manageable. That said, we'd love to hear from you:
- Bug reports & feature requests — open an issue
- Questions & ideas — start a discussion
License
Strands Agents SDK
Strands Agents
A model-driven approach to building AI agents in just a few lines of code.
Documentation
◆ Samples
◆ CLI
◆ MCP Server
◆ Discord
Harness (Python, TypeScript)
◆ SDK (Python, TypeScript)
◆ Box
◆ Shell
◆ Evals
◆ Labs
Strands Agents is an open-source SDK for building and running AI agents in Python and TypeScript. Choose Strands when you would otherwise write your own agent loop: it runs in your process with no hosted control plane, and it covers the jobs a hand-rolled loop grows into. In one SDK you get lifecycle controls (turn limits, token budgets, cancellation, stop reasons), tools and structured output, MCP, multi-agent patterns, memory and sessions, model portability, streaming, guardrails, tracing, and evals.
Using a coding agent? Install the Strands plugin for Claude Code, Codex, or Cursor.
It adds framework selection, scaffolding, tool authoring, MCP server connections, web
framework guides, and LangGraph migration guidance. See
Use Strands with AI coding agents
for install and verification steps.
This monorepo contains Strands harness, the Python and TypeScript SDKs, the documentation site, and supporting packages:
| Directory | Description |
|---|---|
harness-py/ | Python Strands harness: fully assembled agent via create_harness() (PyPI · docs) |
harness-ts/ | TypeScript Strands harness: fully assembled agent via createHarness() (npm · docs) |
strands-cli/ | strands CLI: prototype and chat with a harness agent from the terminal (npm) |
strands-py/ | Python SDK: agent loop, model providers, tools (PyPI · releases) |
strands-ts/ | TypeScript SDK: agent loop, model providers, tools (npm · releases) |
strands-mcp/ | MCP server that gives coding agents knowledge about building with Strands Agents (PyPI) |
site/ | Source for the strandsagents.com documentation site (Astro/Starlight) |
team/ | Governance and cross-SDK process docs (tenets, decisions, PR & compatibility guidelines, and designs/ proposals) |
test-infra/ | CDK stack provisioning the AWS resources a subset of integration tests run against (knowledge bases, SSH sandboxes) |
Why Strands
Build an agent harness. Control it end-to-end.
- Build your way. Any model, any cloud. Context management, execution limits, and observability built in before you write a line of config. Swap backends when you scale; your code stays the same.
- Model agnostic. First-class support for Amazon Bedrock, Anthropic, OpenAI, and Gemini, plus many more providers and custom ones.
- Stay in control. The agent loop traces every decision by default. Hooks let you intercept any step to log it, validate it, or redirect it.
- Deliver outcomes that work. Guardrails catch mistakes before they run. Steering handlers let agents correct themselves instead of failing silently.
MCP, streaming, multi-agent patterns, and structured output are all built in.
Quick Start
The easiest way to get started is with Strands harness, a fully assembled, state-of-the-art agent. A single create_harness() (Python) or createHarness() (TypeScript) call gives you an optimized agent with benchmarked defaults for the model, tools, memory, sessions, and context management — ready to take from idea to production. Follow the harness quickstart, or see the Python Strands harness and TypeScript Strands harness packages to get started.
Python
pip install strands-harness
from strands_harness import create_harness
agent = create_harness()
agent("Find the slowest test in this repo and explain why it's slow")
TypeScript
npm install @strands-agents/harness
import { createHarness } from '@strands-agents/harness'
const agent = await createHarness()
await agent.invoke("Find the slowest test in this repo and explain why it's slow")
Start here to get a batteries-included agent, then drop down to the SDKs below when you want to own the agent loop and wire up tools, model providers, and memory yourself. The harness configuration reference documents every default you can override.
The Quickstart Guide covers configuring providers (Amazon Bedrock, Anthropic, OpenAI, Gemini, Ollama, and more).
Working with the SDK
The Strands Harness SDK lets you go deeper and control every part of the agent: the loop, tools, model providers, memory, sessions, and hooks. You can dive into the SDK after working with Strands harness or if you prefer building your own harness from the ground up when the assembled defaults aren't enough.
Python
Requires Python 3.10+:
pip install strands-agents
from strands import Agent
from strands.vended_tools import http_request
agent = Agent(tools=[http_request])
agent("Tell me about the Strands harness features: https://strandsagents.com/docs/user-guide/harness/index.md")
The Python SDK README covers tools, model providers, MCP, and bidirectional streaming.
TypeScript
To build a Strands agent in TypeScript, install the SDK in a Node.js 22+ ESM project ("type": "module"):
npm install @strands-agents/sdk
import { Agent } from '@strands-agents/sdk'
import { httpRequest } from '@strands-agents/sdk/vended-tools/http-request'
const agent = new Agent({ tools: [httpRequest] })
await agent.invoke('Tell me about the Strands harness features: https://strandsagents.com/docs/user-guide/harness/index.md')
The agent uses Amazon Bedrock by default, so configure AWS credentials or pass another model.
Start with the TypeScript quickstart
to configure a model provider, run your first agent, and add tools. Use the
TypeScript API reference for the full
SDK surface, or explore more examples in the TypeScript SDK README.
Documentation
For detailed guidance & examples, explore our documentation:
- User Guide
- Strands Harness Guide (quickstart · configuration reference)
- Quick Start Guide
- Agent Loop
- Bidirectional Streaming (Python)
- Examples
- API Reference: Python · TypeScript
- Production & Deployment Guide
The docs themselves live in this monorepo under site/, and doc PRs are welcome alongside code changes.
Development
Git operations (commits, branches, PRs) are done from the repo root. Each package has its own toolchain:
Python SDK (strands-py/):
cd strands-py
pip install hatch
hatch test # run unit tests
hatch fmt # format & lint
TypeScript SDK (strands-ts/):
npm ci # install from repo root
npm run build # build
npm test # run unit tests
Documentation site (site/):
cd site
npm install
npm run dev # local dev server at http://localhost:4321/
Contributing ❤️
We welcome contributions! See our Contributing Guide for details on:
- Reporting bugs & features
- Development setup
- Contributing via Pull Requests
- Code of Conduct
- Reporting of security issues
Stay in touch with the team
Come meet the Strands team and other users on Discord
License
This project is licensed under the Apache License 2.0 - see the LICENSE.APACHE file for details.
Security
See CONTRIBUTING for more information.
Questions
- Do Cloudflare Agents SDK and Strands Agents SDK list the same price?
- Both listings report Free. Free to use. Pricing is reported by the maker and is not independently verified.
- Which has more upvotes, Cloudflare Agents SDK or Strands Agents SDK?
- Both have 0 upvotes.
- What does each maker say Cloudflare Agents SDK and Strands Agents SDK are for?
- Cloudflare Agents SDK: SDK for building stateful AI agents on Cloudflare Workers and Durable Objects. Strands Agents SDK: Open-source SDK from AWS for model-driven AI agents in Python and TypeScript.
Cloudflare Agents SDK alternatives·Strands Agents SDK alternatives·All coding tools