# Strands Agents

> An open-source, model-driven Python and TypeScript SDK for building AI agents in just a few lines of code, with support for multi-agent systems, MCP, and production deployment.

Strands Agents is an open-source SDK built by AWS that takes a model-driven approach to constructing and running AI agents. Available for both Python and TypeScript, it is licensed under Apache 2.0 and hosted on GitHub, where it has accumulated over 6,500 stars according to the project homepage. The SDK was created from production systems inside Amazon and is actively maintained, with releases shipping regularly.

## What It Is

Strands Agents is an agent harness SDK — a lightweight runtime that manages the agent loop, tool execution, context management, and observability so developers can focus on defining tools and behavior rather than plumbing. It sits between the model provider and the application layer, handling the mechanics of how an LLM reasons, calls tools, and iterates toward a goal. The core abstraction is an `Agent` object that accepts tools, hooks, conversation managers, and model providers, and can be invoked with a plain string prompt.

## Model Provider Support

One of the SDK's defining characteristics is broad model agnosticism. Built-in providers include:

- **Amazon Bedrock** (default, requires AWS credentials)
- **Anthropic**, **Google Gemini**, **OpenAI** (including Responses API)
- **Ollama**, **llama.cpp**, **LlamaAPI**, **LiteLLM**
- **Cohere**, **MistralAI**, **SageMaker**, **Writer**
- Custom providers via a documented extension interface

Swapping providers requires only changing the model object passed to `Agent`; tool definitions and hooks remain unchanged.

## Hooks, Guardrails, and Steering

Strands exposes a hooks system that lets developers intercept any step in the agent loop — before or after tool calls — to log, validate, cancel, or redirect execution. The `BeforeToolCallEvent` hook can set `event.cancel_tool` to block a tool call with a reason, which the model then uses to self-correct. A higher-level `SteeringHandler` plugin interface provides structured guidance (Guide/Proceed responses) that the agent incorporates into its next reasoning step. The project homepage cites an internal benchmark where agents using steering handlers recovered from every mistake, compared to 82.5% accuracy for prompt-only agents and 80.8% for hard-coded workflows.

## MCP and Tool Ecosystem

Strands has native support for the Model Context Protocol (MCP), allowing agents to connect to any MCP server as a tool source. The `MCPClient` class wraps stdio or other transports and exposes server tools directly to the agent. An optional `strands-agents-tools` package provides pre-built tools (calculator, HTTP request, etc.) for quick experimentation, and a separate `strands-agents/tools` repository on GitHub hosts the community tool collection.

## Bidirectional Streaming and Voice

An experimental `BidiAgent` class supports real-time bidirectional audio conversations with persistent streaming connections. Supported backends include Amazon Nova Sonic (v1 and v2), Google Gemini Live, and OpenAI Realtime API. The feature handles WebSocket complexity, interruption logic, and audio I/O device configuration, and is installable via `pip install strands-agents[bidi,bidi-io]`. The project marks this as experimental with APIs subject to change.

## Update: v1.41.0

The latest release is v1.41.0, published on May 21, 2026, reflecting an active release cadence since the repository was created in May 2025. The project has 845 forks and 496 open issues as of the last recorded update. Recent product direction includes the TypeScript SDK (`@strands-agents/sdk`), Strands Evals for agent testing, and Strands Labs for experimental capabilities such as AI Functions and robotics integrations. Deployment targets documented on the homepage include AWS AgentCore, Lambda, Fargate, EKS, Docker, and Terraform.

## Features
- Model-driven agent loop
- Python and TypeScript SDKs
- Multi-agent systems (Agent-as-Tool, Swarm)
- Native MCP (Model Context Protocol) support
- Hooks system for intercepting tool calls
- Steering handlers for guardrails and self-correction
- Bidirectional streaming and voice (experimental)
- Conversation managers (sliding window, summarizing)
- Structured output with Pydantic/Zod schemas
- Hot reloading tools from directory
- Built-in OpenTelemetry tracing
- Human-in-the-loop interrupts
- Pre-built tools package (strands-agents-tools)
- Strands Evals for agent testing
- Custom model provider interface

## Integrations
Amazon Bedrock, Anthropic Claude, Google Gemini, OpenAI, Ollama, llama.cpp, LlamaAPI, LiteLLM, Cohere, MistralAI, AWS SageMaker, Writer, AWS AgentCore, AWS Lambda, AWS Fargate, AWS EKS, Docker, Terraform, Tavily, OpenTelemetry, Amazon Nova Sonic, OpenAI Realtime API, Google Gemini Live

## Platforms
WINDOWS, LINUX, API, DEVELOPER_SDK, CLI

## Pricing
Open Source

## Version
v1.41.0

## Links
- Website: https://strandsagents.com
- Documentation: https://strandsagents.com/docs/user-guide/quickstart/overview/
- Repository: https://github.com/strands-agents/sdk-python
- EveryDev.ai: https://www.everydev.ai/tools/strands-agents
