Skip to content

v1.17.0

Latest

Choose a tag to compare

@dbschmigelski dbschmigelski released this 18 Nov 19:09
· 2 commits to main since this release
95ac650

Strands Agents SDK v1.17.0 Release Notes

Features

Configurable Timeout for MCP Agent Tools - PR#1184

You can now set custom timeout values when creating MCP (Model Context Protocol) agent tools, providing better control over tool execution time limits and improving reliability when working with external MCP servers.

from datetime import timedelta
from strands.tools.mcp import MCPAgentTool

# Create MCP tool with custom 30-second timeout
mcp_tool = MCPAgentTool(
    ...,
    timeout=timedelta(seconds=30)
)

agent = Agent(tools=[mcp_tool])

This feature is especially useful when working with MCP servers that may have varying response times, allowing you to fine-tune timeout behavior for different use cases.


Bug Fixes

  • Swarm Handoff Timing - PR#1147
    Fixed swarm handoff behavior to only switch to the handoff node after the current node completes execution. Previously, the switch occurred mid-execution, causing incorrect event emissions and invalid swarm state when tools were interrupted concurrently with handoff tools.

  • LiteLLM Stream Parameter Validation - PR#1183
    Added validation for the stream parameter in LiteLLM to prevent TypeError when stream=False is provided. The SDK now properly handles both streaming and non-streaming responses with clear error messaging.

  • Optional MetadataEvent Fields - PR#1187
    Fixed handling of MetadataEvents when custom model implementations omit optional usage or metrics fields. The SDK now provides sensible defaults, preventing KeyError exceptions and enabling greater flexibility for custom model providers.

  • A2A Protocol File Data Decoding - PR#1195
    Fixed A2A (Agent-to-Agent) executor to properly base64 decode file bytes from A2A messages before passing to Strands agents. Previously, agents were receiving base64-encoded strings instead of actual binary file content.


All changes

  • feat: allow setting a timeout when creating MCPAgentTool by @AnirudhKonduru in #1184
  • fix(litellm): add validation for stream parameter in LiteLLM by @dbschmigelski in #1183
  • fix(event_loop): handle MetadataEvents without optional usage and metrics by @dbschmigelski in #1187
  • swarm - switch to handoff node only after current node stops by @pgrayy in #1147
  • fix(a2a): base64 decode byte data before placing in ContentBlocks by @dbschmigelski in #1195

New Contributors

Full Changelog: v1.16.0...v1.17.0