Skip to content

Conversation

pgrayy
Copy link
Member

@pgrayy pgrayy commented Oct 2, 2025

Description

Moving the model execution logic in the agent loop into a function so that we can more easily condition around it when resuming after interrupt. For more details, please see comments under the files changed page.

To get a rough idea of what the end result will be for resuming, see here.

Related Issues

#204

Documentation PR

N/A

Type of Change

Other (please describe): Code reorg.

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

  • I ran hatch run prepare: I am not changing any logic in this PR and so we can rely on the existing unit/integ tests.

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.

@pgrayy pgrayy marked this pull request as ready for review October 2, 2025 00:29
@pgrayy pgrayy merged commit 428750b into strands-agents:main Oct 2, 2025
12 checks passed
@pgrayy pgrayy deleted the event-loop-handle-model branch October 2, 2025 18:35
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants