# Strands Agents > Strands Agents is a simple yet powerful SDK that takes a model-driven approach to building and running AI agents. From simple conversational assistants to complex autonomous workflows, from local development to production deployment, Strands Agents scales with your needs. ## Docs - Get Started - [overview](/pr-cms-3708/docs/user-guide/quickstart/overview/index.md): Documentation for the Strands Agents SDK. Learn to build, deploy, and scale AI agents with tools, multi-agent patterns, and any model provider. - [Quickstart: Python](/pr-cms-3708/docs/user-guide/quickstart/python/index.md): Get an AI agent running in Python in under 5 minutes. Install the SDK, configure a model provider, and build your first agent. - [Quickstart: TypeScript](/pr-cms-3708/docs/user-guide/quickstart/typescript/index.md): Get an AI agent running in TypeScript in under 5 minutes. Install the SDK, configure a model provider, and build your first agent. - [build-with-ai](/pr-cms-3708/docs/user-guide/build-with-ai/index.md): Use AI coding assistants to build Strands Agents projects with up-to-date documentation context. - Build - [Adding Tools](/pr-cms-3708/docs/user-guide/concepts/tools/index.md): Give AI agents the ability to take real-world actions. Strands supports built-in tools, custom Python functions, MCP servers, and community packages. - [Creating Custom Tools](/pr-cms-3708/docs/user-guide/concepts/tools/custom-tools/index.md): Turn any Python function into an AI agent tool. Define inputs with docstrings, and the agent calls your function autonomously. - [Using MCP Tools](/pr-cms-3708/docs/user-guide/concepts/tools/mcp-tools/index.md): Connect AI agents to any MCP server for tool access. Strands agents integrate and invoke MCP tools without custom integration code. - [Multi-Agent Systems](/pr-cms-3708/docs/user-guide/concepts/multi-agent/multi-agent-patterns/index.md): Coordinate multiple AI agents with handoffs, swarms, graphs, and workflow patterns. Built-in primitives for complex multi-agent orchestration. - [Structured Output](/pr-cms-3708/docs/user-guide/concepts/agents/structured-output/index.md): Get typed, validated responses from AI agents. Define Pydantic models and Strands returns structured data instead of raw text. - [Streaming Responses](/pr-cms-3708/docs/user-guide/concepts/streaming/index.md): Stream AI agent responses in real time. Handle partial results, tool invocations, and token-by-token output as the agent works. - [Voice & Realtime](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/quickstart/index.md): Build voice-enabled AI agents with real-time audio streaming. Works with Amazon Nova Sonic, Gemini Live, and OpenAI Realtime. - Concepts - [agent-loop](/pr-cms-3708/docs/user-guide/concepts/agents/agent-loop/index.md): How Strands agents reason, plan, and act. Understand the model-driven loop that orchestrates tool use, reflection, and goal completion. - [state](/pr-cms-3708/docs/user-guide/concepts/agents/state/index.md): Maintain state in Strands agents across turns and sessions: conversation history, key-value agent state, and per-request invocation state. - [storage](/pr-cms-3708/docs/user-guide/concepts/storage/index.md): Choose a storage backend and pass it to plugins that need persistence: session managers, context offloaders, and memory. - [session-management](/pr-cms-3708/docs/user-guide/concepts/agents/session-management/index.md): Persist agent conversations across sessions. Save and restore chat history, tool state, and context for long-running AI workflows. - [snapshots](/pr-cms-3708/docs/user-guide/concepts/agents/snapshots/index.md): Capture and restore agent state at any point in time. Use snapshots for checkpointing, undo/redo, branching conversations, and custom persistence. - [prompts](/pr-cms-3708/docs/user-guide/concepts/agents/prompts/index.md): Write system prompts and user messages for Strands agents. Covers multi-modal prompting, direct tool calls, and prompt engineering with agent SOPs. - [hooks](/pr-cms-3708/docs/user-guide/concepts/agents/hooks/index.md): Intercept and customize agent behavior at every step. Hooks let you add logging, validation, guardrails, and custom logic to the agent loop. - [conversation-management](/pr-cms-3708/docs/user-guide/concepts/agents/conversation-management/index.md): Keep long agent conversations within token limits using sliding window and summarizing conversation managers in the Strands Agents SDK. - [context-management](/pr-cms-3708/docs/user-guide/concepts/context-management/index.md): Manage your agent's context window as conversations grow and tool results accumulate. - Memory - [Overview](/pr-cms-3708/docs/user-guide/concepts/memory/overview/index.md): Give agents long-term memory across sessions: store facts to configurable backends, recall them via tools or injection, and extract them automatically. - [test-memory-store](/pr-cms-3708/docs/user-guide/concepts/memory/test-memory-store/index.md): A zero-infrastructure memory store backed by a local JSON file: no cloud account, lexical recall, and memories that survive across sessions. - [bedrock-knowledge-base](/pr-cms-3708/docs/user-guide/concepts/memory/bedrock-knowledge-base/index.md): Back agent memory with Amazon Bedrock Knowledge Bases: semantic search over a managed vector store and document ingestion for CUSTOM and S3 data sources. - [retry-strategies](/pr-cms-3708/docs/user-guide/concepts/agents/retry-strategies/index.md): Handle model provider rate limits in Strands agents. Configure retry strategies with exponential backoff, custom parameters, or your own retry logic. - Sandbox - [Overview](/pr-cms-3708/docs/user-guide/concepts/sandbox/index.md): Configure where an agent runs shell commands, executes code, and accesses a filesystem. Swap between Docker, SSH, or custom environments. - [available-sandboxes](/pr-cms-3708/docs/user-guide/concepts/sandbox/available-sandboxes/index.md): Use the built-in Docker and SSH sandboxes, drive a sandbox from your own code, and stream output from long-running commands. - [custom-sandbox](/pr-cms-3708/docs/user-guide/concepts/sandbox/custom-sandbox/index.md): Target an execution environment the built-in sandboxes do not cover: extend PosixShellSandbox or implement the Sandbox interface directly. - [interrupts](/pr-cms-3708/docs/user-guide/concepts/interrupts/index.md): Pause AI agents mid-execution for human approval, input, or review. Build human-in-the-loop workflows with interrupt and resume patterns. - Tools - [executors](/pr-cms-3708/docs/user-guide/concepts/tools/executors/index.md): Control whether Strands agents run tool calls concurrently or sequentially. Covers tool executors, event ordering, cancellation, and custom executors. - [community-tools-package](/pr-cms-3708/docs/user-guide/concepts/tools/community-tools-package/index.md): Get started fast with pre-built community tools for Strands agents: file operations, shell, web requests, memory, and more via strands-agents-tools. - [vended-tools](/pr-cms-3708/docs/user-guide/concepts/tools/vended-tools/index.md): Pre-built tools included in the SDK for common agent tasks like file operations, shell commands, HTTP requests, and persistent notes. - Plugins - [Overview](/pr-cms-3708/docs/user-guide/concepts/plugins/index.md): Extend agent behavior with plugins. Add steering, guardrails, and custom capabilities that hook into the agent lifecycle. - [skills](/pr-cms-3708/docs/user-guide/concepts/plugins/skills/index.md): Give Strands agents on-demand access to specialized instructions with the AgentSkills plugin. Progressive disclosure keeps the system prompt lean. - [steering](/pr-cms-3708/docs/user-guide/concepts/plugins/steering/index.md): Guide Strands agents with just-in-time contextual feedback using plugin-based steering handlers instead of monolithic prompts. - [context-offloader](/pr-cms-3708/docs/user-guide/concepts/plugins/context-offloader/index.md): Prevent large tool results from consuming the context window. ContextOffloader stores oversized results externally and leaves retrievable references. - [context-injector](/pr-cms-3708/docs/user-guide/concepts/plugins/context-injector/index.md): Fold real-time text into the model input before each call with the ContextInjector plugin: a clock, environment facts, or a lookup, not stored in history. - [goal-loop](/pr-cms-3708/docs/user-guide/concepts/plugins/goal-loop/index.md): Iterative refinement plugin that validates agent responses against a goal, looping with feedback until satisfied. - Interventions - [Overview](/pr-cms-3708/docs/user-guide/concepts/agents/interventions/index.md): A composable control layer for authorization, guardrails, and steering with typed actions, ordered evaluation, and short-circuiting. - [cedar-authorization](/pr-cms-3708/docs/user-guide/concepts/agents/interventions/cedar-authorization/index.md): Control which tools an agent can invoke using Cedar policies. Enforce identity-aware access control, role-based permissions, and rate limits at the tool-call boundary. - [steering](/pr-cms-3708/docs/user-guide/concepts/agents/interventions/steering/index.md): LLM-based contextual guidance for agents using the interventions framework: just-in-time feedback instead of front-loaded prompts. - [human-in-the-loop](/pr-cms-3708/docs/user-guide/concepts/agents/interventions/human-in-the-loop/index.md): Gate agent tool execution behind human approval. Configurable modes for CLI, web, and custom UIs with optional session trust. - Streaming - [async-iterators](/pr-cms-3708/docs/user-guide/concepts/streaming/async-iterators/index.md): Stream Strands agent events asynchronously with async iterators. Process text, tool usage, and lifecycle events in FastAPI and other async frameworks. - [callback-handlers](/pr-cms-3708/docs/user-guide/concepts/streaming/callback-handlers/index.md): Intercept Strands agent events in Python with callback handlers. Monitor streaming text and tool usage in real time or format custom output. - Multi-agent - [agent-to-agent](/pr-cms-3708/docs/user-guide/concepts/multi-agent/agent-to-agent/index.md): Connect Strands agents across platforms with the Agent-to-Agent (A2A) protocol. Serve agents over A2A and call remote agents from your own. - [agents-as-tools](/pr-cms-3708/docs/user-guide/concepts/multi-agent/agents-as-tools/index.md): Wrap specialized Strands agents as callable tools so an orchestrator agent can delegate tasks to domain experts in a hierarchical pattern. - [swarm](/pr-cms-3708/docs/user-guide/concepts/multi-agent/swarm/index.md): Build self-organizing agent teams with the Strands Swarm pattern. Agents collaborate through autonomous handoffs, shared context, and working memory. - [graph](/pr-cms-3708/docs/user-guide/concepts/multi-agent/graph/index.md): Orchestrate multi-agent systems with the Strands Graph pattern: deterministic DAG or cyclic execution, conditional edges, and nested agents. - [workflow](/pr-cms-3708/docs/user-guide/concepts/multi-agent/workflow/index.md): Coordinate multiple AI agents in sequential workflows with Strands. Define tasks, manage dependencies, and pass context between specialized agents. - Bidirectional Streaming - [agent](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/agent/index.md): Build real-time voice conversations with BidiAgent. Stream audio and text over persistent connections with interruptions and concurrent tool calling. - Models - [nova_sonic](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/models/nova_sonic/index.md): Build real-time speech-to-speech agents with Amazon Nova Sonic and Strands. Bidirectional audio streaming with interruption handling and tool calling. - [gemini_live](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/models/gemini_live/index.md): Build real-time voice agents with Gemini Live and Strands. Stream audio and text over WebSocket with interruptions and tool calling. - [openai_realtime](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/models/openai_realtime/index.md): Build low-latency voice agents with the OpenAI Realtime API and Strands. Configure speech-to-speech streaming, interruptions, and tool calling. - [io](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/io/index.md): Connect microphones, speakers, consoles, and WebSockets to a Strands bidi-agent with BidiInput and BidiOutput channels for audio and text. - [events](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/events/index.md): Send and receive bidirectional streaming events in Strands agents. Process audio, text, and tool activity in real time over persistent connections. - [interruption](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/interruption/index.md): Handle real-time voice interruptions in BidiAgent. Voice Activity Detection stops responses mid-stream for natural, human-like conversations. - [hooks](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/hooks/index.md): Extend BidiAgent with hooks for bidirectional streaming events: connection lifecycle, interruptions, restarts, and real-time conversation logging. - [session-management](/pr-cms-3708/docs/user-guide/concepts/bidirectional-streaming/session-management/index.md): Persist BidiAgent conversation history and state across bidirectional streaming sessions so voice assistants resume where they left off. - Experimental - [agent-config](/pr-cms-3708/docs/user-guide/concepts/experimental/agent-config/index.md): Create Strands agents from JSON files or dictionaries with the experimental config_to_agent function, including tool loading and model settings. - Model Providers - [model-providers](/pr-cms-3708/docs/user-guide/concepts/model-providers/index.md): Use any LLM with Strands agents. Switch between Amazon Bedrock, Anthropic, OpenAI, Ollama, and more without changing your agent code. - [amazon-bedrock](/pr-cms-3708/docs/user-guide/concepts/model-providers/amazon-bedrock/index.md): Use Amazon Bedrock models in Strands agents. Configure AWS credentials, model settings, guardrails, prompt caching, and multi-modal input. - [amazon-nova](/pr-cms-3708/docs/user-guide/concepts/model-providers/amazon-nova/index.md): Use Amazon Nova models in Strands agents with the strands-amazon-nova package. Install the provider, configure NovaAPIModel, and generate text. - [anthropic](/pr-cms-3708/docs/user-guide/concepts/model-providers/anthropic/index.md): Run Strands agents on Claude models through the Anthropic API. Install the provider, configure AnthropicModel, and enable structured output and caching. - [google](/pr-cms-3708/docs/user-guide/concepts/model-providers/google/index.md): Run Strands agents on Google Gemini models. Configure the provider, use built-in tools and structured output, and send image and video input. - [litellm](/pr-cms-3708/docs/user-guide/concepts/model-providers/litellm/index.md): Use LiteLLM with Strands agents to access models from OpenAI, Anthropic, Amazon, and more through one API. Install and configure LiteLLMModel. - [llamacpp](/pr-cms-3708/docs/user-guide/concepts/model-providers/llamacpp/index.md): Run Strands agents against a local llama.cpp server with quantized models. Configure LlamaCppModel, grammar constraints, and advanced sampling. - [llamaapi](/pr-cms-3708/docs/user-guide/concepts/model-providers/llamaapi/index.md): Run Strands agents on Meta-hosted Llama models with the Llama API provider. Install, configure LlamaAPIModel, and build without managing inference. - [mistral](/pr-cms-3708/docs/user-guide/concepts/model-providers/mistral/index.md): Use Mistral AI models in Strands agents. Install the Mistral provider, configure MistralModel, and run agents with tool calling and streaming. - [ollama](/pr-cms-3708/docs/user-guide/concepts/model-providers/ollama/index.md): Run Strands agents on local models with Ollama. Configure OllamaModel for text generation, image understanding, tool calling, and streaming. - [openai](/pr-cms-3708/docs/user-guide/concepts/model-providers/openai/index.md): Run Strands agents on OpenAI models or any OpenAI-compatible API. Install the provider, configure OpenAIModel, and enable vision and structured output. - [openai-responses](/pr-cms-3708/docs/user-guide/concepts/model-providers/openai-responses/index.md): Use the OpenAI Responses API with Strands agents for built-in tools like web search and code interpreter, plus server-side conversation state. - [sagemaker](/pr-cms-3708/docs/user-guide/concepts/model-providers/sagemaker/index.md): Run Strands agents against models deployed on Amazon SageMaker inference endpoints, including JumpStart models and custom fine-tuned models. - [vercel](/pr-cms-3708/docs/user-guide/concepts/model-providers/vercel/index.md): Bring any Vercel AI SDK provider into Strands agents with the VercelModel adapter. Use @ai-sdk packages for OpenAI, Anthropic, Bedrock, and more. - [writer](/pr-cms-3708/docs/user-guide/concepts/model-providers/writer/index.md): Use Writer Palmyra models in Strands agents. Configure WriterModel for tool calling, structured output, and domain-specific enterprise tasks. - [custom_model_provider](/pr-cms-3708/docs/user-guide/concepts/model-providers/custom_model_provider/index.md): Build a custom model provider for the Strands Agents SDK. Implement the Model interface to run agents against your own LLM service. - Deploy - [operating-agents-in-production](/pr-cms-3708/docs/user-guide/deploy/operating-agents-in-production/index.md): Deploy AI agents to production on AWS Lambda, EKS, Fargate, EC2, or Bedrock AgentCore. Monitoring, scaling, and operational best practices. - Amazon Bedrock AgentCore - [deploy_to_bedrock_agentcore](/pr-cms-3708/docs/user-guide/deploy/deploy_to_bedrock_agentcore/index.md): Deploy Strands agents to Amazon Bedrock AgentCore Runtime: a serverless, session-isolated platform that scales agents without managing servers. - [python](/pr-cms-3708/docs/user-guide/deploy/deploy_to_bedrock_agentcore/python/index.md): Deploy a Python Strands agent to Amazon Bedrock AgentCore Runtime using the SDK integration wrapper or a custom FastAPI implementation. - [typescript](/pr-cms-3708/docs/user-guide/deploy/deploy_to_bedrock_agentcore/typescript/index.md): Deploy a TypeScript Strands agent to Amazon Bedrock AgentCore Runtime: build an Express server, containerize it with Docker, and push to ECR. - [deploy_to_aws_lambda](/pr-cms-3708/docs/user-guide/deploy/deploy_to_aws_lambda/index.md): Deploy Strands agents to AWS Lambda with the AWS CDK: package a Python agent handler and run it serverless, paying only for compute you use. - [deploy_to_aws_fargate](/pr-cms-3708/docs/user-guide/deploy/deploy_to_aws_fargate/index.md): Deploy Strands agents to AWS Fargate: run a containerized FastAPI agent with streaming responses on serverless Amazon ECS infrastructure. - [deploy_to_aws_apprunner](/pr-cms-3708/docs/user-guide/deploy/deploy_to_aws_apprunner/index.md): Deploy Strands agents to AWS App Runner: containerize a FastAPI agent and get a fully managed HTTPS endpoint with auto scaling built in. - [deploy_to_amazon_eks](/pr-cms-3708/docs/user-guide/deploy/deploy_to_amazon_eks/index.md): Deploy Strands agents to Amazon EKS Auto Mode: containerize a FastAPI agent and run it on managed Kubernetes with high availability. - [deploy_to_amazon_ec2](/pr-cms-3708/docs/user-guide/deploy/deploy_to_amazon_ec2/index.md): Deploy Strands agents to Amazon EC2 with the AWS CDK: run a FastAPI agent on a virtual server with full control over the infrastructure. - Docker - [deploy_to_docker](/pr-cms-3708/docs/user-guide/deploy/deploy_to_docker/index.md): Containerize Strands agents with Docker: package your Python or TypeScript agent into a portable image and test it before cloud deployment. - [python](/pr-cms-3708/docs/user-guide/deploy/deploy_to_docker/python/index.md): Containerize a Python Strands agent with Docker: set up a FastAPI server with uv, write a Dockerfile, and run the agent locally in a container. - [typescript](/pr-cms-3708/docs/user-guide/deploy/deploy_to_docker/typescript/index.md): Containerize a TypeScript Strands agent with Docker: build an Express server with the SDK, write a Dockerfile, and test the container locally. - [deploy_to_kubernetes](/pr-cms-3708/docs/user-guide/deploy/deploy_to_kubernetes/index.md): Deploy containerized Strands agents to Kubernetes: create a local Kind cluster, write deployment manifests, and run your Docker agent image. - [deploy_to_terraform](/pr-cms-3708/docs/user-guide/deploy/deploy_to_terraform/index.md): Deploy Strands agents with Terraform infrastructure as code to AWS App Runner, AWS Lambda, Google Cloud Run, or Azure Container Instances. - [deploy_with_nx_plugin_for_aws](/pr-cms-3708/docs/user-guide/deploy/deploy_with_nx_plugin_for_aws/index.md): Scaffold and deploy Strands agents on AWS with the Nx Plugin for AWS: generate Python or TypeScript agents with CDK or Terraform included. - Safety & Security - [responsible-ai](/pr-cms-3708/docs/user-guide/safety-security/responsible-ai/index.md): Build AI agents responsibly with Strands: least-privilege tool design, input validation, audit logging, and ethical deployment practices. - [guardrails](/pr-cms-3708/docs/user-guide/safety-security/guardrails/index.md): Add safety guardrails to AI agents. Control tool permissions, validate outputs, and enforce responsible AI policies in production. - [prompt-engineering](/pr-cms-3708/docs/user-guide/safety-security/prompt-engineering/index.md): Write secure system prompts for Strands agents: defend against prompt injection, sanitize inputs, and validate parameters and outputs. - [trusted-message-history](/pr-cms-3708/docs/user-guide/safety-security/trusted-message-history/index.md): An agent treats its message history as trusted input. Treat history from a source you do not control as untrusted, and clear tool-call content from it. - [pii-redaction](/pr-cms-3708/docs/user-guide/safety-security/pii-redaction/index.md): Protect personal data in agent telemetry: integrate PII redaction with third-party libraries or OpenTelemetry Collector masking in Strands. - Observability & Debugging - [observability](/pr-cms-3708/docs/user-guide/observability-evaluation/observability/index.md): Monitor AI agents with OpenTelemetry traces, metrics, and logs. Debug agent behavior and measure performance in production. - [metrics](/pr-cms-3708/docs/user-guide/observability-evaluation/metrics/index.md): Track agent performance metrics in Strands: token usage, latency, tool call counts, and event loop cycles, all available through AgentResult. - [traces](/pr-cms-3708/docs/user-guide/observability-evaluation/traces/index.md): Trace agent execution end to end with OpenTelemetry in Strands: capture model interactions, tool calls, token usage, and event loop cycles. - [logs](/pr-cms-3708/docs/user-guide/observability-evaluation/logs/index.md): Configure logging for Strands agents in Python and TypeScript: set log levels, add handlers, and capture debug output from SDK operations. - Strands Evals SDK - [quickstart](/pr-cms-3708/docs/user-guide/evals-sdk/quickstart/index.md): Start evaluating AI agents with Strands Evaluation: install the SDK, build your first experiment, run built-in evaluators, and analyze results. - [eval-sop](/pr-cms-3708/docs/user-guide/evals-sdk/eval-sop/index.md): Follow a structured AI-assisted evaluation workflow with Eval SOP, from planning and test data generation to evaluation execution and reporting. - Evaluators - [evaluators](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/index.md): Choose the right evaluator for your agent: browse built-in LLM-judge and deterministic evaluators for output quality, tool use, and goal success. - [output_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/output_evaluator/index.md): Score agent responses against a custom rubric with OutputEvaluator, an LLM-as-a-judge evaluator for safety, relevance, accuracy, and completeness. - [trajectory_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/trajectory_evaluator/index.md): Judge the sequence of tool calls and actions an agent took with TrajectoryEvaluator, including exact, in-order, and any-order matching tools. - [interactions_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/interactions_evaluator/index.md): Evaluate multi-agent workflows step by step with InteractionsEvaluator, scoring each interaction with node-specific rubrics and dependencies. - [helpfulness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/helpfulness_evaluator/index.md): Measure how helpful agent responses are from the user's perspective with HelpfulnessEvaluator and its seven-level scoring scale. - [faithfulness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/faithfulness_evaluator/index.md): Detect hallucinations with FaithfulnessEvaluator by checking whether agent statements stay grounded in the preceding conversation history. - [correctness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/correctness_evaluator/index.md): Check the factual correctness of agent responses with CorrectnessEvaluator, from conversation context alone or against an expected reference answer. - [coherence_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/coherence_evaluator/index.md): Assess the logical consistency and flow of agent responses with CoherenceEvaluator, an LLM judge with a five-level scoring rubric. - [conciseness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/conciseness_evaluator/index.md): Catch verbose agent responses with ConcisenessEvaluator, which scores how efficiently a response communicates on a three-level scale. - [response_relevance_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/response_relevance_evaluator/index.md): Verify agent responses address what the user actually asked with ResponseRelevanceEvaluator and its five-level relevance scale. - [harmfulness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/harmfulness_evaluator/index.md): Screen agent responses for dangerous or offensive content with the binary harmful or not-harmful classification of HarmfulnessEvaluator. - [refusal_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/refusal_evaluator/index.md): Detect when an agent refuses a user request with RefusalEvaluator, which separates true refusals from merely irrelevant responses. - [stereotyping_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/stereotyping_evaluator/index.md): Flag biased or stereotypical content in agent responses with StereotypingEvaluator, including stereotypes the response later rejects. - [instruction_following_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/instruction_following_evaluator/index.md): Evaluate whether agent responses comply with explicit prompt instructions using the binary scoring of InstructionFollowingEvaluator. - [multimodal_output_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/multimodal_output_evaluator/index.md): Evaluate agent outputs on image and document tasks with MultimodalOutputEvaluator, which judges responses against a custom rubric using an MLLM. - [multimodal_overall_quality_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/multimodal_overall_quality_evaluator/index.md): Score overall response quality on image tasks with MultimodalOverallQualityEvaluator: visual accuracy, instruction adherence, and coherence. - [multimodal_correctness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/multimodal_correctness_evaluator/index.md): Fact-check agent responses against image content with MultimodalCorrectnessEvaluator: objects, counts, colors, positions, and readable text. - [multimodal_faithfulness_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/multimodal_faithfulness_evaluator/index.md): Catch visual hallucinations with MultimodalFaithfulnessEvaluator, which checks agent responses for invented details not grounded in the image. - [multimodal_instruction_following_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/multimodal_instruction_following_evaluator/index.md): Verify responses on image tasks satisfy explicit constraints like count, format, and scope with MultimodalInstructionFollowingEvaluator. - [goal_success_rate_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/goal_success_rate_evaluator/index.md): Determine whether an agent accomplished all user goals across an entire conversation session with the GoalSuccessRateEvaluator's binary score. - [failure_communication_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/failure_communication_evaluator/index.md): Rate how clearly your agent explains tool failures to users with FailureCommunicationEvaluator: clarity, actionability, transparency, and tone. - [partial_completion_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/partial_completion_evaluator/index.md): Measure the fraction of a user goal an agent achieved with PartialCompletionEvaluator, a continuous 0.0 to 1.0 score for multi-step tasks. - [recovery_strategy_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/recovery_strategy_evaluator/index.md): Score how well an agent recovers from tool failures with RecoveryStrategyEvaluator: alternative approaches, retries, and strategy variation. - [tool_selection_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/tool_selection_evaluator/index.md): Check that your agent picks the right tool at the right time with ToolSelectionAccuracyEvaluator, which judges each tool call in context. - [tool_parameter_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/tool_parameter_evaluator/index.md): Verify tool call parameters are grounded in conversation context, not hallucinated, with per-call checks from ToolParameterAccuracyEvaluator. - [deterministic_evaluators](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/deterministic_evaluators/index.md): Run fast, code-based checks without LLM judges: deterministic evaluators match outputs, verify tool calls, and compare state for CI/CD pipelines. - [custom_evaluator](/pr-cms-3708/docs/user-guide/evals-sdk/evaluators/custom_evaluator/index.md): Build domain-specific evaluation logic by extending the Evaluator base class: custom scoring, external services, and specialized data analysis. - Detectors - [detectors](/pr-cms-3708/docs/user-guide/evals-sdk/detectors/index.md): Find out why your agent failed: detectors analyze execution traces to detect failures, classify root causes, and recommend concrete fixes. - [failure_detection](/pr-cms-3708/docs/user-guide/evals-sdk/detectors/failure_detection/index.md): Detect semantic failures in agent traces with detect_failures: hallucinations, tool misuse, and policy violations across a 20+ category taxonomy. - [root_cause_analysis](/pr-cms-3708/docs/user-guide/evals-sdk/detectors/root_cause_analysis/index.md): Trace failure chains in agent sessions with analyze_root_cause: classify causality, assess propagation impact, and get fix recommendations. - [diagnosis](/pr-cms-3708/docs/user-guide/evals-sdk/detectors/diagnosis/index.md): Run the full failure diagnosis pipeline with diagnose_session: detect failures, analyze root causes, and get deduplicated fix recommendations. - Red teaming - [red-teaming](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/index.md): Probe a Strands agent's safety by running adversarial attack strategies against it and scoring whether each attack breached its guardrails. - [quickstart](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/quickstart/index.md): Run an adversarial red-team experiment against a Strands agent end to end — generate attack cases, run a strategy, and read which attacks breached. - [strategies](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/strategies/index.md): The built-in red-team attack strategies (Crescendo, GOAT, PAIR, Bad Likert Judge, SequentialBreak), their parameters, and when to use each. - [custom_cases](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/custom_cases/index.md): Hand-author RedTeamCase objects for domain-specific red-team risks, and write success_criteria the LLM judge can apply reliably. - [evaluators](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/evaluators/index.md): How AttackSuccessEvaluator scores a red-team attack from 0.0 to 1.0, what counts as a breach, and how to tune the threshold. - [reading_the_report](/pr-cms-3708/docs/user-guide/evals-sdk/red-teaming/reading_the_report/index.md): Understand what a RedTeamReport prints, how to read the breach matrix and per-attack table, and what to do when an attack breaches. - [experiment_generator](/pr-cms-3708/docs/user-guide/evals-sdk/experiment_generator/index.md): Generate evaluation experiments automatically with ExperimentGenerator: LLM-created test cases, rubrics, and topic-based coverage for your agent. - Simulators - [simulators](/pr-cms-3708/docs/user-guide/evals-sdk/simulators/index.md): Evaluate agents with dynamic simulators that drive multi-turn conversations and generate realistic tool responses beyond static test cases. - [user_simulation](/pr-cms-3708/docs/user-guide/evals-sdk/simulators/user_simulation/index.md): Simulate realistic end users with ActorSimulator to evaluate agents in dynamic, goal-oriented multi-turn conversations without scripted inputs. - [tool_simulation](/pr-cms-3708/docs/user-guide/evals-sdk/simulators/tool_simulation/index.md): Replace real tool execution with LLM-generated, schema-validated responses using ToolSimulator to evaluate agents without live infrastructure. - [chaos_testing](/pr-cms-3708/docs/user-guide/evals-sdk/chaos_testing/index.md): Test agent resilience by injecting controlled tool failures with ChaosPlugin: simulate timeouts, network errors, and corrupted responses safely. - Remote Trace Providers - [trace_providers](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/trace_providers/index.md): Evaluate production agent traces without re-running them: fetch execution data from CloudWatch, Langfuse, or OpenSearch with trace providers. - [cli](/pr-cms-3708/docs/user-guide/evals-sdk/cli/index.md): Run agent evaluations from the command line with strands-evals: execute experiments, validate JSON, render reports, and diagnose failures in CI. - How-To Guides - [eval_task](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/eval_task/index.md): Write evaluation task functions with the @eval_task decorator, which handles telemetry, session mapping, and result normalization for you. - [result_caching](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/result_caching/index.md): Cache task execution results with EvaluationDataStore so you can iterate on evaluators without re-invoking expensive or slow agent calls. - [experiment_management](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/experiment_management/index.md): Organize evaluation test cases into experiments: use metadata for filtering, group related cases, and adapt experiments across agent versions. - [serialization](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/serialization/index.md): Save, load, version, and share evaluation work with JSON serialization for Strands Evals experiments and evaluation reports. - [agentcore_evaluation_dashboard](/pr-cms-3708/docs/user-guide/evals-sdk/how-to/agentcore_evaluation_dashboard/index.md): Configure ADOT to send Strands evaluation results to Amazon CloudWatch and visualize scores in the Bedrock AgentCore observability dashboard. - Strands Shell - [shell](/pr-cms-3708/docs/user-guide/shell/index.md): Strands Shell is an in-process shell sandbox that gives agents a fast, isolated command line with filesystem, network, and credential mediation built in. - [quickstart](/pr-cms-3708/docs/user-guide/shell/quickstart/index.md): Install Strands Shell and run your first sandboxed command through the MCP server, the Python API, or the Node.js API in just a few minutes. - [configuration](/pr-cms-3708/docs/user-guide/shell/configuration/index.md): Bind host directories, inject credentials per URL, set the network allowlist, and tune resource limits for Strands Shell, in code or from a TOML file. - [commands](/pr-cms-3708/docs/user-guide/shell/commands/index.md): The full command inventory in Strands Shell, with supported flags, shell builtins, and known divergences from GNU and BSD coreutils behavior. - [mcp-server](/pr-cms-3708/docs/user-guide/shell/mcp-server/index.md): Expose Strands Shell to any MCP-compatible agent over stdio, with four sandboxed tools and optional nested MCP servers surfaced as Lua modules. - [security](/pr-cms-3708/docs/user-guide/shell/security/index.md): How the Kernel boundary mediates filesystem, network, and credential access, what Strands Shell guarantees, and when to add OS-level isolation. - [versioning-and-support](/pr-cms-3708/docs/user-guide/versioning-and-support/index.md): How the Strands SDK versions releases: semantic versioning guarantees, experimental feature policies, and deprecation timelines explained. ## Examples - [weather_forecaster](/pr-cms-3708/docs/examples/python/weather_forecaster/index.md): Build a weather forecasting agent with Strands using the http_request tool and the National Weather Service API, with no API key required. - [memory_agent](/pr-cms-3708/docs/examples/python/memory_agent/index.md): Build a Strands agent with persistent memory using mem0.ai: store, retrieve, and apply memories across conversations for personalized responses. - [file_operations](/pr-cms-3708/docs/examples/python/file_operations/index.md): Build a Strands agent for file management: read, write, search, and modify files through natural language with file_read, file_write, and editor. - [agents_workflows](/pr-cms-3708/docs/examples/python/agents_workflows/index.md): Build a multi-agent research workflow with Strands: researcher, fact-checker, and report writer agents collaborate in sequence on web research. - [knowledge_base_agent](/pr-cms-3708/docs/examples/python/knowledge_base_agent/index.md): Build a Strands agent that routes user queries to an Amazon Bedrock knowledge base, deciding whether to store or retrieve information. - [structured_output](/pr-cms-3708/docs/examples/structured_output/index.md): Get type-safe, validated responses from Strands agents with structured output: define a schema in Python or TypeScript and receive a parsed object. - [multi_agent_example](/pr-cms-3708/docs/examples/python/multi_agent_example/multi_agent_example/index.md): Build a teacher's assistant with Strands multi-agent architecture: a central orchestrator routes queries to specialized subject-matter agents. - [graph_loops_example](/pr-cms-3708/docs/examples/python/graph_loops_example/index.md): Build multi-agent graphs with feedback loops in Strands: a write-review-improve cycle where content iterates until quality standards are met. - [meta_tooling](/pr-cms-3708/docs/examples/python/meta_tooling/index.md): Build a Strands agent that creates, loads, and uses new tools at runtime: meta-tooling with the load_tool, shell, and editor tools. - [mcp_calculator](/pr-cms-3708/docs/examples/python/mcp_calculator/index.md): Connect a Strands agent to external tools with the Model Context Protocol: build an MCP calculator server and call its tools from an agent. - [multimodal](/pr-cms-3708/docs/examples/python/multimodal/index.md): Build a multi-agent Strands system that generates and evaluates images: two specialized agents collaborate on multimodal content processing. ## Community - [get-featured](/pr-cms-3708/docs/integrations/get-featured/index.md): How to list your integration on the Strands Agents integrations page, from package requirements to submitting an entry. - Contribute - [contribute](/pr-cms-3708/docs/contribute/index.md): Ways to contribute to the Strands Agents ecosystem: fix bugs in the core SDK, improve the documentation, or build and publish extensions. - Contribution Types - [core-sdk](/pr-cms-3708/docs/contribute/contributing/core-sdk/index.md): Contribute to the Strands core SDK for Python and TypeScript: find open issues, set up your development environment, and submit changes for review. - [documentation](/pr-cms-3708/docs/contribute/contributing/documentation/index.md): Contribute to Strands Agents documentation: run the Astro site locally, use the docs agent skills, and submit anything from typo fixes to new guides. - [feature-proposals](/pr-cms-3708/docs/contribute/contributing/feature-proposals/index.md): Propose significant features for the Strands SDK: when to write a design document, what to include, and how the review process works. - [extensions](/pr-cms-3708/docs/contribute/contributing/extensions/index.md): Package and publish your own Strands components: share tools, model providers, and session managers so other developers can install them. - Labs - [labs](/pr-cms-3708/docs/labs/index.md): Explore Strands Labs, the experimental arm of Strands Agents: open source projects covering robotics, world models, agentic benchmarks, harness optimization, and audio processing. - Projects - [robots](/pr-cms-3708/docs/labs/robots/index.md): Control, simulate, and train physical robots with natural language through Strands Agents: one Robot() call returns a MuJoCo simulation or real hardware, with pluggable vision-language-action policies and a peer-to-peer mesh. - [strands-for-cosmos](/pr-cms-3708/docs/labs/strands-for-cosmos/index.md): NVIDIA Cosmos for Strands Agents: give your agent eyes that understand physics and hands that generate video, audio, and robot actions on local compute. - [benchmark-harnesses](/pr-cms-3708/docs/labs/benchmark-harnesses/index.md): Strands-based agents and harnesses for agentic benchmarks, including Simple Strands Agent - a lean autonomous-coding agent with state-of-the-art results on SWE-Bench and Terminal Bench. - [harness-optimizer](/pr-cms-3708/docs/labs/harness-optimizer/index.md): Optimize LLM agent harnesses through tunable Formulas that dynamically enhance the agent, improved by optimizers based on collected agent rollout trajectories. - [ai-functions](/pr-cms-3708/docs/labs/ai-functions/index.md): Build reliable AI-powered applications with Strands AI Functions: Python functions evaluated by reasoning agents, with post-condition checking. - [pywebrtc-audio](/pr-cms-3708/docs/labs/pywebrtc-audio/index.md): Python bindings for WebRTC audio processing: echo cancellation, noise suppression, automatic gain control, and voice activity detection - the same algorithms that run in Chrome. - Integrations - [ag-ui](/pr-cms-3708/docs/integrations/integrations/ag-ui/index.md): Build streaming chat interfaces for Strands agents with the AG-UI protocol and CopilotKit front-end components. - [welt](/pr-cms-3708/docs/integrations/integrations/welt/index.md): Slack front end for Strands agents on Amazon Bedrock AgentCore — streaming replies, file exchange, and human-in-the-loop approvals in Slack threads - Agent Extensions - [strands-code-agent](/pr-cms-3708/docs/integrations/agent-extensions/strands-code-agent/index.md): A coding agent that replaces tool-calling with code generation in a persistent Python REPL - Interventions - [overview](/pr-cms-3708/docs/integrations/interventions/overview/index.md): Community-built intervention handlers for authorization, guardrails, and steering. - [strands-agt](/pr-cms-3708/docs/integrations/interventions/strands-agt/index.md): Deterministic policy enforcement via Microsoft Agent Governance Toolkit - Plugins - [agent-control](/pr-cms-3708/docs/integrations/plugins/agent-control/index.md): Enforce centrally managed runtime policies on Strands agents with Agent Control, blocking or steering violations at every step. - [agentcore-payments](/pr-cms-3708/docs/integrations/plugins/agentcore-payments/index.md): Automated payment processing for agents using Amazon Bedrock AgentCore - [agentcore-tool-search](/pr-cms-3708/docs/integrations/plugins/agentcore-tool-search/index.md): Semantic tool discovery for agents using Amazon Bedrock AgentCore Gateway - [datadog-ai-guard](/pr-cms-3708/docs/integrations/plugins/datadog-ai-guard/index.md): Protect Strands agents in real time with Datadog AI Guard, blocking prompt injection, jailbreaks, and unsafe tool calls. - [s3-vectors-memory](/pr-cms-3708/docs/integrations/plugins/s3-vectors-memory/index.md): Long-term semantic memory for Strands Agents backed by Amazon S3 Vectors - Model Providers - [cohere](/pr-cms-3708/docs/integrations/model-providers/cohere/index.md): Use Cohere language models with Strands agents through the OpenAI compatibility layer for chat, tool calling, and streaming. - [clova-studio](/pr-cms-3708/docs/integrations/model-providers/clova-studio/index.md): Connect Strands agents to Naver CLOVA Studio, Korean-optimized language models on Naver Cloud Platform, via strands-clova. - [crusoe](/pr-cms-3708/docs/integrations/model-providers/crusoe/index.md): Crusoe Managed Inference - [fireworksai](/pr-cms-3708/docs/integrations/model-providers/fireworksai/index.md): Run Strands agents on Fireworks AI, fast hosted inference for open-source models, using the OpenAI-compatible API. - [nebius-token-factory](/pr-cms-3708/docs/integrations/model-providers/nebius-token-factory/index.md): Use Nebius Token Factory with Strands agents for fast open-source model inference through the OpenAI-compatible API. - [nvidia-nim](/pr-cms-3708/docs/integrations/model-providers/nvidia-nim/index.md): Connect Strands agents to NVIDIA NIM inference microservices with the strands-nvidia-nim community model provider. - [sglang](/pr-cms-3708/docs/integrations/model-providers/sglang/index.md): Use SGLang servers as a Strands model provider with Token-In/Token-Out support for agentic reinforcement learning training. - [vllm](/pr-cms-3708/docs/integrations/model-providers/vllm/index.md): Serve Strands agents from vLLM with Token-In/Token-Out support for agentic RL training via the OpenAI-compatible API. - [mlx](/pr-cms-3708/docs/integrations/model-providers/mlx/index.md): Run Strands agents locally on Apple Silicon with the MLX model provider, supporting inference, LoRA fine-tuning, and vision. - [ovhcloud-ai-endpoints](/pr-cms-3708/docs/integrations/model-providers/ovhcloud-ai-endpoints/index.md): Run Strands agents on OVHcloud AI Endpoints, a European, GDPR-compliant model service with an OpenAI-compatible API. - [xai](/pr-cms-3708/docs/integrations/model-providers/xai/index.md): Use xAI Grok models with Strands agents, including server-side tools for web search, X platform access, and code execution. - Memory Stores - [overview](/pr-cms-3708/docs/integrations/memory-stores/overview/index.md): Community-built memory stores that give agents long-term memory across sessions. - [agentcore-memory-store](/pr-cms-3708/docs/integrations/memory-stores/agentcore-memory-store/index.md): Amazon Bedrock AgentCore Memory as a MemoryStore for long-term recall and server-side extraction - [strands-dakera](/pr-cms-3708/docs/integrations/memory-stores/strands-dakera/index.md): Persistent, decay-weighted MemoryStore for agents — self-hosted, with a full-CRUD tool - Storage - [overview](/pr-cms-3708/docs/integrations/storage/overview/index.md): Community-built storage backends for persisting raw bytes under string keys. - Session Managers - [agentcore-memory](/pr-cms-3708/docs/integrations/session-managers/agentcore-memory/index.md): Persist Strands agent conversations with Amazon Bedrock AgentCore Memory, including short-term and long-term memory strategies. - [strands-valkey-session-manager](/pr-cms-3708/docs/integrations/session-managers/strands-valkey-session-manager/index.md): Store Strands agent sessions in Valkey or Redis for low-latency, distributed conversation persistence across interactions. - Tool Protocols - [utcp](/pr-cms-3708/docs/integrations/tools/utcp/index.md): Let Strands agents discover and call tools directly over native protocols with the Universal Tool Calling Protocol (UTCP). - Tools - [strands-apify](/pr-cms-3708/docs/integrations/tools/strands-apify/index.md): Web scraping for social media, search engines, e-commerce, and more via Apify Actors - [strands-deepgram](/pr-cms-3708/docs/integrations/tools/strands-deepgram/index.md): Add speech-to-text, text-to-speech, and audio intelligence to Strands agents with the Deepgram voice AI platform. - [strands-hubspot](/pr-cms-3708/docs/integrations/tools/strands-hubspot/index.md): Query HubSpot CRM data from Strands agents with read-only tools for sales intelligence, customer research, and analytics. - [strands-spraay](/pr-cms-3708/docs/integrations/tools/strands-spraay/index.md): Send batch crypto payments from Strands agents with the Spraay Protocol: ETH or ERC-20 tokens to up to 200 recipients on Base. - [strands-sql](/pr-cms-3708/docs/integrations/tools/strands-sql/index.md): General-purpose SQL tool for Strands Agents — PostgreSQL, MySQL, and SQLite via SQLAlchemy. - [strands-teams](/pr-cms-3708/docs/integrations/tools/strands-teams/index.md): Send Microsoft Teams notifications from Strands agents with rich Adaptive Cards and custom messaging support. - [strands-telegram](/pr-cms-3708/docs/integrations/tools/strands-telegram/index.md): Control Telegram bots from Strands agents with 60+ Bot API methods for messaging, media, and chat management. - [strands-telegram-listener](/pr-cms-3708/docs/integrations/tools/strands-telegram-listener/index.md): Process incoming Telegram messages in real time with Strands agents, with AI-powered auto-replies and event handling. ## Api Python - [strands.agent.a2a_agent](/pr-cms-3708/docs/api/python/strands.agent.a2a_agent/index.md) - [strands.agent.agent](/pr-cms-3708/docs/api/python/strands.agent.agent/index.md) - [strands.agent.agent_result](/pr-cms-3708/docs/api/python/strands.agent.agent_result/index.md) - [strands.agent.base](/pr-cms-3708/docs/api/python/strands.agent.base/index.md) - [strands.agent.conversation_manager.compression.context_compression](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.compression.context_compression/index.md) - [strands.agent.conversation_manager.compression.pin_message](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.compression.pin_message/index.md) - [strands.agent.conversation_manager.conversation_manager](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.conversation_manager/index.md) - [strands.agent.conversation_manager.null_conversation_manager](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.null_conversation_manager/index.md) - [strands.agent.conversation_manager.sliding_window_conversation_manager](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.sliding_window_conversation_manager/index.md) - [strands.agent.conversation_manager.summarizing_conversation_manager](/pr-cms-3708/docs/api/python/strands.agent.conversation_manager.summarizing_conversation_manager/index.md) - [strands.event_loop.event_loop](/pr-cms-3708/docs/api/python/strands.event_loop.event_loop/index.md) - [strands.event_loop.streaming](/pr-cms-3708/docs/api/python/strands.event_loop.streaming/index.md) - [strands.experimental.agent_config](/pr-cms-3708/docs/api/python/strands.experimental.agent_config/index.md) - [strands.experimental.bidi](/pr-cms-3708/docs/api/python/strands.experimental.bidi/index.md) - [strands.experimental.bidi.agent.agent](/pr-cms-3708/docs/api/python/strands.experimental.bidi.agent.agent/index.md) - [strands.experimental.bidi.agent.loop](/pr-cms-3708/docs/api/python/strands.experimental.bidi.agent.loop/index.md) - [strands.experimental.bidi.io.audio](/pr-cms-3708/docs/api/python/strands.experimental.bidi.io.audio/index.md) - [strands.experimental.bidi.io.text](/pr-cms-3708/docs/api/python/strands.experimental.bidi.io.text/index.md) - [strands.experimental.bidi.models](/pr-cms-3708/docs/api/python/strands.experimental.bidi.models/index.md) - [strands.experimental.bidi.models.gemini_live](/pr-cms-3708/docs/api/python/strands.experimental.bidi.models.gemini_live/index.md) - [strands.experimental.bidi.models.model](/pr-cms-3708/docs/api/python/strands.experimental.bidi.models.model/index.md) - [strands.experimental.bidi.models.nova_sonic](/pr-cms-3708/docs/api/python/strands.experimental.bidi.models.nova_sonic/index.md) - [strands.experimental.bidi.models.openai_realtime](/pr-cms-3708/docs/api/python/strands.experimental.bidi.models.openai_realtime/index.md) - [strands.experimental.bidi.tools.stop_conversation](/pr-cms-3708/docs/api/python/strands.experimental.bidi.tools.stop_conversation/index.md) - [strands.experimental.bidi.types.events](/pr-cms-3708/docs/api/python/strands.experimental.bidi.types.events/index.md) - [strands.experimental.bidi.types.io](/pr-cms-3708/docs/api/python/strands.experimental.bidi.types.io/index.md) - [strands.experimental.bidi.types.model](/pr-cms-3708/docs/api/python/strands.experimental.bidi.types.model/index.md) - [strands.experimental.checkpoint.checkpoint](/pr-cms-3708/docs/api/python/strands.experimental.checkpoint.checkpoint/index.md) - [strands.experimental.hooks.events](/pr-cms-3708/docs/api/python/strands.experimental.hooks.events/index.md) - [strands.experimental.tools.stop.stop](/pr-cms-3708/docs/api/python/strands.experimental.tools.stop.stop/index.md) - [strands.handlers.callback_handler](/pr-cms-3708/docs/api/python/strands.handlers.callback_handler/index.md) - [strands.hooks.events](/pr-cms-3708/docs/api/python/strands.hooks.events/index.md) - [strands.hooks.registry](/pr-cms-3708/docs/api/python/strands.hooks.registry/index.md) - [strands.injection.types](/pr-cms-3708/docs/api/python/strands.injection.types/index.md) - [strands.interrupt](/pr-cms-3708/docs/api/python/strands.interrupt/index.md) - [strands.interventions.actions](/pr-cms-3708/docs/api/python/strands.interventions.actions/index.md) - [strands.interventions.handler](/pr-cms-3708/docs/api/python/strands.interventions.handler/index.md) - [strands.interventions.registry](/pr-cms-3708/docs/api/python/strands.interventions.registry/index.md) - [strands.memory.extraction.coordinator](/pr-cms-3708/docs/api/python/strands.memory.extraction.coordinator/index.md) - [strands.memory.extraction.model_extractor](/pr-cms-3708/docs/api/python/strands.memory.extraction.model_extractor/index.md) - [strands.memory.extraction.triggers](/pr-cms-3708/docs/api/python/strands.memory.extraction.triggers/index.md) - [strands.memory.extraction.types](/pr-cms-3708/docs/api/python/strands.memory.extraction.types/index.md) - [strands.memory.memory_manager](/pr-cms-3708/docs/api/python/strands.memory.memory_manager/index.md) - [strands.memory.types](/pr-cms-3708/docs/api/python/strands.memory.types/index.md) - [strands.models](/pr-cms-3708/docs/api/python/strands.models/index.md) - [strands.models.anthropic](/pr-cms-3708/docs/api/python/strands.models.anthropic/index.md) - [strands.models.bedrock](/pr-cms-3708/docs/api/python/strands.models.bedrock/index.md) - [strands.models.gemini](/pr-cms-3708/docs/api/python/strands.models.gemini/index.md) - [strands.models.litellm](/pr-cms-3708/docs/api/python/strands.models.litellm/index.md) - [strands.models.llamaapi](/pr-cms-3708/docs/api/python/strands.models.llamaapi/index.md) - [strands.models.llamacpp](/pr-cms-3708/docs/api/python/strands.models.llamacpp/index.md) - [strands.models.mistral](/pr-cms-3708/docs/api/python/strands.models.mistral/index.md) - [strands.models.model](/pr-cms-3708/docs/api/python/strands.models.model/index.md) - [strands.models.ollama](/pr-cms-3708/docs/api/python/strands.models.ollama/index.md) - [strands.models.openai](/pr-cms-3708/docs/api/python/strands.models.openai/index.md) - [strands.models.openai_responses](/pr-cms-3708/docs/api/python/strands.models.openai_responses/index.md) - [strands.models.sagemaker](/pr-cms-3708/docs/api/python/strands.models.sagemaker/index.md) - [strands.models.writer](/pr-cms-3708/docs/api/python/strands.models.writer/index.md) - [strands.multiagent.a2a.executor](/pr-cms-3708/docs/api/python/strands.multiagent.a2a.executor/index.md) - [strands.multiagent.a2a.server](/pr-cms-3708/docs/api/python/strands.multiagent.a2a.server/index.md) - [strands.multiagent.base](/pr-cms-3708/docs/api/python/strands.multiagent.base/index.md) - [strands.multiagent.graph](/pr-cms-3708/docs/api/python/strands.multiagent.graph/index.md) - [strands.multiagent.swarm](/pr-cms-3708/docs/api/python/strands.multiagent.swarm/index.md) - [strands.plugins.decorator](/pr-cms-3708/docs/api/python/strands.plugins.decorator/index.md) - [strands.plugins.multiagent_plugin](/pr-cms-3708/docs/api/python/strands.plugins.multiagent_plugin/index.md) - [strands.plugins.multiagent_registry](/pr-cms-3708/docs/api/python/strands.plugins.multiagent_registry/index.md) - [strands.plugins.plugin](/pr-cms-3708/docs/api/python/strands.plugins.plugin/index.md) - [strands.plugins.registry](/pr-cms-3708/docs/api/python/strands.plugins.registry/index.md) - [strands.sandbox.base](/pr-cms-3708/docs/api/python/strands.sandbox.base/index.md) - [strands.sandbox.constants](/pr-cms-3708/docs/api/python/strands.sandbox.constants/index.md) - [strands.sandbox.docker](/pr-cms-3708/docs/api/python/strands.sandbox.docker/index.md) - [strands.sandbox.errors](/pr-cms-3708/docs/api/python/strands.sandbox.errors/index.md) - [strands.sandbox.not_a_sandbox_local_environment](/pr-cms-3708/docs/api/python/strands.sandbox.not_a_sandbox_local_environment/index.md) - [strands.sandbox.posix_shell](/pr-cms-3708/docs/api/python/strands.sandbox.posix_shell/index.md) - [strands.sandbox.ssh](/pr-cms-3708/docs/api/python/strands.sandbox.ssh/index.md) - [strands.sandbox.types](/pr-cms-3708/docs/api/python/strands.sandbox.types/index.md) - [strands.session.file_session_manager](/pr-cms-3708/docs/api/python/strands.session.file_session_manager/index.md) - [strands.session.repository_session_manager](/pr-cms-3708/docs/api/python/strands.session.repository_session_manager/index.md) - [strands.session.s3_session_manager](/pr-cms-3708/docs/api/python/strands.session.s3_session_manager/index.md) - [strands.session.session_manager](/pr-cms-3708/docs/api/python/strands.session.session_manager/index.md) - [strands.session.session_repository](/pr-cms-3708/docs/api/python/strands.session.session_repository/index.md) - [strands.session.snapshot_session_manager](/pr-cms-3708/docs/api/python/strands.session.snapshot_session_manager/index.md) - [strands.storage.in_memory_storage](/pr-cms-3708/docs/api/python/strands.storage.in_memory_storage/index.md) - [strands.storage.local_file_storage](/pr-cms-3708/docs/api/python/strands.storage.local_file_storage/index.md) - [strands.storage.s3_storage](/pr-cms-3708/docs/api/python/strands.storage.s3_storage/index.md) - [strands.storage.storage](/pr-cms-3708/docs/api/python/strands.storage.storage/index.md) - [strands.telemetry.config](/pr-cms-3708/docs/api/python/strands.telemetry.config/index.md) - [strands.telemetry.metrics](/pr-cms-3708/docs/api/python/strands.telemetry.metrics/index.md) - [strands.telemetry.tracer](/pr-cms-3708/docs/api/python/strands.telemetry.tracer/index.md) - [strands.tools.decorator](/pr-cms-3708/docs/api/python/strands.tools.decorator/index.md) - [strands.tools.executors.concurrent](/pr-cms-3708/docs/api/python/strands.tools.executors.concurrent/index.md) - [strands.tools.executors.sequential](/pr-cms-3708/docs/api/python/strands.tools.executors.sequential/index.md) - [strands.tools.loader](/pr-cms-3708/docs/api/python/strands.tools.loader/index.md) - [strands.tools.mcp.mcp_agent_tool](/pr-cms-3708/docs/api/python/strands.tools.mcp.mcp_agent_tool/index.md) - [strands.tools.mcp.mcp_client](/pr-cms-3708/docs/api/python/strands.tools.mcp.mcp_client/index.md) - [strands.tools.mcp.mcp_instrumentation](/pr-cms-3708/docs/api/python/strands.tools.mcp.mcp_instrumentation/index.md) - [strands.tools.mcp.mcp_tasks](/pr-cms-3708/docs/api/python/strands.tools.mcp.mcp_tasks/index.md) - [strands.tools.mcp.mcp_types](/pr-cms-3708/docs/api/python/strands.tools.mcp.mcp_types/index.md) - [strands.tools.registry](/pr-cms-3708/docs/api/python/strands.tools.registry/index.md) - [strands.tools.structured_output.structured_output_tool](/pr-cms-3708/docs/api/python/strands.tools.structured_output.structured_output_tool/index.md) - [strands.tools.structured_output.structured_output_utils](/pr-cms-3708/docs/api/python/strands.tools.structured_output.structured_output_utils/index.md) - [strands.tools.tool_provider](/pr-cms-3708/docs/api/python/strands.tools.tool_provider/index.md) - [strands.tools.tools](/pr-cms-3708/docs/api/python/strands.tools.tools/index.md) - [strands.tools.watcher](/pr-cms-3708/docs/api/python/strands.tools.watcher/index.md) - [strands.types.a2a](/pr-cms-3708/docs/api/python/strands.types.a2a/index.md) - [strands.types.agent](/pr-cms-3708/docs/api/python/strands.types.agent/index.md) - [strands.types.citations](/pr-cms-3708/docs/api/python/strands.types.citations/index.md) - [strands.types.collections](/pr-cms-3708/docs/api/python/strands.types.collections/index.md) - [strands.types.content](/pr-cms-3708/docs/api/python/strands.types.content/index.md) - [strands.types.event_loop](/pr-cms-3708/docs/api/python/strands.types.event_loop/index.md) - [strands.types.exceptions](/pr-cms-3708/docs/api/python/strands.types.exceptions/index.md) - [strands.types.guardrails](/pr-cms-3708/docs/api/python/strands.types.guardrails/index.md) - [strands.types.interrupt](/pr-cms-3708/docs/api/python/strands.types.interrupt/index.md) - [strands.types.json_dict](/pr-cms-3708/docs/api/python/strands.types.json_dict/index.md) - [strands.types.media](/pr-cms-3708/docs/api/python/strands.types.media/index.md) - [strands.types.session](/pr-cms-3708/docs/api/python/strands.types.session/index.md) - [strands.types.streaming](/pr-cms-3708/docs/api/python/strands.types.streaming/index.md) - [strands.types.tools](/pr-cms-3708/docs/api/python/strands.types.tools/index.md) - [strands.vended_interventions.cedar.cedar_authorization](/pr-cms-3708/docs/api/python/strands.vended_interventions.cedar.cedar_authorization/index.md) - [strands.vended_interventions.hitl.classifier](/pr-cms-3708/docs/api/python/strands.vended_interventions.hitl.classifier/index.md) - [strands.vended_interventions.hitl.hitl](/pr-cms-3708/docs/api/python/strands.vended_interventions.hitl.hitl/index.md) - [strands.vended_memory_stores](/pr-cms-3708/docs/api/python/strands.vended_memory_stores/index.md) - [strands.vended_memory_stores.bedrock_knowledge_base.store](/pr-cms-3708/docs/api/python/strands.vended_memory_stores.bedrock_knowledge_base.store/index.md) - [strands.vended_memory_stores.bedrock_knowledge_base.types](/pr-cms-3708/docs/api/python/strands.vended_memory_stores.bedrock_knowledge_base.types/index.md) - [strands.vended_memory_stores.test_memory_store.store](/pr-cms-3708/docs/api/python/strands.vended_memory_stores.test_memory_store.store/index.md) - [strands.vended_memory_stores.test_memory_store.types](/pr-cms-3708/docs/api/python/strands.vended_memory_stores.test_memory_store.types/index.md) - [strands.vended_plugins.context_injector.plugin](/pr-cms-3708/docs/api/python/strands.vended_plugins.context_injector.plugin/index.md) - [strands.vended_plugins.context_offloader.plugin](/pr-cms-3708/docs/api/python/strands.vended_plugins.context_offloader.plugin/index.md) - [strands.vended_plugins.context_offloader.storage](/pr-cms-3708/docs/api/python/strands.vended_plugins.context_offloader.storage/index.md) - [strands.vended_plugins.goal.judge](/pr-cms-3708/docs/api/python/strands.vended_plugins.goal.judge/index.md) - [strands.vended_plugins.goal.plugin](/pr-cms-3708/docs/api/python/strands.vended_plugins.goal.plugin/index.md) - [strands.vended_plugins.skills.agent_skills](/pr-cms-3708/docs/api/python/strands.vended_plugins.skills.agent_skills/index.md) - [strands.vended_plugins.skills.skill](/pr-cms-3708/docs/api/python/strands.vended_plugins.skills.skill/index.md) - [strands.vended_plugins.steering.context_providers.ledger_provider](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.context_providers.ledger_provider/index.md) - [strands.vended_plugins.steering.core.action](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.core.action/index.md) - [strands.vended_plugins.steering.core.context](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.core.context/index.md) - [strands.vended_plugins.steering.core.handler](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.core.handler/index.md) - [strands.vended_plugins.steering.handlers.llm.llm_handler](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.handlers.llm.llm_handler/index.md) - [strands.vended_plugins.steering.handlers.llm.mappers](/pr-cms-3708/docs/api/python/strands.vended_plugins.steering.handlers.llm.mappers/index.md) - [strands.vended_tools](/pr-cms-3708/docs/api/python/strands.vended_tools/index.md) - [strands.vended_tools.file_editor.file_editor](/pr-cms-3708/docs/api/python/strands.vended_tools.file_editor.file_editor/index.md) - [strands.vended_tools.http_request.http_request](/pr-cms-3708/docs/api/python/strands.vended_tools.http_request.http_request/index.md) - [strands.vended_tools.http_request.types](/pr-cms-3708/docs/api/python/strands.vended_tools.http_request.types/index.md) - [strands.vended_tools.shell.shell](/pr-cms-3708/docs/api/python/strands.vended_tools.shell.shell/index.md) - [strands.vended_tools.shell.types](/pr-cms-3708/docs/api/python/strands.vended_tools.shell.types/index.md) - [strands.vended_tools.sleep.sleep](/pr-cms-3708/docs/api/python/strands.vended_tools.sleep.sleep/index.md) - [strands.vended_tools.sleep.types](/pr-cms-3708/docs/api/python/strands.vended_tools.sleep.types/index.md) ## Api TypeScript - [AddMessagesContext](/pr-cms-3708/docs/api/typescript/AddMessagesContext/index.md) - [AfterInvocationEvent](/pr-cms-3708/docs/api/typescript/AfterInvocationEvent/index.md) - [AfterModelCallEvent](/pr-cms-3708/docs/api/typescript/AfterModelCallEvent/index.md) - [AfterToolCallEvent](/pr-cms-3708/docs/api/typescript/AfterToolCallEvent/index.md) - [AfterToolsEvent](/pr-cms-3708/docs/api/typescript/AfterToolsEvent/index.md) - [Agent](/pr-cms-3708/docs/api/typescript/Agent/index.md) - [AgentAsToolOptions](/pr-cms-3708/docs/api/typescript/AgentAsToolOptions/index.md) - [AgentConfig](/pr-cms-3708/docs/api/typescript/AgentConfig/index.md) - [AgentMetrics](/pr-cms-3708/docs/api/typescript/AgentMetrics/index.md) - [AgentResult](/pr-cms-3708/docs/api/typescript/AgentResult/index.md) - [AgentResultEvent](/pr-cms-3708/docs/api/typescript/AgentResultEvent/index.md) - [AgentStreamEvent](/pr-cms-3708/docs/api/typescript/AgentStreamEvent/index.md) - [AgentTrace](/pr-cms-3708/docs/api/typescript/AgentTrace/index.md) - [BackoffContext](/pr-cms-3708/docs/api/typescript/BackoffContext/index.md) - [BackoffStrategy](/pr-cms-3708/docs/api/typescript/BackoffStrategy/index.md) - [BaseModelConfig](/pr-cms-3708/docs/api/typescript/BaseModelConfig/index.md) - [BedrockCacheConfig](/pr-cms-3708/docs/api/typescript/BedrockCacheConfig/index.md) - [BedrockCacheTTL](/pr-cms-3708/docs/api/typescript/BedrockCacheTTL/index.md) - [BedrockGuardrailConfig](/pr-cms-3708/docs/api/typescript/BedrockGuardrailConfig/index.md) - [BedrockGuardrailRedactionConfig](/pr-cms-3708/docs/api/typescript/BedrockGuardrailRedactionConfig/index.md) - [BedrockModel](/pr-cms-3708/docs/api/typescript/BedrockModel/index.md) - [BedrockModelConfig](/pr-cms-3708/docs/api/typescript/BedrockModelConfig/index.md) - [BedrockModelOptions](/pr-cms-3708/docs/api/typescript/BedrockModelOptions/index.md) - [BeforeInvocationEvent](/pr-cms-3708/docs/api/typescript/BeforeInvocationEvent/index.md) - [BeforeModelCallEvent](/pr-cms-3708/docs/api/typescript/BeforeModelCallEvent/index.md) - [BeforeToolCallEvent](/pr-cms-3708/docs/api/typescript/BeforeToolCallEvent/index.md) - [BeforeToolsEvent](/pr-cms-3708/docs/api/typescript/BeforeToolsEvent/index.md) - [CacheConfig](/pr-cms-3708/docs/api/typescript/CacheConfig/index.md) - [CachePointBlock](/pr-cms-3708/docs/api/typescript/CachePointBlock/index.md) - [CachePointBlockData](/pr-cms-3708/docs/api/typescript/CachePointBlockData/index.md) - [Citation](/pr-cms-3708/docs/api/typescript/Citation/index.md) - [CitationGeneratedContent](/pr-cms-3708/docs/api/typescript/CitationGeneratedContent/index.md) - [CitationLocation](/pr-cms-3708/docs/api/typescript/CitationLocation/index.md) - [CitationsBlock](/pr-cms-3708/docs/api/typescript/CitationsBlock/index.md) - [CitationsBlockData](/pr-cms-3708/docs/api/typescript/CitationsBlockData/index.md) - [CitationsDelta](/pr-cms-3708/docs/api/typescript/CitationsDelta/index.md) - [CitationSourceContent](/pr-cms-3708/docs/api/typescript/CitationSourceContent/index.md) - [ConcurrentInvocationError](/pr-cms-3708/docs/api/typescript/ConcurrentInvocationError/index.md) - [ConcurrentToolExecutor](/pr-cms-3708/docs/api/typescript/ConcurrentToolExecutor/index.md) - [configureLogging](/pr-cms-3708/docs/api/typescript/configureLogging/index.md) - [ConstantBackoff](/pr-cms-3708/docs/api/typescript/ConstantBackoff/index.md) - [ConstantBackoffOptions](/pr-cms-3708/docs/api/typescript/ConstantBackoffOptions/index.md) - [ContentBlock](/pr-cms-3708/docs/api/typescript/ContentBlock/index.md) - [ContentBlockData](/pr-cms-3708/docs/api/typescript/ContentBlockData/index.md) - [ContentBlockDelta](/pr-cms-3708/docs/api/typescript/ContentBlockDelta/index.md) - [ContentBlockEvent](/pr-cms-3708/docs/api/typescript/ContentBlockEvent/index.md) - [contentBlockFromData](/pr-cms-3708/docs/api/typescript/contentBlockFromData/index.md) - [ContentBlockStart](/pr-cms-3708/docs/api/typescript/ContentBlockStart/index.md) - [ContextWindowOverflowError](/pr-cms-3708/docs/api/typescript/ContextWindowOverflowError/index.md) - [ConversationManager](/pr-cms-3708/docs/api/typescript/ConversationManager/index.md) - [ConversationManagerOptions](/pr-cms-3708/docs/api/typescript/ConversationManagerOptions/index.md) - [ConversationManagerReduceOptions](/pr-cms-3708/docs/api/typescript/ConversationManagerReduceOptions/index.md) - [CountTokensOptions](/pr-cms-3708/docs/api/typescript/CountTokensOptions/index.md) - [DefaultModelRetryStrategy](/pr-cms-3708/docs/api/typescript/DefaultModelRetryStrategy/index.md) - [DefaultModelRetryStrategyOptions](/pr-cms-3708/docs/api/typescript/DefaultModelRetryStrategyOptions/index.md) - [DefaultNotConfiguredError](/pr-cms-3708/docs/api/typescript/DefaultNotConfiguredError/index.md) - [DirectToolCallOptions](/pr-cms-3708/docs/api/typescript/DirectToolCallOptions/index.md) - [DocumentBlock](/pr-cms-3708/docs/api/typescript/DocumentBlock/index.md) - [DocumentBlockData](/pr-cms-3708/docs/api/typescript/DocumentBlockData/index.md) - [DocumentContentBlock](/pr-cms-3708/docs/api/typescript/DocumentContentBlock/index.md) - [DocumentContentBlockData](/pr-cms-3708/docs/api/typescript/DocumentContentBlockData/index.md) - [DocumentFormat](/pr-cms-3708/docs/api/typescript/DocumentFormat/index.md) - [DocumentSource](/pr-cms-3708/docs/api/typescript/DocumentSource/index.md) - [DocumentSourceData](/pr-cms-3708/docs/api/typescript/DocumentSourceData/index.md) - [ElicitationCallback](/pr-cms-3708/docs/api/typescript/ElicitationCallback/index.md) - [ElicitationContext](/pr-cms-3708/docs/api/typescript/ElicitationContext/index.md) - [ExecuteOptions](/pr-cms-3708/docs/api/typescript/ExecuteOptions/index.md) - [ExecuteToolContext](/pr-cms-3708/docs/api/typescript/ExecuteToolContext/index.md) - [ExecuteToolResult](/pr-cms-3708/docs/api/typescript/ExecuteToolResult/index.md) - [ExecuteToolStage](/pr-cms-3708/docs/api/typescript/ExecuteToolStage/index.md) - [ExecutionResult](/pr-cms-3708/docs/api/typescript/ExecutionResult/index.md) - [ExponentialBackoff](/pr-cms-3708/docs/api/typescript/ExponentialBackoff/index.md) - [ExponentialBackoffOptions](/pr-cms-3708/docs/api/typescript/ExponentialBackoffOptions/index.md) - [ExtractionConfig](/pr-cms-3708/docs/api/typescript/ExtractionConfig/index.md) - [ExtractionResult](/pr-cms-3708/docs/api/typescript/ExtractionResult/index.md) - [ExtractionTrigger](/pr-cms-3708/docs/api/typescript/ExtractionTrigger/index.md) - [ExtractionTriggerContext](/pr-cms-3708/docs/api/typescript/ExtractionTriggerContext/index.md) - [Extractor](/pr-cms-3708/docs/api/typescript/Extractor/index.md) - [ExtractorContext](/pr-cms-3708/docs/api/typescript/ExtractorContext/index.md) - [FileInfo](/pr-cms-3708/docs/api/typescript/FileInfo/index.md) - [FileStorage](/pr-cms-3708/docs/api/typescript/FileStorage/index.md) - [FunctionTool](/pr-cms-3708/docs/api/typescript/FunctionTool/index.md) - [FunctionToolCallback](/pr-cms-3708/docs/api/typescript/FunctionToolCallback/index.md) - [FunctionToolConfig](/pr-cms-3708/docs/api/typescript/FunctionToolConfig/index.md) - [Graph](/pr-cms-3708/docs/api/typescript/Graph/index.md) - [GuardContentBlock](/pr-cms-3708/docs/api/typescript/GuardContentBlock/index.md) - [GuardContentBlockData](/pr-cms-3708/docs/api/typescript/GuardContentBlockData/index.md) - [GuardContentImage](/pr-cms-3708/docs/api/typescript/GuardContentImage/index.md) - [GuardContentText](/pr-cms-3708/docs/api/typescript/GuardContentText/index.md) - [GuardImageFormat](/pr-cms-3708/docs/api/typescript/GuardImageFormat/index.md) - [GuardImageSource](/pr-cms-3708/docs/api/typescript/GuardImageSource/index.md) - [GuardQualifier](/pr-cms-3708/docs/api/typescript/GuardQualifier/index.md) - [HookableEvent](/pr-cms-3708/docs/api/typescript/HookableEvent/index.md) - [HookableEventConstructor](/pr-cms-3708/docs/api/typescript/HookableEventConstructor/index.md) - [HookCallback](/pr-cms-3708/docs/api/typescript/HookCallback/index.md) - [HookCallbackOptions](/pr-cms-3708/docs/api/typescript/HookCallbackOptions/index.md) - [HookOrder](/pr-cms-3708/docs/api/typescript/HookOrder/index.md) - [HookRegistry](/pr-cms-3708/docs/api/typescript/HookRegistry/index.md) - [ImageBlock](/pr-cms-3708/docs/api/typescript/ImageBlock/index.md) - [ImageBlockData](/pr-cms-3708/docs/api/typescript/ImageBlockData/index.md) - [ImageFormat](/pr-cms-3708/docs/api/typescript/ImageFormat/index.md) - [ImageSource](/pr-cms-3708/docs/api/typescript/ImageSource/index.md) - [ImageSourceData](/pr-cms-3708/docs/api/typescript/ImageSourceData/index.md) - [InitializedEvent](/pr-cms-3708/docs/api/typescript/InitializedEvent/index.md) - [InjectionConfig](/pr-cms-3708/docs/api/typescript/InjectionConfig/index.md) - [InjectionContext](/pr-cms-3708/docs/api/typescript/InjectionContext/index.md) - [InjectionTrigger](/pr-cms-3708/docs/api/typescript/InjectionTrigger/index.md) - [Interrupt](/pr-cms-3708/docs/api/typescript/Interrupt/index.md) - [InterruptEvent](/pr-cms-3708/docs/api/typescript/InterruptEvent/index.md) - [InterruptParams](/pr-cms-3708/docs/api/typescript/InterruptParams/index.md) - [InterruptResponse](/pr-cms-3708/docs/api/typescript/InterruptResponse/index.md) - [InterruptResponseContent](/pr-cms-3708/docs/api/typescript/InterruptResponseContent/index.md) - [InterruptResponseContentData](/pr-cms-3708/docs/api/typescript/InterruptResponseContentData/index.md) - [InterruptSource](/pr-cms-3708/docs/api/typescript/InterruptSource/index.md) - [IntervalTrigger](/pr-cms-3708/docs/api/typescript/IntervalTrigger/index.md) - [IntervalTriggerOptions](/pr-cms-3708/docs/api/typescript/IntervalTriggerOptions/index.md) - [InterventionActions](/pr-cms-3708/docs/api/typescript/InterventionActions/index.md) - [InterventionHandler](/pr-cms-3708/docs/api/typescript/InterventionHandler/index.md) - [InvocationState](/pr-cms-3708/docs/api/typescript/InvocationState/index.md) - [InvocationTrigger](/pr-cms-3708/docs/api/typescript/InvocationTrigger/index.md) - [InvokableTool](/pr-cms-3708/docs/api/typescript/InvokableTool/index.md) - [InvokeArgs](/pr-cms-3708/docs/api/typescript/InvokeArgs/index.md) - [InvokeModelContext](/pr-cms-3708/docs/api/typescript/InvokeModelContext/index.md) - [InvokeModelResult](/pr-cms-3708/docs/api/typescript/InvokeModelResult/index.md) - [InvokeModelStage](/pr-cms-3708/docs/api/typescript/InvokeModelStage/index.md) - [InvokeOptions](/pr-cms-3708/docs/api/typescript/InvokeOptions/index.md) - [isModelStreamEvent](/pr-cms-3708/docs/api/typescript/isModelStreamEvent/index.md) - [JitterKind](/pr-cms-3708/docs/api/typescript/JitterKind/index.md) - [JsonBlock](/pr-cms-3708/docs/api/typescript/JsonBlock/index.md) - [JSONSchema](/pr-cms-3708/docs/api/typescript/JSONSchema/index.md) - [JsonValidationError](/pr-cms-3708/docs/api/typescript/JsonValidationError/index.md) - [JSONValue](/pr-cms-3708/docs/api/typescript/JSONValue/index.md) - [LifecycleObserver](/pr-cms-3708/docs/api/typescript/LifecycleObserver/index.md) - [LinearBackoff](/pr-cms-3708/docs/api/typescript/LinearBackoff/index.md) - [LinearBackoffOptions](/pr-cms-3708/docs/api/typescript/LinearBackoffOptions/index.md) - [LocationData](/pr-cms-3708/docs/api/typescript/LocationData/index.md) - [Logger](/pr-cms-3708/docs/api/typescript/Logger/index.md) - [MaxTokensError](/pr-cms-3708/docs/api/typescript/MaxTokensError/index.md) - [McpCallToolOptions](/pr-cms-3708/docs/api/typescript/McpCallToolOptions/index.md) - [McpClient](/pr-cms-3708/docs/api/typescript/McpClient/index.md) - [McpClientConfig](/pr-cms-3708/docs/api/typescript/McpClientConfig/index.md) - [McpClientCredentials](/pr-cms-3708/docs/api/typescript/McpClientCredentials/index.md) - [McpClientOptions](/pr-cms-3708/docs/api/typescript/McpClientOptions/index.md) - [McpConnectionState](/pr-cms-3708/docs/api/typescript/McpConnectionState/index.md) - [McpListToolsOptions](/pr-cms-3708/docs/api/typescript/McpListToolsOptions/index.md) - [McpServerConfig](/pr-cms-3708/docs/api/typescript/McpServerConfig/index.md) - [McpToolFilterCallback](/pr-cms-3708/docs/api/typescript/McpToolFilterCallback/index.md) - [McpToolFilters](/pr-cms-3708/docs/api/typescript/McpToolFilters/index.md) - [McpToolMatcher](/pr-cms-3708/docs/api/typescript/McpToolMatcher/index.md) - [McpTransport](/pr-cms-3708/docs/api/typescript/McpTransport/index.md) - [MemoryAddOptions](/pr-cms-3708/docs/api/typescript/MemoryAddOptions/index.md) - [MemoryAddToolConfig](/pr-cms-3708/docs/api/typescript/MemoryAddToolConfig/index.md) - [MemoryContentBlockType](/pr-cms-3708/docs/api/typescript/MemoryContentBlockType/index.md) - [MemoryEntry](/pr-cms-3708/docs/api/typescript/MemoryEntry/index.md) - [MemoryInjectionConfig](/pr-cms-3708/docs/api/typescript/MemoryInjectionConfig/index.md) - [MemoryManager](/pr-cms-3708/docs/api/typescript/MemoryManager/index.md) - [MemoryManagerConfig](/pr-cms-3708/docs/api/typescript/MemoryManagerConfig/index.md) - [MemoryMessageFilter](/pr-cms-3708/docs/api/typescript/MemoryMessageFilter/index.md) - [MemorySearchOptions](/pr-cms-3708/docs/api/typescript/MemorySearchOptions/index.md) - [MemoryStore](/pr-cms-3708/docs/api/typescript/MemoryStore/index.md) - [MemoryStoreConfig](/pr-cms-3708/docs/api/typescript/MemoryStoreConfig/index.md) - [MemoryToolConfig](/pr-cms-3708/docs/api/typescript/MemoryToolConfig/index.md) - [Message](/pr-cms-3708/docs/api/typescript/Message/index.md) - [MessageAddedEvent](/pr-cms-3708/docs/api/typescript/MessageAddedEvent/index.md) - [MessageData](/pr-cms-3708/docs/api/typescript/MessageData/index.md) - [Metrics](/pr-cms-3708/docs/api/typescript/Metrics/index.md) - [MiddlewareHandler](/pr-cms-3708/docs/api/typescript/MiddlewareHandler/index.md) - [MiddlewareHandlerOf](/pr-cms-3708/docs/api/typescript/MiddlewareHandlerOf/index.md) - [MiddlewareInputHandler](/pr-cms-3708/docs/api/typescript/MiddlewareInputHandler/index.md) - [MiddlewareInterruptible](/pr-cms-3708/docs/api/typescript/MiddlewareInterruptible/index.md) - [MiddlewareInterruptResult](/pr-cms-3708/docs/api/typescript/MiddlewareInterruptResult/index.md) - [MiddlewareNext](/pr-cms-3708/docs/api/typescript/MiddlewareNext/index.md) - [MiddlewareNextOf](/pr-cms-3708/docs/api/typescript/MiddlewareNextOf/index.md) - [MiddlewareOutputHandler](/pr-cms-3708/docs/api/typescript/MiddlewareOutputHandler/index.md) - [MiddlewareStage](/pr-cms-3708/docs/api/typescript/MiddlewareStage/index.md) - [Model](/pr-cms-3708/docs/api/typescript/Model/index.md) - [ModelContentBlockDeltaEvent](/pr-cms-3708/docs/api/typescript/ModelContentBlockDeltaEvent/index.md) - [ModelContentBlockDeltaEventData](/pr-cms-3708/docs/api/typescript/ModelContentBlockDeltaEventData/index.md) - [ModelContentBlockStartEvent](/pr-cms-3708/docs/api/typescript/ModelContentBlockStartEvent/index.md) - [ModelContentBlockStartEventData](/pr-cms-3708/docs/api/typescript/ModelContentBlockStartEventData/index.md) - [ModelContentBlockStopEvent](/pr-cms-3708/docs/api/typescript/ModelContentBlockStopEvent/index.md) - [ModelError](/pr-cms-3708/docs/api/typescript/ModelError/index.md) - [ModelExtractor](/pr-cms-3708/docs/api/typescript/ModelExtractor/index.md) - [ModelExtractorOptions](/pr-cms-3708/docs/api/typescript/ModelExtractorOptions/index.md) - [ModelMessageEvent](/pr-cms-3708/docs/api/typescript/ModelMessageEvent/index.md) - [ModelMessageStartEvent](/pr-cms-3708/docs/api/typescript/ModelMessageStartEvent/index.md) - [ModelMessageStartEventData](/pr-cms-3708/docs/api/typescript/ModelMessageStartEventData/index.md) - [ModelMessageStopEvent](/pr-cms-3708/docs/api/typescript/ModelMessageStopEvent/index.md) - [ModelMessageStopEventData](/pr-cms-3708/docs/api/typescript/ModelMessageStopEventData/index.md) - [ModelMetadataEvent](/pr-cms-3708/docs/api/typescript/ModelMetadataEvent/index.md) - [ModelMetadataEventData](/pr-cms-3708/docs/api/typescript/ModelMetadataEventData/index.md) - [ModelRedactionEvent](/pr-cms-3708/docs/api/typescript/ModelRedactionEvent/index.md) - [ModelRedactionEventData](/pr-cms-3708/docs/api/typescript/ModelRedactionEventData/index.md) - [ModelRetryStrategy](/pr-cms-3708/docs/api/typescript/ModelRetryStrategy/index.md) - [ModelStopResponse](/pr-cms-3708/docs/api/typescript/ModelStopResponse/index.md) - [ModelStreamEvent](/pr-cms-3708/docs/api/typescript/ModelStreamEvent/index.md) - [ModelStreamUpdateEvent](/pr-cms-3708/docs/api/typescript/ModelStreamUpdateEvent/index.md) - [ModelThrottledError](/pr-cms-3708/docs/api/typescript/ModelThrottledError/index.md) - [MultiAgentSaveLatestStrategy](/pr-cms-3708/docs/api/typescript/MultiAgentSaveLatestStrategy/index.md) - [NullConversationManager](/pr-cms-3708/docs/api/typescript/NullConversationManager/index.md) - [OnError](/pr-cms-3708/docs/api/typescript/OnError/index.md) - [OutputFile](/pr-cms-3708/docs/api/typescript/OutputFile/index.md) - [Plugin](/pr-cms-3708/docs/api/typescript/Plugin/index.md) - [PosixShellSandbox](/pr-cms-3708/docs/api/typescript/PosixShellSandbox/index.md) - [ProactiveCompressionConfig](/pr-cms-3708/docs/api/typescript/ProactiveCompressionConfig/index.md) - [ReasoningBlock](/pr-cms-3708/docs/api/typescript/ReasoningBlock/index.md) - [ReasoningBlockData](/pr-cms-3708/docs/api/typescript/ReasoningBlockData/index.md) - [ReasoningContentDelta](/pr-cms-3708/docs/api/typescript/ReasoningContentDelta/index.md) - [RedactInputContent](/pr-cms-3708/docs/api/typescript/RedactInputContent/index.md) - [Redaction](/pr-cms-3708/docs/api/typescript/Redaction/index.md) - [RedactOutputContent](/pr-cms-3708/docs/api/typescript/RedactOutputContent/index.md) - [RetryDecision](/pr-cms-3708/docs/api/typescript/RetryDecision/index.md) - [RetryStrategy](/pr-cms-3708/docs/api/typescript/RetryStrategy/index.md) - [Role](/pr-cms-3708/docs/api/typescript/Role/index.md) - [S3Location](/pr-cms-3708/docs/api/typescript/S3Location/index.md) - [S3LocationData](/pr-cms-3708/docs/api/typescript/S3LocationData/index.md) - [Sandbox](/pr-cms-3708/docs/api/typescript/Sandbox/index.md) - [SandboxAbortError](/pr-cms-3708/docs/api/typescript/SandboxAbortError/index.md) - [SandboxPathNotFoundError](/pr-cms-3708/docs/api/typescript/SandboxPathNotFoundError/index.md) - [SandboxTimeoutError](/pr-cms-3708/docs/api/typescript/SandboxTimeoutError/index.md) - [SaveLatestStrategy](/pr-cms-3708/docs/api/typescript/SaveLatestStrategy/index.md) - [Scope](/pr-cms-3708/docs/api/typescript/Scope/index.md) - [SearchOptions](/pr-cms-3708/docs/api/typescript/SearchOptions/index.md) - [SequentialToolExecutor](/pr-cms-3708/docs/api/typescript/SequentialToolExecutor/index.md) - [SerializableMcpToolFilters](/pr-cms-3708/docs/api/typescript/SerializableMcpToolFilters/index.md) - [SessionManager](/pr-cms-3708/docs/api/typescript/SessionManager/index.md) - [SessionManagerConfig](/pr-cms-3708/docs/api/typescript/SessionManagerConfig/index.md) - [SessionStorage](/pr-cms-3708/docs/api/typescript/SessionStorage/index.md) - [SlidingWindowConversationManager](/pr-cms-3708/docs/api/typescript/SlidingWindowConversationManager/index.md) - [SlidingWindowConversationManagerConfig](/pr-cms-3708/docs/api/typescript/SlidingWindowConversationManagerConfig/index.md) - [Snapshot](/pr-cms-3708/docs/api/typescript/Snapshot/index.md) - [SNAPSHOT_SCHEMA_VERSION](/pr-cms-3708/docs/api/typescript/SNAPSHOT_SCHEMA_VERSION/index.md) - [SnapshotField](/pr-cms-3708/docs/api/typescript/SnapshotField/index.md) - [SnapshotLocation](/pr-cms-3708/docs/api/typescript/SnapshotLocation/index.md) - [SnapshotManifest](/pr-cms-3708/docs/api/typescript/SnapshotManifest/index.md) - [SnapshotPreset](/pr-cms-3708/docs/api/typescript/SnapshotPreset/index.md) - [SnapshotStorage](/pr-cms-3708/docs/api/typescript/SnapshotStorage/index.md) - [SnapshotTriggerCallback](/pr-cms-3708/docs/api/typescript/SnapshotTriggerCallback/index.md) - [SnapshotTriggerParams](/pr-cms-3708/docs/api/typescript/SnapshotTriggerParams/index.md) - [StateStore](/pr-cms-3708/docs/api/typescript/StateStore/index.md) - [StopReason](/pr-cms-3708/docs/api/typescript/StopReason/index.md) - [Storage](/pr-cms-3708/docs/api/typescript/Storage/index.md) - [StorageError](/pr-cms-3708/docs/api/typescript/StorageError/index.md) - [StreamChunk](/pr-cms-3708/docs/api/typescript/StreamChunk/index.md) - [StreamEvent](/pr-cms-3708/docs/api/typescript/StreamEvent/index.md) - [StreamOptions](/pr-cms-3708/docs/api/typescript/StreamOptions/index.md) - [StreamType](/pr-cms-3708/docs/api/typescript/StreamType/index.md) - [StructuredOutputError](/pr-cms-3708/docs/api/typescript/StructuredOutputError/index.md) - [SummarizingConversationManager](/pr-cms-3708/docs/api/typescript/SummarizingConversationManager/index.md) - [SummarizingConversationManagerConfig](/pr-cms-3708/docs/api/typescript/SummarizingConversationManagerConfig/index.md) - [Swarm](/pr-cms-3708/docs/api/typescript/Swarm/index.md) - [SystemContentBlock](/pr-cms-3708/docs/api/typescript/SystemContentBlock/index.md) - [SystemPrompt](/pr-cms-3708/docs/api/typescript/SystemPrompt/index.md) - [SystemPromptData](/pr-cms-3708/docs/api/typescript/SystemPromptData/index.md) - [TakeSnapshotOptions](/pr-cms-3708/docs/api/typescript/TakeSnapshotOptions/index.md) - [TasksConfig](/pr-cms-3708/docs/api/typescript/TasksConfig/index.md) - [TextBlock](/pr-cms-3708/docs/api/typescript/TextBlock/index.md) - [TextBlockData](/pr-cms-3708/docs/api/typescript/TextBlockData/index.md) - [TextDelta](/pr-cms-3708/docs/api/typescript/TextDelta/index.md) - [tool](/pr-cms-3708/docs/api/typescript/tool/index.md) - [Tool](/pr-cms-3708/docs/api/typescript/Tool/index.md) - [ToolCallerProxy](/pr-cms-3708/docs/api/typescript/ToolCallerProxy/index.md) - [ToolChoice](/pr-cms-3708/docs/api/typescript/ToolChoice/index.md) - [ToolContext](/pr-cms-3708/docs/api/typescript/ToolContext/index.md) - [ToolExecutorStrategy](/pr-cms-3708/docs/api/typescript/ToolExecutorStrategy/index.md) - [ToolHandle](/pr-cms-3708/docs/api/typescript/ToolHandle/index.md) - [ToolList](/pr-cms-3708/docs/api/typescript/ToolList/index.md) - [ToolNotFoundError](/pr-cms-3708/docs/api/typescript/ToolNotFoundError/index.md) - [ToolResultBlock](/pr-cms-3708/docs/api/typescript/ToolResultBlock/index.md) - [ToolResultBlockData](/pr-cms-3708/docs/api/typescript/ToolResultBlockData/index.md) - [ToolResultContent](/pr-cms-3708/docs/api/typescript/ToolResultContent/index.md) - [toolResultContentFromData](/pr-cms-3708/docs/api/typescript/toolResultContentFromData/index.md) - [ToolResultEvent](/pr-cms-3708/docs/api/typescript/ToolResultEvent/index.md) - [ToolResultStatus](/pr-cms-3708/docs/api/typescript/ToolResultStatus/index.md) - [ToolSpec](/pr-cms-3708/docs/api/typescript/ToolSpec/index.md) - [ToolStreamEvent](/pr-cms-3708/docs/api/typescript/ToolStreamEvent/index.md) - [ToolStreamEventData](/pr-cms-3708/docs/api/typescript/ToolStreamEventData/index.md) - [ToolStreamGenerator](/pr-cms-3708/docs/api/typescript/ToolStreamGenerator/index.md) - [ToolStreamUpdateEvent](/pr-cms-3708/docs/api/typescript/ToolStreamUpdateEvent/index.md) - [ToolUse](/pr-cms-3708/docs/api/typescript/ToolUse/index.md) - [ToolUseBlock](/pr-cms-3708/docs/api/typescript/ToolUseBlock/index.md) - [ToolUseBlockData](/pr-cms-3708/docs/api/typescript/ToolUseBlockData/index.md) - [ToolUseData](/pr-cms-3708/docs/api/typescript/ToolUseData/index.md) - [ToolUseInputDelta](/pr-cms-3708/docs/api/typescript/ToolUseInputDelta/index.md) - [ToolUseStart](/pr-cms-3708/docs/api/typescript/ToolUseStart/index.md) - [ToolValidationError](/pr-cms-3708/docs/api/typescript/ToolValidationError/index.md) - [Usage](/pr-cms-3708/docs/api/typescript/Usage/index.md) - [VideoBlock](/pr-cms-3708/docs/api/typescript/VideoBlock/index.md) - [VideoBlockData](/pr-cms-3708/docs/api/typescript/VideoBlockData/index.md) - [VideoFormat](/pr-cms-3708/docs/api/typescript/VideoFormat/index.md) - [VideoSource](/pr-cms-3708/docs/api/typescript/VideoSource/index.md) - [VideoSourceData](/pr-cms-3708/docs/api/typescript/VideoSourceData/index.md) - [ZodTool](/pr-cms-3708/docs/api/typescript/ZodTool/index.md) - [ZodToolConfig](/pr-cms-3708/docs/api/typescript/ZodToolConfig/index.md) ## Blog - [Introducing Harness Optimizer: Automatically optimize your agent harness](/pr-cms-3708/blog/introducing-harness-optimizer/index.md): Harness Optimizer is an open-source library that optimizes the context around your LLM agent (system prompt, tool docs, skills) the way you'd train a model: rollouts in, rewards out, parameters updated. - [Reduced cost, better isolation, and more resilience: Strands Agents evolves next-gen capabilities](/pr-cms-3708/blog/reduced-cost-better-isolation-more-resilience/index.md): Strands Agents ships context management that cuts costs in half, Strands Shell for sandboxed agent execution, and chaos testing and red teaming in Strands Evals 1.0. - [Inside Agentic Football Cup: 10 Strands Agents, 1 Second to Decide](/pr-cms-3708/blog/inside-agentic-football-cup/index.md): How we use Strands Agents and the model-driven approach to run 5v5 autonomous football matches inside a 4-hour developer workshop, with a hard latency contract, structured outputs, and multi-agent coordination. - [Multimodal evaluators: MLLM-as-a-judge for image-to-text tasks in Strands Evals](/pr-cms-3708/blog/multimodal-evaluators-mllm-as-a-judge-image-to-text-strands-evals/index.md): Announcing four new MLLM-as-a-Judge evaluators for image-to-text tasks in Strands Evals: Overall Quality, Correctness, Faithfulness, and Instruction Following — automated, image-grounded scoring with reasoning. - [What We Learned from One Year of Building Production Agents](/pr-cms-3708/blog/what-we-learned-from-one-year-of-building-production-agents/index.md): Strands Agents turned one year old. Here are the key lessons our engineers learned after open sourcing this framework and hitting 25 million downloads. - [Introducing Strands Agents TypeScript 1.0: Build Production Agents in TypeScript](/pr-cms-3708/blog/strands-agents-typescript-v1/index.md): Version 1.0 of the Strands Agents TypeScript SDK is here. Build type-safe AI agents with full model provider support, custom tools, plugins, and multi-agent orchestration in Node.js and the browser. - [The Strands Agents Community Has a New Home](/pr-cms-3708/blog/strands-agents-discord-community/index.md): The Strands Agents Discord server is live. A place for builders to get real-time help, share what they've built, and connect with the Strands team. - [ToolSimulator: scalable tool testing for AI agents](/pr-cms-3708/blog/toolsimulator-scalable-tool-testing-ai-agents/index.md): ToolSimulator is an LLM-powered framework within Strands Evals that enables safe, scalable agent testing by using simulated tool responses instead of risky live API calls. - [Strands Agents TypeScript SDK: Build AI Agents in TypeScript](/pr-cms-3708/blog/strands-agents-typescript-sdk/index.md): The Strands Agents TypeScript SDK brings the model-driven approach to the TypeScript ecosystem. Build type-safe AI agents that run in Node.js and the browser. - [Simulate realistic users to evaluate multi-turn AI agents in Strands Evals](/pr-cms-3708/blog/simulate-realistic-users-multi-turn-agents-strands-evals/index.md): ActorSimulator in the Strands Evals SDK enables teams to test conversational agents through realistic, goal-driven simulated users rather than relying on static test cases or manual testing. - [Evaluating AI agents for production: A practical guide to Strands Evals](/pr-cms-3708/blog/evaluating-ai-agents-practical-guide-strands-evals/index.md): Learn how to systematically evaluate AI agents using Strands Evals, covering core concepts like cases, experiments, evaluators, multi-turn simulation capabilities, and practical integration patterns for production deployment. - [How Steering Hooks Achieved 100% Agent Accuracy Where Prompts and Workflows Failed](/pr-cms-3708/blog/steering-accuracy-beats-prompts-workflows/index.md): Steering hooks achieved a 100% accuracy pass rate across 600 evaluation runs, compared to 82.5% for simple prompt-based instructions and 80.8% for graph-based workflows. - [Runtime Guardrails for Strands Agents with Agent Control](/pr-cms-3708/blog/strands-agents-with-agent-control/index.md): Define what your Strands agents can and can't do at runtime, without changing a line of agent code. - [Introducing Strands Labs: Get hands-on today with state-of-the-art, experimental approaches to agentic development](/pr-cms-3708/blog/introducing-strands-labs/index.md): Strands Labs is a new GitHub organization designed to give developers the ability to get hands-on with experimental, state-of-the-art approaches to agentic AI development. - [Building intelligent physical AI: From edge to cloud with Strands Agents, Bedrock AgentCore, Claude 4.5, NVIDIA GR00T, and Hugging Face LeRobot](/pr-cms-3708/blog/strands-physical-ai/index.md): Learn how to build physical AI systems that combine edge computing with cloud intelligence using Strands Agents, NVIDIA GR00T, and Hugging Face LeRobot. - [Introducing Strands Agent SOPs – Natural Language Workflows for AI Agents](/pr-cms-3708/blog/introducing-strands-agent-sops/index.md): Agent SOPs are a standardized markdown format for defining AI agent workflows in natural language that balances flexibility and control. - [Strands Agents and the Model-Driven Approach](/pr-cms-3708/blog/strands-agents-model-driven-approach/index.md): Learn how the model-driven approach in Strands Agents SDK lets modern LLMs drive their own behavior, making agents more resilient and adaptable. - [Introducing Strands Agents 1.0: Production-Ready Multi-Agent Orchestration Made Simple](/pr-cms-3708/blog/strands-agents-1-0/index.md): Strands Agents 1.0 brings multi-agent patterns, A2A protocol support, and production-ready features to the open source SDK. - [Using Strands Agents with Claude 4 Interleaved Thinking](/pr-cms-3708/blog/interleaved-thinking-claude-4/index.md): Learn how to use Claude 4's interleaved thinking beta feature with Strands Agents for faster, more fluid reasoning and reduced tool calls. - [Introducing Strands Agents, an Open Source AI Agents SDK](/pr-cms-3708/blog/introducing-strands-agents/index.md): Strands Agents is an open source SDK that takes a model-driven approach to building and running AI agents in just a few lines of code. ## Changelog - [Changelog](/pr-cms-3708/changelog/index.md): All releases across the Harness and Evals SDKs - Harness Python - [v1.51.0](/pr-cms-3708/changelog/harness/python-v1.51.0/index.md): Harness Python v1.51.0 (2026-08-07) - [v1.50.2](/pr-cms-3708/changelog/harness/python-v1.50.2/index.md): Harness Python v1.50.2 (2026-07-27) - [v1.50.1](/pr-cms-3708/changelog/harness/python-v1.50.1/index.md): Harness Python v1.50.1 (2026-07-24) - [v1.50.0](/pr-cms-3708/changelog/harness/python-v1.50.0/index.md): Harness Python v1.50.0 (2026-07-24) - [v1.48.0](/pr-cms-3708/changelog/harness/python-v1.48.0/index.md): Harness Python v1.48.0 (2026-07-17) - [v1.47.0](/pr-cms-3708/changelog/harness/python-v1.47.0/index.md): Harness Python v1.47.0 (2026-07-10) - [v1.46.0](/pr-cms-3708/changelog/harness/python-v1.46.0/index.md): Harness Python v1.46.0 (2026-07-07) - [v1.45.0](/pr-cms-3708/changelog/harness/python-v1.45.0/index.md): Harness Python v1.45.0 (2026-06-25) - [v1.44.0](/pr-cms-3708/changelog/harness/python-v1.44.0/index.md): Harness Python v1.44.0 (2026-06-16) - [v1.43.0](/pr-cms-3708/changelog/harness/python-v1.43.0/index.md): Harness Python v1.43.0 (2026-06-12) - [v1.42.0](/pr-cms-3708/changelog/harness/python-v1.42.0/index.md): Harness Python v1.42.0 (2026-06-01) - [v1.41.0](/pr-cms-3708/changelog/harness/python-v1.41.0/index.md): Harness Python v1.41.0 (2026-05-21) - [v1.40.0](/pr-cms-3708/changelog/harness/python-v1.40.0/index.md): Harness Python v1.40.0 (2026-05-14) - [v1.39.0](/pr-cms-3708/changelog/harness/python-v1.39.0/index.md): Harness Python v1.39.0 (2026-05-08) - [v1.38.0](/pr-cms-3708/changelog/harness/python-v1.38.0/index.md): Harness Python v1.38.0 (2026-04-30) - [v1.37.0](/pr-cms-3708/changelog/harness/python-v1.37.0/index.md): Harness Python v1.37.0 (2026-04-22) - [v1.36.0](/pr-cms-3708/changelog/harness/python-v1.36.0/index.md): Harness Python v1.36.0 (2026-04-17) - [v1.35.0](/pr-cms-3708/changelog/harness/python-v1.35.0/index.md): Harness Python v1.35.0 (2026-04-08) - [v1.34.1](/pr-cms-3708/changelog/harness/python-v1.34.1/index.md): Harness Python v1.34.1 (2026-04-01) - [v1.34.0](/pr-cms-3708/changelog/harness/python-v1.34.0/index.md): Harness Python v1.34.0 (2026-03-31) - [v1.33.0](/pr-cms-3708/changelog/harness/python-v1.33.0/index.md): Harness Python v1.33.0 (2026-03-24) - [v1.32.0](/pr-cms-3708/changelog/harness/python-v1.32.0/index.md): Harness Python v1.32.0 (2026-03-20) - [v1.31.0](/pr-cms-3708/changelog/harness/python-v1.31.0/index.md): Harness Python v1.31.0 (2026-03-19) - [v1.30.0](/pr-cms-3708/changelog/harness/python-v1.30.0/index.md): Harness Python v1.30.0 (2026-03-11) - [v1.29.0](/pr-cms-3708/changelog/harness/python-v1.29.0/index.md): Harness Python v1.29.0 (2026-03-04) - [v1.28.0](/pr-cms-3708/changelog/harness/python-v1.28.0/index.md): Harness Python v1.28.0 (2026-02-25) - [v1.27.0](/pr-cms-3708/changelog/harness/python-v1.27.0/index.md): Harness Python v1.27.0 (2026-02-19) - [v1.26.0](/pr-cms-3708/changelog/harness/python-v1.26.0/index.md): Harness Python v1.26.0 (2026-02-11) - [v1.25.0](/pr-cms-3708/changelog/harness/python-v1.25.0/index.md): Harness Python v1.25.0 (2026-02-05) - [v1.24.0](/pr-cms-3708/changelog/harness/python-v1.24.0/index.md): Harness Python v1.24.0 (2026-01-29) - [v1.23.0](/pr-cms-3708/changelog/harness/python-v1.23.0/index.md): Harness Python v1.23.0 (2026-01-21) - [v1.22.0](/pr-cms-3708/changelog/harness/python-v1.22.0/index.md): Harness Python v1.22.0 (2026-01-13) - [v1.21.0](/pr-cms-3708/changelog/harness/python-v1.21.0/index.md): Harness Python v1.21.0 (2026-01-02) - [v1.20.0](/pr-cms-3708/changelog/harness/python-v1.20.0/index.md): Harness Python v1.20.0 (2025-12-15) - [v1.19.0](/pr-cms-3708/changelog/harness/python-v1.19.0/index.md): Harness Python v1.19.0 (2025-12-03) - [v1.18.0](/pr-cms-3708/changelog/harness/python-v1.18.0/index.md): Harness Python v1.18.0 (2025-11-21) - [v1.17.0](/pr-cms-3708/changelog/harness/python-v1.17.0/index.md): Harness Python v1.17.0 (2025-11-18) - [v1.16.0](/pr-cms-3708/changelog/harness/python-v1.16.0/index.md): Harness Python v1.16.0 (2025-11-12) - [v1.15.0](/pr-cms-3708/changelog/harness/python-v1.15.0/index.md): Harness Python v1.15.0 (2025-11-04) - [v1.14.0](/pr-cms-3708/changelog/harness/python-v1.14.0/index.md): Harness Python v1.14.0 (2025-10-29) - [v1.13.0](/pr-cms-3708/changelog/harness/python-v1.13.0/index.md): Harness Python v1.13.0 (2025-10-17) - [v1.12.0](/pr-cms-3708/changelog/harness/python-v1.12.0/index.md): Harness Python v1.12.0 (2025-10-10) - [v1.11.0](/pr-cms-3708/changelog/harness/python-v1.11.0/index.md): Harness Python v1.11.0 (2025-10-08) - [v1.10.0](/pr-cms-3708/changelog/harness/python-v1.10.0/index.md): Harness Python v1.10.0 (2025-09-29) - [v1.9.1](/pr-cms-3708/changelog/harness/python-v1.9.1/index.md): Harness Python v1.9.1 (2025-09-19) - [v1.9.0](/pr-cms-3708/changelog/harness/python-v1.9.0/index.md): Harness Python v1.9.0 (2025-09-17) - [v1.8.0](/pr-cms-3708/changelog/harness/python-v1.8.0/index.md): Harness Python v1.8.0 (2025-09-10) - [v1.7.1](/pr-cms-3708/changelog/harness/python-v1.7.1/index.md): Harness Python v1.7.1 (2025-09-05) - [v1.7.0](/pr-cms-3708/changelog/harness/python-v1.7.0/index.md): Harness Python v1.7.0 (2025-09-02) - [v1.6.0](/pr-cms-3708/changelog/harness/python-v1.6.0/index.md): Harness Python v1.6.0 (2025-08-26) - [v1.5.0](/pr-cms-3708/changelog/harness/python-v1.5.0/index.md): Harness Python v1.5.0 (2025-08-19) - [v1.4.0](/pr-cms-3708/changelog/harness/python-v1.4.0/index.md): Harness Python v1.4.0 (2025-08-08) - [v1.3.0](/pr-cms-3708/changelog/harness/python-v1.3.0/index.md): Harness Python v1.3.0 (2025-08-04) - [v1.2.0](/pr-cms-3708/changelog/harness/python-v1.2.0/index.md): Harness Python v1.2.0 (2025-07-30) - [v1.1.0](/pr-cms-3708/changelog/harness/python-v1.1.0/index.md): Harness Python v1.1.0 (2025-07-24) - [v1.0.1](/pr-cms-3708/changelog/harness/python-v1.0.1/index.md): Harness Python v1.0.1 (2025-07-18) - [v1.0.0](/pr-cms-3708/changelog/harness/python-v1.0.0/index.md): Harness Python v1.0.0 (2025-07-15) - [v0.3.0](/pr-cms-3708/changelog/harness/python-v0.3.0/index.md): Harness Python v0.3.0 (2025-07-11) - [v0.2.1](/pr-cms-3708/changelog/harness/python-v0.2.1/index.md): Harness Python v0.2.1 (2025-07-04) - [v0.2.0](/pr-cms-3708/changelog/harness/python-v0.2.0/index.md): Harness Python v0.2.0 (2025-07-02) - [v0.1.9](/pr-cms-3708/changelog/harness/python-v0.1.9/index.md): Harness Python v0.1.9 (2025-06-24) - [v0.1.8](/pr-cms-3708/changelog/harness/python-v0.1.8/index.md): Harness Python v0.1.8 (2025-06-18) - [v0.1.7](/pr-cms-3708/changelog/harness/python-v0.1.7/index.md): Harness Python v0.1.7 (2025-06-09) - [v0.1.6](/pr-cms-3708/changelog/harness/python-v0.1.6/index.md): Harness Python v0.1.6 (2025-05-30) - [v0.1.5](/pr-cms-3708/changelog/harness/python-v0.1.5/index.md): Harness Python v0.1.5 (2025-05-26) - [v0.1.4](/pr-cms-3708/changelog/harness/python-v0.1.4/index.md): Harness Python v0.1.4 (2025-05-23) - [v0.1.3](/pr-cms-3708/changelog/harness/python-v0.1.3/index.md): Harness Python v0.1.3 (2025-05-21) - [v0.1.2](/pr-cms-3708/changelog/harness/python-v0.1.2/index.md): Harness Python v0.1.2 (2025-05-18) - [v0.1.1](/pr-cms-3708/changelog/harness/python-v0.1.1/index.md): Harness Python v0.1.1 (2025-05-17) - [v0.1.0](/pr-cms-3708/changelog/harness/python-v0.1.0/index.md): Harness Python v0.1.0 (2025-05-16) - Harness TypeScript - [v1.12.0](/pr-cms-3708/changelog/harness/typescript-v1.12.0/index.md): Harness TypeScript v1.12.0 (2026-08-07) - [v1.11.2](/pr-cms-3708/changelog/harness/typescript-v1.11.2/index.md): Harness TypeScript v1.11.2 (2026-07-27) - [v1.11.1](/pr-cms-3708/changelog/harness/typescript-v1.11.1/index.md): Harness TypeScript v1.11.1 (2026-07-24) - [v1.11.0](/pr-cms-3708/changelog/harness/typescript-v1.11.0/index.md): Harness TypeScript v1.11.0 (2026-07-24) - [v1.10.0](/pr-cms-3708/changelog/harness/typescript-v1.10.0/index.md): Harness TypeScript v1.10.0 (2026-07-17) - [v1.9.0](/pr-cms-3708/changelog/harness/typescript-v1.9.0/index.md): Harness TypeScript v1.9.0 (2026-07-10) - [v1.8.0](/pr-cms-3708/changelog/harness/typescript-v1.8.0/index.md): Harness TypeScript v1.8.0 (2026-07-08) - [v1.7.0](/pr-cms-3708/changelog/harness/typescript-v1.7.0/index.md): Harness TypeScript v1.7.0 (2026-06-25) - [v1.6.0](/pr-cms-3708/changelog/harness/typescript-v1.6.0/index.md): Harness TypeScript v1.6.0 (2026-06-16) - [v1.5.0](/pr-cms-3708/changelog/harness/typescript-v1.5.0/index.md): Harness TypeScript v1.5.0 (2026-06-12) - [v1.4.0](/pr-cms-3708/changelog/harness/typescript-v1.4.0/index.md): Harness TypeScript v1.4.0 (2026-06-01) - [v1.3.0](/pr-cms-3708/changelog/harness/typescript-v1.3.0/index.md): Harness TypeScript v1.3.0 (2026-05-21) - [v1.2.0](/pr-cms-3708/changelog/harness/typescript-v1.2.0/index.md): Harness TypeScript v1.2.0 (2026-05-14) - [v1.1.0](/pr-cms-3708/changelog/harness/typescript-v1.1.0/index.md): Harness TypeScript v1.1.0 (2026-05-08) - [v1.0.0](/pr-cms-3708/changelog/harness/typescript-v1.0.0/index.md): Harness TypeScript v1.0.0 (2026-04-30) - [v1.0.0-rc.5](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.5/index.md): Harness TypeScript v1.0.0-rc.5 (2026-04-22) - [v1.0.0-rc.4](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.4/index.md): Harness TypeScript v1.0.0-rc.4 (2026-04-17) - [v1.0.0-rc.3](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.3/index.md): Harness TypeScript v1.0.0-rc.3 (2026-04-08) - [v1.0.0-rc.2](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.2/index.md): Harness TypeScript v1.0.0-rc.2 (2026-03-31) - [v1.0.0-rc.1](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.1/index.md): Harness TypeScript v1.0.0-rc.1 (2026-03-26) - [v1.0.0-rc.0](/pr-cms-3708/changelog/harness/typescript-v1.0.0-rc.0/index.md): Harness TypeScript v1.0.0-rc.0 (2026-03-26) - [v0.7.0](/pr-cms-3708/changelog/harness/typescript-v0.7.0/index.md): Harness TypeScript v0.7.0 (2026-03-19) - [v0.6.0](/pr-cms-3708/changelog/harness/typescript-v0.6.0/index.md): Harness TypeScript v0.6.0 (2026-03-11) - [v0.5.0](/pr-cms-3708/changelog/harness/typescript-v0.5.0/index.md): Harness TypeScript v0.5.0 (2026-03-04) - [v0.4.0](/pr-cms-3708/changelog/harness/typescript-v0.4.0/index.md): Harness TypeScript v0.4.0 (2026-02-25) - [v0.3.0](/pr-cms-3708/changelog/harness/typescript-v0.3.0/index.md): Harness TypeScript v0.3.0 (2026-02-19) - [v0.2.2](/pr-cms-3708/changelog/harness/typescript-v0.2.2/index.md): Harness TypeScript v0.2.2 (2026-02-11) - [v0.2.1](/pr-cms-3708/changelog/harness/typescript-v0.2.1/index.md): Harness TypeScript v0.2.1 (2026-02-05) - [v0.2.0](/pr-cms-3708/changelog/harness/typescript-v0.2.0/index.md): Harness TypeScript v0.2.0 (2026-01-29) - [v0.1.6](/pr-cms-3708/changelog/harness/typescript-v0.1.6/index.md): Harness TypeScript v0.1.6 (2026-01-21) - [v0.1.5](/pr-cms-3708/changelog/harness/typescript-v0.1.5/index.md): Harness TypeScript v0.1.5 (2026-01-13) - [v0.1.4](/pr-cms-3708/changelog/harness/typescript-v0.1.4/index.md): Harness TypeScript v0.1.4 (2026-01-02) - [v0.1.3](/pr-cms-3708/changelog/harness/typescript-v0.1.3/index.md): Harness TypeScript v0.1.3 (2025-12-15) - [v0.1.2](/pr-cms-3708/changelog/harness/typescript-v0.1.2/index.md): Harness TypeScript v0.1.2 (2025-12-04) - [v0.1.1](/pr-cms-3708/changelog/harness/typescript-v0.1.1/index.md): Harness TypeScript v0.1.1 (2025-12-03) - [v0.1.0](/pr-cms-3708/changelog/harness/typescript-v0.1.0/index.md): Harness TypeScript v0.1.0 (2025-12-03) - Evals - [v1.1.0](/pr-cms-3708/changelog/evals/v1.1.0/index.md): Evals v1.1.0 (2026-08-07) - [v1.0.3](/pr-cms-3708/changelog/evals/v1.0.3/index.md): Evals v1.0.3 (2026-07-23) - [v1.0.2](/pr-cms-3708/changelog/evals/v1.0.2/index.md): Evals v1.0.2 (2026-07-09) - [v1.0.1](/pr-cms-3708/changelog/evals/v1.0.1/index.md): Evals v1.0.1 (2026-06-25) - [v1.0.0](/pr-cms-3708/changelog/evals/v1.0.0/index.md): Evals v1.0.0 (2026-06-16) - [v0.3.0](/pr-cms-3708/changelog/evals/v0.3.0/index.md): Evals v0.3.0 (2026-06-12) - [v0.2.1](/pr-cms-3708/changelog/evals/v0.2.1/index.md): Evals v0.2.1 (2026-05-29) - [v0.2.0](/pr-cms-3708/changelog/evals/v0.2.0/index.md): Evals v0.2.0 (2026-05-14) - [v0.1.17](/pr-cms-3708/changelog/evals/v0.1.17/index.md): Evals v0.1.17 (2026-05-08) - [v0.1.16](/pr-cms-3708/changelog/evals/v0.1.16/index.md): Evals v0.1.16 (2026-04-30) - [v0.1.15](/pr-cms-3708/changelog/evals/v0.1.15/index.md): Evals v0.1.15 (2026-04-17) - [v0.1.14](/pr-cms-3708/changelog/evals/v0.1.14/index.md): Evals v0.1.14 (2026-04-08) - [v0.1.13](/pr-cms-3708/changelog/evals/v0.1.13/index.md): Evals v0.1.13 (2026-03-31) - [v0.1.12](/pr-cms-3708/changelog/evals/v0.1.12/index.md): Evals v0.1.12 (2026-03-26) - [v0.1.11](/pr-cms-3708/changelog/evals/v0.1.11/index.md): Evals v0.1.11 (2026-03-19) - [v0.1.10](/pr-cms-3708/changelog/evals/v0.1.10/index.md): Evals v0.1.10 (2026-03-11) - [v0.1.9](/pr-cms-3708/changelog/evals/v0.1.9/index.md): Evals v0.1.9 (2026-03-04) - [v0.1.8](/pr-cms-3708/changelog/evals/v0.1.8/index.md): Evals v0.1.8 (2026-02-25) - [v0.1.7](/pr-cms-3708/changelog/evals/v0.1.7/index.md): Evals v0.1.7 (2026-02-19) - [v0.1.6](/pr-cms-3708/changelog/evals/v0.1.6/index.md): Evals v0.1.6 (2026-02-11) - [v0.1.5](/pr-cms-3708/changelog/evals/v0.1.5/index.md): Evals v0.1.5 (2026-02-05) - [v0.1.4](/pr-cms-3708/changelog/evals/v0.1.4/index.md): Evals v0.1.4 (2026-01-29) - [v0.1.3](/pr-cms-3708/changelog/evals/v0.1.3/index.md): Evals v0.1.3 (2026-01-21) - [v0.1.2](/pr-cms-3708/changelog/evals/v0.1.2/index.md): Evals v0.1.2 (2026-01-13) - [v0.1.1](/pr-cms-3708/changelog/evals/v0.1.1/index.md): Evals v0.1.1 (2025-12-15) - [v0.1.0](/pr-cms-3708/changelog/evals/v0.1.0/index.md): Evals v0.1.0 (2025-12-03)