-
Notifications
You must be signed in to change notification settings - Fork 314
Description
Problem Statement
I would like there to e.g. be an argument in the Agent constructor like sequential_tool_execution=True
(default) with the ability to set it to false. Parallel tool calling causes problems when one tool available to an agent depends on the output of another tool available to the agent.
Proposed Solution
When setting sequential_tool_execution=False
it would replace the concurrent execution within /src/strands/tools/executor.py with a sequential loop.
Use Case
When a single agent has two tools, and the input of tool B is dependent on the output of tool A. For example tool A runs an sql query and saves the result to a csv, tool B executes python code which reads the csv and analyzes the contents.
Alternatives Solutions
Alternatives are to separate the tools into different sub agents, then orchestrate the agents in a workflow
. In my situation I need one agent to have access to two interdependent tools.
Another workaround is to rely on prompt engineering, instructing the LLM to never call two tools at the same time. But, this is unreliable and model dependent.
Additional Context
No response