Skip to content

Release history

harness-sdk releases

A model-driven approach to building AI agents in just a few lines of code.

All releases

55 shown

No immediate action
python-wasm/v0.0.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
typescript/v1.4.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
python/v1.42.0 Mixed

Tests, S3SessionManager, gemini cache tokens, MetricsClient

No immediate action
v1.41.0 Mixed

MultiAgentPlugin + Starlette bump + Bedrock TTL

No immediate action
v1.40.0 Mixed

Context compression + Ollama metric update

No immediate action
v1.39.0 Mixed

OpenAI AWS profile + A2A lifecycle

No immediate action
v1.38.0 New feature

mcp, cache, litellm, bedrock, ollama updates

No immediate action
v1.37.0 Mixed

Trim fallback + checkpoint + context limit + MCP fix

No immediate action
v1.36.0 Mixed

Hooks, telemetry fixes, agent snapshots

No immediate action
v1.35.0 Mixed

Bedrock tiers + bug fixes

No immediate action
v1.34.1 Bug fix

Span end-time fix + env var isolation

No immediate action
v1.34.0 Mixed

AgentAsTool + auto‑wrap + stateful models

Upgrade now
v1.33.0 Security relevant
Dependencies

Pin litellm<=1.82.6

No immediate action
v1.32.0 Bug fix

Event‑loop metric fixes

No immediate action
v1.31.0 Mixed

A2A context + S3Session fix + Graph edge evaluation

No immediate action
v1.30.0 Mixed

Anthropic cache + session dirty flag + summary fix

No immediate action
v1.29.0 Mixed

LangFuse telemetry + conversation & plugin improvements

No immediate action
v1.28.0 Mixed

Hooks changes + fixes + refactor

No immediate action
v1.27.0 Mixed

A2AAgent fix + concurrent mode

No immediate action
v1.26.0 Mixed

MCP tasks + Artifact fix + CI bump

No immediate action
v1.25.0 Breaking risk

A2AAgent, Graph workflows, Interrupts, S3 media, Structured output

No immediate action
v1.24.0 Mixed

CI workflow + chore refactor + hook retries

No immediate action
v1.23.0 Mixed

Retry strategy, steering, BeforeInvocationEvent, Nova Sonic 2, graph interrupts

Upgrade now
v1.22.0 Breaking risk
Breaking upgrade

MCP ops + Bedrock opt + LiteLLM fix + bugfixes

No immediate action
v1.21.0 Breaking risk

OpenAI/Gemini clients, Gemini tools, retry hooks, citation support

No immediate action
v1.20.0 Mixed

Interrupts, AgentResult in hooks, key bug fixes

No immediate action
v1.19.0 Mixed

Bidirectional Agents + Steering fixes

Review required
v1.18.0 Mixed

tool_loader security + swarm + MCP timeout fix

No immediate action
v1.17.0 Mixed

Timeout config + swarm handoff + LiteLLM fix

No immediate action
v1.16.0 Mixed

Async hooks + context + telemetry + bug fixes

Review required
v1.15.0 Mixed
Auth

Caching, sessions, streaming, bugfixes

No immediate action
v1.14.0 New feature

Structured output, interrupts, MCP config

No immediate action
v1.13.0 Mixed

invocation_state, telemetry updates, ToolContext fix

No immediate action
v1.12.0 Bug fix

additional_args fix

No immediate action
v1.11.0 Breaking risk

Telemetry update + fixes + concurrent reading

No immediate action
v1.10.0 Mixed

outputSchema + Gemini + hot reload

No immediate action
v1.9.1 Mixed

Decouple blocks, fix callbacks, optional tool_choice

No immediate action
v1.9.0 Mixed

OpenTelemetry metrics + Swarm config + MCP fixes

No immediate action
v1.8.0 Mixed

tool_spec timing + graph + models

No immediate action
v1.7.1 Mixed

ToolStream fixes + test & doc updates

No immediate action
v1.7.0 Mixed

VPC endpoint support + stop‑reason fix

Review required
v1.6.0 Mixed
RCE / SSRF

Agent fixes + A2A parts + path hardening

Review required
v1.5.0 Mixed
Auth

Server timeout + cyclic graphs + path injection fix

No immediate action
v1.4.0 Mixed

MCP tracing + max_tokens type change + a2a config

Upgrade now
v1.3.0 Maintenance
Dependencies

Routine maintenance and dependency updates.

No immediate action
v1.2.0 New feature

SageMaker Model Provider

No immediate action
v1.1.0 Mixed

a2a updates, CI key exposure, agent trace fix

No immediate action
v1.0.1 Mixed

Parallel execution + agent fixes + pyproject update

No immediate action
v1.0.0 Breaking risk

Pagination + Swarm + Session fix

v0.3.0 Breaking risk
⚠ Upgrade required
  • Update custom model provider implementations to be asynchronous and implement the new single stream method in strands.models.
  • Adjust Agent class usage: remove max_parallel_tools, explicitly set load_tools_from_directory=True if auto‑loading tools is desired.
  • Replace any direct imports or calls to event_loop_cycle with appropriate internal handling; avoid invoking it directly.
Breaking changes
  • OpenAI and LiteLLM model providers no longer accept base64 encoded images; they now handle encoding automatically.
  • Model provider APIs are now asynchronous and require only a single stream method implementation, moved to strands.models subpackage.
  • All subclassable classes/protocols now include an additional kwargs argument for forward compatibility.
Notable features
  • Core system of typed hooks & callbacks implemented with before/after tool call hooks.
  • Async model stream interface added for OpenAI, Mistral, Ollama, Anthropic, Bedrock, LiteLLM, Cohere.
  • Graph multi‑agent orchestrator introduced for multi‑agent scenarios.
Full changelog

Breaking Changes

  • Model Providers:

    • OpenAI and LiteLLM model providers no longer accept base64 encoded images. These providers will now handle base64 encoding of image bytes automatically. See issue #252.
    • Model providers now implement asynchronous functions. Custom model providers must be updated accordingly. See PR#306.
    • The API interface for model providers has been simplified to require only a single stream method implementation. See PR#400.
    • Model provider API interfaces have been relocated to the strands.models subpackage for improved organization. See PR#409.
  • Other breaking changes:

    • All classes or protocols requiring subclassing or implementation now include an additional kwargs argument for forward compatibility. See PR#413.
    • The max_parallel_tools parameter has been removed from the Agent class. Tools are now automatically invoked on thread-pools. See PR#391.
    • The load_tools_from_directory parameter of the Agent class now defaults to False meaning. Tools are no longer automatically loaded from the tools directory. To restore the old behavior, explicitly set this parameter to True . See PR#419.
    • The event_loop_cycle function is no longer available as a top-level import from strands, reflecting its internal nature. Direct event loop invocation is not recommended. See PR#415.
    • Automatic removal of dangling tool messages during Agent lifecycle has been discontinued to support future features. See PR#418.
    • AgentTool now implements a stream API instead of invoke and requires asynchronous implementation. See PR#345.

What's Changed

  • feat: Implement the core system of typed hooks & callbacks by @zastrowm in https://github.com/strands-agents/sdk-python/pull/304
  • iterative tool handler process by @pgrayy in https://github.com/strands-agents/sdk-python/pull/340
  • remove thread pool wrapper by @pgrayy in https://github.com/strands-agents/sdk-python/pull/339
  • chore: updated scope name, enable setting up meter by @poshinchen in https://github.com/strands-agents/sdk-python/pull/331
  • async model stream interface by @pgrayy in https://github.com/strands-agents/sdk-python/pull/306
  • chore: allow custom agent name by @poshinchen in https://github.com/strands-agents/sdk-python/pull/347
  • Extract hook based tests to a separate file by @zastrowm in https://github.com/strands-agents/sdk-python/pull/349
  • tools - parallel execution - sleep by @pgrayy in https://github.com/strands-agents/sdk-python/pull/355
  • Refactor event loop to use Agent object rather than individual parameters by @zastrowm in https://github.com/strands-agents/sdk-python/pull/359
  • models - openai - async client by @pgrayy in https://github.com/strands-agents/sdk-python/pull/353
  • models - openai - do not accept b64 images by @pgrayy in https://github.com/strands-agents/sdk-python/pull/368
  • iterative tools by @pgrayy in https://github.com/strands-agents/sdk-python/pull/345
  • a2a streaming by @jer96 in https://github.com/strands-agents/sdk-python/pull/366
  • docs(multiagent): Update A2AServer docstrings by @signoredems in https://github.com/strands-agents/sdk-python/pull/377
  • refactor(a2a): move a2a test module by @jer96 in https://github.com/strands-agents/sdk-python/pull/379
  • models - mistral - async by @pgrayy in https://github.com/strands-agents/sdk-python/pull/375
  • models - ollama - async by @pgrayy in https://github.com/strands-agents/sdk-python/pull/373
  • models - anthropic - async by @pgrayy in https://github.com/strands-agents/sdk-python/pull/371
  • feat: Add hooks for before/after tool calls + allow hooks to update values by @zastrowm in https://github.com/strands-agents/sdk-python/pull/352
  • agent tool - remove invoke by @pgrayy in https://github.com/strands-agents/sdk-python/pull/369
  • fix: handle multiple tool calls in Mistral streaming responses by @siddhantwaghjale in https://github.com/strands-agents/sdk-python/pull/384
  • fix: add-threading-instrumentation by @poshinchen in https://github.com/strands-agents/sdk-python/pull/394
  • Add cohere client by @billytrend-cohere in https://github.com/strands-agents/sdk-python/pull/236
  • deps(a2a): upgrade a2a with db support by @jer96 in https://github.com/strands-agents/sdk-python/pull/395
  • Writer model provider by @yanomaly in https://github.com/strands-agents/sdk-python/pull/228
  • Update integ tests to isolate provider-based tests by @zastrowm in https://github.com/strands-agents/sdk-python/pull/396
  • Remove agent.tool_config and update usages to use tool_specs by @zastrowm in https://github.com/strands-agents/sdk-python/pull/388
  • multi modal input by @pgrayy in https://github.com/strands-agents/sdk-python/pull/367
  • Fix: Update mistral tests to avoid shared agents by @zastrowm in https://github.com/strands-agents/sdk-python/pull/398
  • async tools support by @pgrayy in https://github.com/strands-agents/sdk-python/pull/391
  • Add basis for conformance-based tests by @zastrowm in https://github.com/strands-agents/sdk-python/pull/403
  • fix: Allow tool names that start with numbers by @zastrowm in https://github.com/strands-agents/sdk-python/pull/407
  • Add hooks for when new messages are appended to the agent's messages by @zastrowm in https://github.com/strands-agents/sdk-python/pull/385
  • Add Model Invocation Hooks by @zastrowm in https://github.com/strands-agents/sdk-python/pull/387
  • structured output - multi-modal input by @pgrayy in https://github.com/strands-agents/sdk-python/pull/405
  • feat(async): mcp async call tool by @jer96 in https://github.com/strands-agents/sdk-python/pull/406
  • [REFACTOR] Unify Model Interface Around Single Entry Point (model.stream) by @mkmeral in https://github.com/strands-agents/sdk-python/pull/400
  • Rename StartRequestEvent & EndRequestEvent events by @zastrowm in https://github.com/strands-agents/sdk-python/pull/408
  • models - bedrock - threading by @pgrayy in https://github.com/strands-agents/sdk-python/pull/411
  • Mark hooks as non-experimental by @zastrowm in https://github.com/strands-agents/sdk-python/pull/410
  • models - litellm - async by @pgrayy in https://github.com/strands-agents/sdk-python/pull/414
  • models - move abstract class by @pgrayy in https://github.com/strands-agents/sdk-python/pull/409
  • feat(multi-agent): introduce Graph multi-agent orchestrator by @awsarron in https://github.com/strands-agents/sdk-python/pull/336
  • refactor: Remove event_loop_cycle from top level import by @Unshure in https://github.com/strands-agents/sdk-python/pull/415
  • refactor: Remove message processor by @Unshure in https://github.com/strands-agents/sdk-python/pull/417
  • refactor: Update interfaces to include kwargs to enable backwards compatibility by @mkmeral in https://github.com/strands-agents/sdk-python/pull/413
  • refactor: Remove _remove_dangling_messages from SlidingWindowConversationManager by @Unshure in https://github.com/strands-agents/sdk-python/pull/418
  • chore!: set Agent property load_tools_from_directory to default to False by @dbschmigelski in https://github.com/strands-agents/sdk-python/pull/419

New Contributors

  • @signoredems made their first contribution in https://github.com/strands-agents/sdk-python/pull/377
  • @billytrend-cohere made their first contribution in https://github.com/strands-agents/sdk-python/pull/236
  • @yanomaly made their first contribution in https://github.com/strands-agents/sdk-python/pull/228
  • @mkmeral made their first contribution in https://github.com/strands-agents/sdk-python/pull/400

Full Changelog: https://github.com/strands-agents/sdk-python/compare/v0.2.1...v0.3.0

No immediate action
v0.2.1 Maintenance

Routine maintenance and dependency updates.

v0.2.0 Breaking risk

Updates feat, refactor, and chore across a mixed release.

Full changelog

Minor Version Bump to v0.2.0

For this minor version bump, we are introducing a number of backwards-incompatible changes. Leading up to the 1.0.0 release of the SDK, we are incrementally releasing backwards-incompatible changes to align with our vision of the 1.0.0 interface. These changes are meant to fix deficiencies that were part of our initial implementation, or to make Strands easier to understand and use. Below are a list of these changes, and steps to migrate your code if they affect you:

  • Use region from boto3 session when possible (#299)
    • This change updates the region behavior of the BedrockModelProvider to better align with the Boto3 default region behavior instead of us-west-2.
  • refactor: remove kwargs spread after agent call (#289)
    • Previously, strands used certain parameters that were passed into the agent invocation call. For example, agent("Hello!", system_prompt="Some New Prompt") would previously override the system prompt defined during the agent’s initialization. Now, this behavior has been removed, so you can alter the agent’s system prompt by overriding the agents system_prompt attribute.
      • Before: agent("Hello!", system_prompt="Some New Prompt")
      • After: agent.system_prompt = "Some New Prompt"
  • Remove FunctionTool (#325)
    • Previously, FunctionTool was deprecated in favor of DecoratedFunctionTool but it was kept in for backwards compatibility. This removes the FunctionTool class in favor of using the @tool decorator. Check out the strands agents tool documentation for instructions on building a tool.
  • Implement native async iterator support (#83)
    • #295: We no longer yield any callback events carried out in tool invocations from stream_async.
    • #323: callback_handler is no longer passed to tools.
  • refactor tracer (#286)
    • The OTEL setup process has changed. Before, Strands would try to automatically setup and OTEL exporter using the STRANDS_OTEL_ENABLE_CONSOLE_EXPORT environment variable. This has been removed, and replaced with a function call. See the docs here for more info: https://strandsagents.com/latest/user-guide/observability-evaluation/traces/#code-configuration

What's Changed

  • iterative event loop by @pgrayy in https://github.com/strands-agents/sdk-python/pull/268
  • Add additional exception information for common bedrock errors by @zastrowm in https://github.com/strands-agents/sdk-python/pull/290
  • iterative structured output by @pgrayy in https://github.com/strands-agents/sdk-python/pull/291
  • fix: correcting incorrect docstring in tracer.py - non-existing argument documented by @didier-durand in https://github.com/strands-agents/sdk-python/pull/293
  • tools - do not remove $defs by @pgrayy in https://github.com/strands-agents/sdk-python/pull/294
  • feat: Add reasoning content for openai model provider by @xiehust in https://github.com/strands-agents/sdk-python/pull/187
  • chore: refactor tracer by @poshinchen in https://github.com/strands-agents/sdk-python/pull/286
  • iterative agent by @pgrayy in https://github.com/strands-agents/sdk-python/pull/295
  • feat(a2a): tools as skills by @jer96 in https://github.com/strands-agents/sdk-python/pull/287
  • feat: Add Mistral model support to strands by @siddhantwaghjale in https://github.com/strands-agents/sdk-python/pull/284
  • fix: Fix docs warnings by @Unshure in https://github.com/strands-agents/sdk-python/pull/303
  • Use region from boto3 session when possible by @zastrowm in https://github.com/strands-agents/sdk-python/pull/299
  • chore: update spanKind and attributes for tokens by @poshinchen in https://github.com/strands-agents/sdk-python/pull/296
  • fix: Migrate Mistral structured_output to an iterator by @zastrowm in https://github.com/strands-agents/sdk-python/pull/305
  • feat: add debug logging for model converse requests by @RingoIngo2 in https://github.com/strands-agents/sdk-python/pull/297
  • refactor: remove kwargs spread after agent call by @Unshure in https://github.com/strands-agents/sdk-python/pull/289
  • chore: allow custom tracer_provider and chain setup by @poshinchen in https://github.com/strands-agents/sdk-python/pull/316
  • feat: Add reproduction test for #320 by @zastrowm in https://github.com/strands-agents/sdk-python/pull/322
  • feat: Agent State by @Unshure in https://github.com/strands-agents/sdk-python/pull/292
  • stop passing around callback handler by @pgrayy in https://github.com/strands-agents/sdk-python/pull/323
  • refactor: Remove unused code by @Unshure in https://github.com/strands-agents/sdk-python/pull/326
  • chore: updated semantic conventions on Generative AI spans by @poshinchen in https://github.com/strands-agents/sdk-python/pull/319
  • refactor: Consolidate agent state unit tests by @Unshure in https://github.com/strands-agents/sdk-python/pull/334
  • Remove FunctionTool as a breaking change by @zastrowm in https://github.com/strands-agents/sdk-python/pull/325
  • executor - run tools - yield by @pgrayy in https://github.com/strands-agents/sdk-python/pull/328

New Contributors

  • @siddhantwaghjale made their first contribution in https://github.com/strands-agents/sdk-python/pull/284
  • @RingoIngo2 made their first contribution in https://github.com/strands-agents/sdk-python/pull/297

Full Changelog: https://github.com/strands-agents/sdk-python/compare/v0.1.9...v0.2.0

No immediate action
v0.1.9 Mixed

Meter + Structured Output + Region Warning

No immediate action
v0.1.8 Mixed

Underscores, conversation summarizer, truncation logic

No immediate action
v0.1.7 Mixed

CachePoint type + handler fixes

Beta — feedback welcome: [email protected]