# Strands Harness SDK

> Open-source Python and TypeScript SDK for building and running production AI agents with your own agent loop, tools, models, memory and hooks.

Strands Agents is an open-source SDK from Amazon Web Services for building and running AI agents in Python and TypeScript. The harness-sdk monorepo contains the assembled Strands harness, the Python and TypeScript SDKs, a CLI, an MCP server for coding agents, and the documentation site. It runs in your own process with no hosted control plane, according to the README.

## What It Is

The Strands Harness SDK is an agent framework for developers who would otherwise write their own agent loop. It runs the loop and provides components to attach to it: tools, model providers, memory, sessions, hooks, and context management. Alongside it, the Strands harness offers a fully assembled agent through a single `create_harness()` (Python) or `createHarness()` (TypeScript) call, with defaults for the system prompt, tools, memory, sessions and context management. Those defaults can be overridden or replaced.

## How the Workflow Fits Together

Developers can start with the assembled harness, using the library or the `strands` CLI, then drop down to the SDK to control the loop directly. Functions become tools through a `@tool` decorator (Python) or a schema-based `tool()` helper (TypeScript), and MCP servers can be connected. The SDK documents lifecycle controls such as turn limits, token budgets and cancellation, structured output, streaming, and multi-agent patterns including Agents as Tools, Swarm, Graph, Workflow and Agent2Agent. Hooks, interventions (human in the loop, Cedar authorization, steering) and guardrails let developers intercept or redirect steps.

## Models, Deployment and the Wider Toolkit

The SDK is model agnostic, with documented providers including Amazon Bedrock, Anthropic, OpenAI, Google, Ollama, LiteLLM, llama.cpp, Mistral and SageMaker, plus custom providers. Deployment guides cover Amazon Bedrock AgentCore, Lambda, Fargate, App Runner, EKS, EC2, Docker, Kubernetes and Terraform. Observability covers metrics, traces and logs. The same site documents companion projects: Box (an agent sandbox, in preview), Shell (a sandboxed virtual shell), Evals (agent evaluation, Python only) and Labs (experimental projects).

## Features
- Assembled agent harness via create_harness() / createHarness() with defaults for tools, memory, sessions and context
- strands CLI for prototyping and chatting with a harness agent
- Agent loop with lifecycle controls (turn limits, token budgets, cancellation, stop reasons)
- Custom tools and MCP server connections
- Multi-agent patterns: Agents as Tools, Swarm, Graph, Workflow, A2A
- Memory, sessions and context management
- Hooks, interventions, human-in-the-loop, Cedar authorization and steering
- Guardrails, PII redaction and structured output
- Streaming and bidirectional voice agents (BidiAgent)
- Model provider portability
- Observability via metrics, traces and logs
- Plugins including Skills, Context Offloader and GoalLoop

## Integrations
Amazon Bedrock, Anthropic, OpenAI, Google Gemini, Ollama, LiteLLM, llama.cpp, Mistral, SageMaker, Amazon Bedrock AgentCore, AWS Lambda, AWS Fargate, Amazon EKS, Docker, Kubernetes, Terraform, Model Context Protocol, OpenTelemetry, Claude Code, Codex, Cursor

## Platforms
WINDOWS, MACOS, LINUX, ANDROID, WEB, API, DEVELOPER_SDK, CLI

## Pricing
Open Source

## Version
harness-cli/v0.2.2

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