strands-agents/harness-sdk
Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud.
What it solves
It simplifies the process of building and running AI agents by providing a model-driven SDK that handles the complex infrastructure—such as context management, execution limits, and observability—so developers can focus on the agent's logic rather than the underlying configuration.
How it works
Strands provides a unified harness for agents available in both Python and TypeScript. It abstracts the model provider, allowing developers to swap between different LLMs (like Amazon Bedrock, Anthropic, OpenAI, and Gemini) without changing their core code. The system uses an agent loop that traces decisions by default and includes hooks for interception, guardrails to prevent errors, and steering handlers to help agents self-correct.
Who it’s for
Developers who want to build everything from simple conversational assistants to complex autonomous workflows and need a scalable way to move from local development to production deployment.
Highlights
- Model Agnostic: First-class support for multiple major providers including Bedrock, Anthropic, OpenAI, and Gemini.
- Built-in Control: Includes default decision tracing, interceptor hooks, and guardrails for error prevention.
- Advanced Patterns: Native support for Model Context Protocol (MCP), streaming, structured output, and multi-agent patterns.
- Cross-Language Support: Full SDKs available for both Python and TypeScript.