Skip to content

Get started

The Strands Agents SDK empowers developers to quickly build, manage, evaluate and deploy AI-powered agents. These quick start guides get you set up and running a simple agent in less than 20 minutes.


Strands runs inside your own process. Creating an agent is constructing an object in Python or Node.js: there is no hosted control plane, scheduler, or database to stand up first. Any model provider works. Amazon Bedrock is the default, and swapping in Anthropic, OpenAI, Gemini, or Ollama is a one-line change, so an AWS account is only required if you keep the default. Adding an agent to an existing FastAPI, Express, or Next.js app is a dependency and a few lines of code, not new infrastructure.

Here is the whole of it: one file that answers HTTP requests with a Strands agent. The route handler constructs an agent and calls it. The only service it reaches is the model provider.

from fastapi import FastAPI
from pydantic import BaseModel
from strands import Agent
app = FastAPI()
class ChatRequest(BaseModel):
prompt: str
@app.post("/chat")
def chat(request: ChatRequest) -> dict[str, str]:
# The agent lives in this process: no scheduler or database to reach.
agent = Agent()
result = agent(request.prompt)
return {"reply": str(result)}

Run it with uvicorn main:app.

The model is one object you hand to the agent. Amazon Bedrock is the default, and every other provider is a one-line swap; the rest of your agent code does not change.

from strands import Agent
# Amazon Bedrock is the default, so no model object is required.
agent = Agent()
print(agent("What can you help me build?"))

See model providers for the full list and per-provider configuration.

Strands harness or the Strands Harness SDK?

Section titled “Strands harness or the Strands Harness SDK?”

Strands gives you two starting points, and you can move between them without a rewrite.

If you want to…Start withWhy
Get a complete agent harness with tested defaults, in one importStrands harnessModel, tools, memory, context management, and a production loop are already wired together.
Build the agent yourself and customize every part of the loopSDKYou define the tools, model, memory, and control flow, and the Strands Harness SDK runs the loop.
Start on Strands harness and drop down for more control laterCompose with the Strands Harness SDKStrands harness is built on the Strands Harness SDK, so you can change any piece of it without a rewrite.

Weighing Strands against other frameworks or a hand-written loop instead? See choosing an agent foundation.

Strands Agents SDK is available in both Python and TypeScript.

The table below compares feature availability between the Python and TypeScript SDKs.

CategoryFeaturePythonTypeScript
CoreAgent creation and invocation
Streaming responses
Structured output
Model providersAmazon Bedrock
OpenAI
OpenAI Responses API
Anthropic
Google
Ollama
LiteLLM
Custom providers
Additional providers5+1+
ToolsCustom function tools
MCP (Model Context Protocol)
Built-in tools30+ via community package4 built-in
ConversationNull manager
Sliding window manager
Summarizing manager
HooksLifecycle hooks
Custom hook providers
Multi-agentSwarms
Graphs
Workflows
Agents as tools
Agent-to-Agent (A2A)
Session managementFile, S3, repository managers
ObservabilityOpenTelemetry integration
SteeringAgent steering
ExperimentalBidirectional streaming