About this project

Strands Agents is an open-source SDK for building and running AI agents in Python and TypeScript. It is positioned as an alternative to writing your own agent loop: it runs in your process with no hosted control plane, and bundles the capabilities a hand-rolled loop tends to accumulate. Core capabilities described in the README: - Lifecycle controls: turn limits, token budgets, cancellation, stop reasons. - Tools and structured output, plus MCP (Model Context Protocol) integration. - Multi-agent patterns, memory and session management. - Model portability: first-class support for Amazon Bedrock, Anthropic, OpenAI and Gemini, plus additional providers and custom ones. - Streaming, guardrails, tracing/observability and an evals SDK. - Hooks that let you intercept agent-loop steps to log, validate or redirect them. Repository layout (monorepo): - harness-py/ — Python harness, a fully assembled agent via create_harness(), published on PyPI as strands-harness. - harness-ts/ — TypeScript harness via createHarness(), published on npm as @strands-agents/harness. - strands-cli/ — a strands CLI for prototyping and chatting with a harness agent from the terminal (npm @strands-agents/cli). - strands-py/ — Python SDK with the agent loop, model providers and tools (PyPI strands-agents). - strands-ts/ — TypeScript SDK (npm @strands-agents/sdk). - site/ — source for the strandsagents.com documentation site (Astro/Starlight). - team/ — governance and cross-SDK process docs, including design proposals. Quick start paths: the harness route uses pip install strands-harness with create_harness(), or npm install @strands-agents/harness with createHarness(), to get an agent with defaults for model, tools, memory, sessions and context management. The SDK route uses pip install strands-agents strands-agents-tools (Python 3.10+) or npm install @strands-agents/sdk (Node.js 22+) to own the agent loop and wire up tools and providers yourself. A configuration reference documents overridable harness defaults. Development: Python package uses hatch (hatch test, hatch fmt); TypeScript uses npm ci, npm run build, npm test; the docs site runs with npm run dev on localhost:4321. Licensed under Apache 2.0. Documentation, samples, an MCP server and a Discord community are linked from the README.