A model-driven AI agent orchestration framework for TypeScript, evolved from Amazon's internal production systems, supporting multi-model providers, MCP tools, multi-agent orchestration, and OpenTelemetry observability.
Strands Agents TypeScript SDK (@strands-agents/sdk) is an AI agent orchestration framework for TypeScript/JavaScript developers, evolved from Amazon's internal production systems and open-sourced under Apache-2.0. The SDK centers on the Agent class as the central orchestrator, encapsulating the complete agent loop (user input → model inference → tool calling → result feedback), enabling developers to build tool-capable AI agents in just a few lines of code.
The framework supports five model providers—Amazon Bedrock (default), OpenAI, Anthropic, Google, and Vercel AI SDK—with all non-default providers installed on demand. The tool system supports type-safe custom tools via the tool() function paired with Zod schemas, includes built-in tools (Notebook, File Editor, HTTP Request, Bash), and natively integrates MCP (Model Context Protocol) for seamless connection to external MCP tool servers. Structured output is defined via Zod schemas with automatic validation and retry.
Multi-agent orchestration offers three patterns: Graph (deterministic directed graph with parallel node support), Swarm (agent-driven dynamic routing), and Workflow. Additionally, Agents as Tools and A2A (Agent-to-Agent) protocol interoperability are supported, including an Express server adapter.
Observability features include a comprehensive lifecycle hook system (BeforeToolCallEvent, AfterToolCallEvent, etc.) for intercepting, canceling, and modifying behavior—useful for implementing safety guardrails. Native OpenTelemetry integration supports traces and metrics export via OTLP HTTP. Conversation management provides Null, Sliding Window, and Summarizing strategies, with session persistence to filesystem or S3.
The SDK is published as an ESM module requiring Node.js ≥ 20, with browser runtime support. The repository is structured as an npm workspaces monorepo, containing the core strands-ts, a CLI tool (strands-dev), and a WASM bridge layer (strands-wasm, in development). Note that the TypeScript version does not yet support bidirectional streaming and agent steering, which are currently available only in the Python SDK.