Skip to content

Conversation

@Ratish1
Copy link
Contributor

@Ratish1 Ratish1 commented Oct 7, 2025

Description

Previously, when LiteLLM raised a context window related error , it wasn’t mapped to our standard ContextWindowOverflowException. This update fixes that by detecting these errors and raising ContextWindowOverflowException so that agents can handle input more reliably.

Key Changes

  • Updated src/strands/models/litellm.py to catch LiteLLM client exceptions and raise ContextWindowOverflowException for context-window overflow messages
  • Adjusted structured_output logic to ensure mapping occurs before unsupported model checks when relevant.
  • Updated the test file tests/strands/models/test_litellm.py to patch supports_response_schema where needed, ensuring the test properly covers the exception mapping path.

Related Issues

Fixes #974

Documentation PR

N/A

Type of Change

Bug fix

Testing

How have you tested the change? Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli

  • Ran pre-commit hooks and linters.
  • Ran unit tests locally: pytest -q tests/strands/models/test_litellm.py
  • I ran hatch run prepare

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@dbschmigelski dbschmigelski merged commit 2a26ffa into strands-agents:main Oct 7, 2025
12 checks passed
@Ratish1 Ratish1 deleted the fix-exception branch October 8, 2025 07:52
JackYPCOnline added a commit that referenced this pull request Oct 10, 2025
* feat: replace kwargs with invocation_state in agent APIs

* fix: handle **kwargs in stream_async.

* feat: add a unit test for the change

* Update src/strands/agent/agent.py

Co-authored-by: Nick Clegg <nac542@gmail.com>

* tool - executors - concurrent - remove no-op gather (#954)

* feat(telemetry): updated traces to match OTEL v1.37 semantic conventions (#952)

* event loop - handle model execution (#958)

* feat: implement concurrent message reading for session managers (#897)

Replace sequential message loading with async concurrent reading in both
S3SessionManager and FileSessionManager to improve performance for long
conversations. Uses asyncio.gather() with run_in_executor() to read
multiple messages simultaneously while maintaining proper ordering.

Resolves: #874

Co-authored-by: Vamil Gandhi <vamgan@amazon.com>

* hooks - before tool call event - cancel tool (#964)

* fix(telemetry): removed double serialization for events (#977)

* fix(litellm): map LiteLLM context-window errors to ContextWindowOverflowException (#994)

* feat: add more tests and adjust invocation_state dic structure

* Apply suggestion from @Unshure

Co-authored-by: Nick Clegg <nac542@gmail.com>

* fix: adjust **kwargs in multiagent primitives

---------

Co-authored-by: Nick Clegg <nac542@gmail.com>
Co-authored-by: Patrick Gray <pgrayy@amazon.com>
Co-authored-by: poshinchen <pschen@amazon.com>
Co-authored-by: Vamil Gandhi <hello@vamilgandhi.com>
Co-authored-by: Vamil Gandhi <vamgan@amazon.com>
Co-authored-by: ratish <114130421+Ratish1@users.noreply.github.com>
dbschmigelski pushed a commit to dbschmigelski/sdk-python that referenced this pull request Dec 9, 2025
dbschmigelski pushed a commit to dbschmigelski/sdk-python that referenced this pull request Dec 9, 2025
…nts#966)

* feat: replace kwargs with invocation_state in agent APIs

* fix: handle **kwargs in stream_async.

* feat: add a unit test for the change

* Update src/strands/agent/agent.py

Co-authored-by: Nick Clegg <nac542@gmail.com>

* tool - executors - concurrent - remove no-op gather (strands-agents#954)

* feat(telemetry): updated traces to match OTEL v1.37 semantic conventions (strands-agents#952)

* event loop - handle model execution (strands-agents#958)

* feat: implement concurrent message reading for session managers (strands-agents#897)

Replace sequential message loading with async concurrent reading in both
S3SessionManager and FileSessionManager to improve performance for long
conversations. Uses asyncio.gather() with run_in_executor() to read
multiple messages simultaneously while maintaining proper ordering.

Resolves: strands-agents#874

Co-authored-by: Vamil Gandhi <vamgan@amazon.com>

* hooks - before tool call event - cancel tool (strands-agents#964)

* fix(telemetry): removed double serialization for events (strands-agents#977)

* fix(litellm): map LiteLLM context-window errors to ContextWindowOverflowException (strands-agents#994)

* feat: add more tests and adjust invocation_state dic structure

* Apply suggestion from @Unshure

Co-authored-by: Nick Clegg <nac542@gmail.com>

* fix: adjust **kwargs in multiagent primitives

---------

Co-authored-by: Nick Clegg <nac542@gmail.com>
Co-authored-by: Patrick Gray <pgrayy@amazon.com>
Co-authored-by: poshinchen <pschen@amazon.com>
Co-authored-by: Vamil Gandhi <hello@vamilgandhi.com>
Co-authored-by: Vamil Gandhi <vamgan@amazon.com>
Co-authored-by: ratish <114130421+Ratish1@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants