Releases: strands-agents/sdk-python
Releases · strands-agents/sdk-python
v0.2.0
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"
- Before:
- Previously, strands used certain parameters that were passed into the agent invocation call. For example,
- 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)
- 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 #268
- Add additional exception information for common bedrock errors by @zastrowm in #290
- iterative structured output by @pgrayy in #291
- fix: correcting incorrect docstring in tracer.py - non-existing argument documented by @didier-durand in #293
- tools - do not remove $defs by @pgrayy in #294
- feat: Add reasoning content for openai model provider by @xiehust in #187
- chore: refactor tracer by @poshinchen in #286
- iterative agent by @pgrayy in #295
- feat(a2a): tools as skills by @jer96 in #287
- feat: Add Mistral model support to strands by @siddhantwaghjale in #284
- fix: Fix docs warnings by @Unshure in #303
- Use region from boto3 session when possible by @zastrowm in #299
- chore: update spanKind and attributes for tokens by @poshinchen in #296
- fix: Migrate Mistral structured_output to an iterator by @zastrowm in #305
- feat: add debug logging for model converse requests by @RingoIngo2 in #297
- refactor: remove kwargs spread after agent call by @Unshure in #289
- chore: allow custom tracer_provider and chain setup by @poshinchen in #316
- feat: Add reproduction test for #320 by @zastrowm in #322
- feat: Agent State by @Unshure in #292
- stop passing around callback handler by @pgrayy in #323
- refactor: Remove unused code by @Unshure in #326
- chore: updated semantic conventions on Generative AI spans by @poshinchen in #319
- refactor: Consolidate agent state unit tests by @Unshure in #334
- Remove FunctionTool as a breaking change by @zastrowm in #325
- executor - run tools - yield by @pgrayy in #328
New Contributors
- @siddhantwaghjale made their first contribution in #284
- @RingoIngo2 made their first contribution in #297
Full Changelog: v0.1.9...v0.2.0
v0.1.9
What's Changed
- feat: add meter by @poshinchen in #219
- models - openai - images - b64 validate by @pgrayy in #251
- chore: Inline event loop helper functions by @zastrowm in #222
- feat: add structured output support using Pydantic models by @theagenticguy in #60
- fix: Emit warning that default region behavior will be changing by @zastrowm in #254
- models - openai - b64encode method by @pgrayy in #260
- chore/update metrics by @poshinchen in #248
- iterative streaming by @pgrayy in #241
- Initial A2A server Integration by @jer96 in #218
- litellm - bug in v1.73.0 by @pgrayy in #270
- Update @tool to return an AgentTool that also acts as a function by @zastrowm in #258
New Contributors
- @theagenticguy made their first contribution in #60
Full Changelog: v0.1.8...v0.1.9
v0.1.8
What's Changed
- Fix: Enable underscores in direct method invocations to match hyphens by @zastrowm in #178
- feat: implement summarizing conversation manager by @stefanoamorelli in #112
- chore: moved truncation logic to conversation manager and added should_truncate_results by @poshinchen in #192
- refactor: Disallow similar tool names in the tool registry by @zastrowm in #193
- ci: add integration test workflow by @dbschmigelski in #201
- fix: add inference profile to litellm test and remove ownership check… by @dbschmigelski in #209
- chore: allow custom tracer provider to Agent by @poshinchen in #207
- build(a2a): add a2a deps and mitigate otel conflict by @jer96 in #232
- chore(otel): raise exception if exporter unavailable by @jer96 in #234
- fix: Update PR Integration Test Workflow by @AdnaneKhan in #237
- fix: remove unused dependency swagger-parser by @zastrowm in #220
- fix: Update throttling logic to use exponential back-off by @zastrowm in #223
- feat: Simplify contribution template + pr scripts to run by @zastrowm in #221
- docstring parser by @dbschmigelski in #239
New Contributors
- @stefanoamorelli made their first contribution in #112
- @poshinchen made their first contribution in #192
- @jer96 made their first contribution in #232
- @AdnaneKhan made their first contribution in #237
Full Changelog: v0.1.7...v0.1.8
v0.1.7
What's Changed
- models - unsupported content types by @pgrayy in #144
- feat: Add CachePoint type definition to ContentBlock by @moritalous in #142
- [Docs] add meta copyright header by @seyeong-han in #153
- refactor: Update conversation manager interface by @Unshure in #161
- models - correct tool result content by @pgrayy in #154
- test: set OTEL_ env vars correctly for tests by @awsarron in #169
- Fix agent default callback handler by @awsarron in #170
- chore: Add permissions to workflows by @Unshure in #166
- Remove redundant permissions block by @Unshure in #172
- Fix: Preserve deeply nested schemas by @lukehau in #133
- fix: ignore mypy error from latest OpenTelemetrySDK update by @zastrowm in #180
- Add permission block to call-tst-lint job by @Unshure in #186
- fix: Handle empty choices in OpenAI model provider by @mrityunjayshukla in #185
- Remove codeowners by @zastrowm in #181
- chore: enhance error messaging when MCP tools are used without sessio… by @dbschmigelski in #175
New Contributors
- @seyeong-han made their first contribution in #153
- @lukehau made their first contribution in #133
- @mrityunjayshukla made their first contribution in #185
- @dbschmigelski made their first contribution in #175
Full Changelog: v0.1.6...v0.1.7
v0.1.6
What's Changed
- style(callback_handler): fix docstring for PrintingCallbackHandler.call by @awsarron in #126
- chore(tests): Add unit tests for user agent changes by @clareliguori in #125
- Increasing Coverage Message Processor : From 79% to 94% by @fede-dash in #115
- feat: Add non-streaming support to BedrockModel by @Unshure in #75
- fix: Added hyphen to allowed characters in tool name validation by @xiehust in #55
- models - content - documents by @pgrayy in #138
- models - anthropic - document - plain text by @pgrayy in #141
- fix(telemetry): correct environment variable precedence for OTEL config by @JackYPCOnline in #86
- Automate deployment to PYPI by @Unshure in #145
New Contributors
Full Changelog: v0.1.5...v0.1.6
v0.1.5
What's Changed
- models - openai - argument none by @pgrayy in #97
- docs(readme): add open PRs badge + link to samples repo + change 'Docs' to 'Documentation' by @awsarron in #100
- docs(readme): add logo by @awsarron in #101
- docs(readme): add logo, title, badges, links to other repos, standardize headings by @awsarron in #102
- style(readme): use dark logo for clearer visibility when system is using light color scheme by @awsarron in #104
- fix(readme): use logo that changes color automatically depending on user's color preference scheme by @awsarron in #105
- feat(handlers): add reasoning text to callback handler and related tests by @josephgultekin in #109
- feat: Add dynamic system prompt override functionality by @Shubhamraut01 in #108
- 🔥🕊️ Rise of the Phoenix: Event Loop Refactor by @fede-dash in #106
- fix(telemetry): fix agent span start and end when using Agent.stream_async() by @awsarron in #119
- feat: Update SlidingWindowConversationManager by @Unshure in #120
- v0.1.5 by @awsarron in #121
New Contributors
- @josephgultekin made their first contribution in #109
- @Shubhamraut01 made their first contribution in #108
- @fede-dash made their first contribution in #106
Full Changelog: v0.1.4...v0.1.5
v0.1.4
What's Changed
- fix: Updated GitHub Action to use GitHub native approvals by @yonib05 in #67
- models - litellm - capture usage by @pgrayy in #73
- fixing various typos in markdowns and scripts by @didier-durand in #74
- fix(docs): add missing quotation marks in pip install commands by @JackYPCOnline in #80
- fix: Merge strands-agents user agent into existing botocore config by @clareliguori in #76
- feature: models - openai by @pgrayy in #65
- fixing typos in .py and .md by @didier-durand in #78
- docs: update contributing guide to manage python env with hatch shell by @wzxxing in #46
- Add ensure_ascii=False to json.dumps() calls in telemetry tracer by @moritalous in #37
- lint - openai client protocol by @pgrayy in #87
- Lower OpenTelemetry minimum version by @zastrowm in #89
New Contributors
- @didier-durand made their first contribution in #74
- @JackYPCOnline made their first contribution in #80
- @wzxxing made their first contribution in #46
- @moritalous made their first contribution in #37
Full Changelog: v0.1.3...v0.1.4
v0.1.3
What's Changed
- fix: update direct tool call references by @cagataycali in #56
- Update README.md - corrected spelling of "model" by @samisb in #59
- style guide by @pgrayy in #49
- Update version to 0.1.3 by @Unshure in #63
New Contributors
- @cagataycali made their first contribution in #56
- @samisb made their first contribution in #59
v0.1.2
What's Changed
- Update README.md mention of tools repo by @ryanycoleman in #29
- Update README to mention Meta Llama API as a supported model provider by @ryanycoleman in #21
- fix: tracing of non-serializable values, e.g. bytes by @awsarron in #34
- fix(bedrock): use the AWS_REGION environment variable for the Bedrock model provider region if set and boto_session is not passed by @awsarron in #39
- v0.1.2 by @awsarron in #41
New Contributors
- @ryanycoleman made their first contribution in #29
Full Changelog: v0.1.1...test
v0.1.1
What's Changed
- Update the PyPI package description by @zastrowm in #15
- docs: update README with LlamaAPI by @yanxi0830 in #18
- Update readme to include badges by @zastrowm in #17
- actions: fix docs dispatch by @pgrayy in #19
- actions: remove dispatch docs by @pgrayy in #22
- fix: set user-agent for Bedrock API calls by @clareliguori in #23
- v0.1.1 release by @Unshure in #26
New Contributors
- @zastrowm made their first contribution in #15
- @clareliguori made their first contribution in #23
Full Changelog: v0.1.0...v0.1.1