Our take
- Activity
- 88
- Community
- 93
- Issues
- 80
- Pull requests
- 76
+204 stars in the last 15 days
- Releases more often than 92% of the projects we track
- Closes issues faster than 82% of the projects we track
- Merges more pull requests than 81% of the projects we track
Overview
strands-agents/harness-sdk is a monorepo for building and running AI agents in Python and TypeScript. It includes a batteries-included harness for getting an assembled agent running, as well as lower-level SDKs for teams that want to configure the agent loop and components themselves.
The project addresses the work that grows around a hand-built agent loop, including model integration, tools, state, execution limits, and observability. Agents run in your process, so this is a fit when you want to retain control rather than rely on a hosted control plane.
Key Features
- Ready-made Python and TypeScript harnesses with configurable defaults for models, tools, memory, sessions, and context management.
- Lower-level SDKs for building agents and taking control of the agent loop.
- Model-provider support including Amazon Bedrock, Anthropic, OpenAI, and Gemini, with additional and custom providers documented.
- Tool integration, including Model Context Protocol (MCP), plus structured output.
- Lifecycle controls such as turn limits, token budgets, cancellation, and stop reasons.
- Multi-agent patterns, memory, sessions, and streaming.
- Hooks and tracing for inspecting or influencing agent execution, along with guardrails and evaluation support.
- A CLI for prototyping and chatting with a harness agent.
Use Cases
- Application developers who need a working agent quickly can start with the harness and adjust its defaults as requirements emerge.
- Teams building Python or TypeScript agent applications can use the SDK when they need to choose providers, tools, and agent behavior directly.
- Developers connecting agents to external tools or services can use the tool integrations and MCP support.
- Production teams that need to limit agent execution, inspect decisions, or apply guardrails can use lifecycle controls, hooks, tracing, and evaluation features.
Getting Started
Install the Python harness with pip install strands-harness, or the TypeScript harness with npm install @strands-agents/harness. See the repository README for SDK installation, provider setup, and detailed guides.
Alternatives
- openai-agents-js: It is TypeScript-only and centers on OpenAI’s agent APIs, while harness-sdk offers both Python and TypeScript with broader model flexibility.
- deepagents: It is Python-only and provides built-in planning, delegation, file access, and context management rather than a Python-and-TypeScript SDK.
- lagent: It is a Python framework focused on composing agents, tools, memory, and multi-agent workflows, without a TypeScript SDK.
- autogen: It focuses on Python multi-agent orchestration and is in maintenance mode, rather than offering a Python-and-TypeScript agent SDK.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| harness-sdk | Python | Apache-2.0 | 8.6k | Not checked yet |
| openai-agents-js | TypeScript | MIT | 3.9k | Active |
| deepagents | Python | MIT | 29.9k | Active |
| lagent | Python | Apache-2.0 | 2.3k | Quiet |
| autogen | Python | CC-BY-4.0 | 61.3k | Quiet |
Considerations
The repository offers both an assembled harness and lower-level SDKs, so choosing between them depends on how much of the agent setup you want to own. The documented SDK requirements are Python 3.10+ and Node.js 22+. Model-provider credentials and configuration may be needed for the provider you choose. The project reports 938 open issues, so review its issue tracker and documentation when assessing specific needs.
Found this useful?
Share it with someone who would like harness-sdk.