Strands Agents

A Python and TypeScript SDK for building and controlling production AI agent harnesses end to end.

Stars
★ 9.1k
Last updated
today
License
Apache-2.0
Primary language
TypeScript

At a glance

How it runs
Library / SDKFrameworkCLI
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Python 3.10+Node.js 20+AWS credentials and enabled Claude Sonnet model access for the default Amazon Bedrock providerShell / CLINetwork accessMCP Server
Typical use
A backend developer who needs a Python service to answer a user request using a model and tools such as calculator.
Not a fit if
  • Teams that want a hosted control plane or managed deployment
  • Teams pinned to Python 3.9 or Node.js below 22

What does this agent do, and when should you use it?

Strands Agents is an open-source SDK monorepo for building and running AI agents, with Python and TypeScript SDKs, a developer CLI, a documentation site, and governance material. Both SDKs provide an agent loop, model-provider support, and tools for implementations ranging from conversational assistants to autonomous workflows. Applications instantiate Agent objects in Python or TypeScript and extend their behavior with tools, providers, and execution controls. The repository documents MCP, streaming, multi-agent patterns, and structured output, with support for Amazon Bedrock, Anthropic, OpenAI, Gemini, additional providers, and custom providers. Amazon Bedrock is the default provider, while adopters remain responsible for their own runtime and deployment setup.

In Python, an application imports Agent from strands, can pass a tool such as strands_tools.calculator to Agent(tools=[calculator]), and starts a task with agent("What is the square root of 1764"). In TypeScript, it creates new Agent(), calls await agent.invoke("What is the square root of 1764?"), and can log the returned result. The SDK's agent loop runs the agent workflow with model providers and tools; the README also describes hooks that can intercept steps for logging, validation, or redirection, plus guardrails and steering handlers. The monorepo also includes a strands-mcp entry point, documentation-site source, and Python and TypeScript build and test workflows.

  1. A backend developer who needs a Python service to answer a user request using a model and tools such as calculator.
  2. A TypeScript team building a Node.js 20+ agent application that needs results from Agent.invoke().
  3. A platform team selecting among Amazon Bedrock, Anthropic, OpenAI, Gemini, or custom model providers for an agent application.
  4. A production-system developer who needs to insert logging, validation, or redirection at steps in an agent loop.
  5. An agent-workflow builder that needs MCP, bidirectional streaming, structured output, or multi-agent patterns.

How do you install or deploy this agent?

Python requires Python 3.10+:

pip install strands-agents strands-agents-tools

TypeScript requires Node.js 20+:

npm install @strands-agents/sdk

Both SDKs default to Amazon Bedrock. Before using that default configuration, configure AWS credentials and enable model access for Claude Sonnet.

How do you use this agent?

Python:

from strands import Agent
from strands_tools import calculator
agent = Agent(tools=[calculator])
agent("What is the square root of 1764")

TypeScript:

import { Agent } from '@strands-agents/sdk'
const agent = new Agent()
const result = await agent.invoke('What is the square root of 1764?')
console.log(result)

The README names Anthropic, OpenAI, Gemini, Ollama, and other providers as alternatives to the default Bedrock provider, but the supplied material does not include their configuration commands.

What are this agent's strengths and limitations?

Pros
  • One monorepo supplies both Python and TypeScript SDKs, each centered on an agent loop, model providers, and tools.
  • It explicitly supports Amazon Bedrock, Anthropic, OpenAI, Gemini, additional providers, and custom providers, reducing dependence on a single model backend.
  • Hooks can log, validate, or redirect agent-loop steps; the README also identifies guardrails and steering handlers.
  • MCP, streaming, multi-agent patterns, and structured output are presented as built-in capabilities rather than only sample-project features.
  • The repository includes documentation-site source, a developer CLI, and cross-SDK governance materials alongside the SDKs.
Limitations
  • The default path depends on configured AWS credentials and enabled Claude Sonnet access in Amazon Bedrock, so the default example will not run without them.
  • Python and TypeScript have separate runtime and toolchain requirements: Python 3.10+ and Node.js 20+.
  • Although other providers are named, the supplied material does not provide concrete setup instructions for Anthropic, OpenAI, Gemini, or Ollama.
  • Production deployment, provider choice, context-management policy, and observability configuration still need to be designed by the adopter; no one-command deployment flow is documented here.
  • The repository navigation names an MCP Server, but the supplied material does not document its installation, authentication, or exposed MCP operations.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Strands Agents This agent 30 · Major gaps Library / SDKFree + model costs ★ 9.1k today TypeScript OpenAI API · Claude API
Agently AI Application Runtime 63 · Some gaps Library / SDKFree + model costs ★ 1.7k 24d ago Python OpenAI API · Claude API
Mirascope 55 · Major gaps Library / SDKFree + model costs ★ 1.5k today Python Claude API
Composio 51 · Major gaps Library / SDKFree + model costs ★ 31k today TypeScript Claude Code · OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
30/ 100 5-point scale 1.5 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 28 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 0/29
Reliability 5/14
Adaptability 8/18
Convention 8/18
Effectiveness 6/13
Verifiability 3/8
Why each dimension lost points
Trust0 / 29 · 0.0/5

Evidence shows a security policy (SECURITY.md) and contributing guide, but no permission model, user confirmation mechanism, data flow transparency, or sensitive data handling details. Dependency security not mentioned, external effects not described, rollback not specified, source attribution only via brand mention in README, but publisher unverified. Hence all trust criteria scored 0.

Reliability5 / 14 · 1.8/5

Self-consistency: Python version requirement consistent between README and pyproject.toml (>=3.10), no internal contradictions found. Dependency availability: dependency list exists but no locking or verification. Failure messages: no error handling or user-visible failure messages. Thus self_consistency 2, dependency_availability 1, failure_messages 0.

Adaptability8 / 18 · 2.2/5

Audience and scenarios: README describes multiple use cases (from simple conversational to complex workflows) but no explicit target audience. Capability boundaries: no explicit limitations. Trigger precision: no trigger mechanism. Environment fit: installation instructions for Python and TypeScript, but no OS or cloud compatibility. Thus audience_and_scenarios 2, capability_boundaries 1, trigger_precision 0, environment_fit 2.

Convention8 / 18 · 2.2/5

Information architecture: README provides clear directory structure. Install notes: pip and npm commands provided. Naming stability: no mention of API stability. Examples and FAQ: quick start examples provided, no FAQ. Known limitations: not mentioned. License: Apache-2.0 explicit. Versioning/changelog: no changelog. Maintenance responsibility: not explicit. Thus information_architecture 2, install_notes 2, naming_stability 1, examples_and_faq 2, known_limitations 0, license 2, versioning_changelog 1, maintenance_responsibility 1.

Effectiveness6 / 13 · 2.3/5

Output usability: examples show basic usage but not output format. Marginal value: multi-model support and MCP features, but no comparison with other frameworks. Cost-benefit: no performance or cost data. Thus output_usability 1, marginal_value 2, cost_benefit 1.

Verifiability3 / 8 · 1.9/5

Claim traceability: README claims not linked to specific code or tests. Cross-source corroboration: no external verification. Fact-inference separation: not explicit. Thus all criteria 1.

Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • Publisher identity unverified; treat as unknown, do not trust based on brand.
  • No permission model, data flow transparency, or sensitive data handling details; assess before use.
  • Dependency security not mentioned; check dependency locking and vulnerability scanning.
  • No rollback mechanism; be cautious in production.
  • No known limitations or failure messages; may hinder troubleshooting.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 11ad6366a157 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. typescript/v1.24.0
    Release notes excerpt
    typescript/v1.24.0 _Auto-drafted from commits in typescript/v1.23.0..typescript/v1.24.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(docs): add migration guide from strands-agents-tools (#5730) (f078b5c71) - feat(openai): place explicit cache points on GPT-5.6+ by default (#5418) (663987245) - feat(site): import versioned external docs (#5666) (e4a0ee28d) - feat(ts): let ClassifierStrategy route with any DecisionModel (#5219) (6d14c4a15) …
    View on GitHub ↗
  2. python/v1.64.0
    Release notes excerpt
    python/v1.64.0 _Auto-drafted from commits in python/v1.63.0..python/v1.64.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(docs): add migration guide from strands-agents-tools (#5730) (f078b5c71) - feat(openai): place explicit cache points on GPT-5.6+ by default (#5418) (663987245) - feat(site): import versioned external docs (#5666) (e4a0ee28d) - feat(ts): let ClassifierStrategy route with any DecisionModel (#5219) (6d14c4a15) …
    View on GitHub ↗
  3. harness-cli/v0.2.4
    Release notes excerpt
    harness-cli/v0.2.4 _Auto-drafted from commits in harness-cli/v0.2.3..harness-cli/v0.2.4, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(docs): add migration guide from strands-agents-tools (#5730) (f078b5c71) - feat(openai): place explicit cache points on GPT-5.6+ by default (#5418) (663987245) - feat(site): import versioned external docs (#5666) (e4a0ee28d) - feat(ts): let ClassifierStrategy route with any DecisionModel (#5219) (6d14c4a15) …
    View on GitHub ↗

FAQ

What permissions does the default example need?
It defaults to Amazon Bedrock, so it needs configured AWS credentials and enabled model access for Claude Sonnet.
Can I use OpenAI or Anthropic instead of Bedrock?
Yes. The material explicitly names Anthropic, OpenAI, Gemini, more providers, and custom providers, though it does not include their exact configuration commands.
Is this Python-only?
No. The repository includes Python and TypeScript SDKs; Python requires 3.10+ and TypeScript requires Node.js 20+.
What can I do when an agent step needs review or intervention?
The README says hooks can intercept any step for logging, validation, or redirection, and steering handlers let agents correct themselves rather than fail silently.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents