feat: add configurable allow_parallel_tool_calls to FunctionAgent #18829
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds a configurable
allow_parallel_tool_callsparameter to theFunctionAgentclass. Previously, parallel tool calls were always enabled (hardcoded toTrue), which could cause issues in certain scenarios. This change allows users to disable parallel tool calls when needed while maintaining backward compatibility.Motivation
When
allow_parallel_tool_callsis always set toTrue, it can cause unexpected behavior or errors in some use cases, such as:By making this parameter configurable, users can choose the appropriate behavior for their specific use case.
Changes
allow_parallel_tool_callsparameter to FunctionAgent class with Pydantic FieldTruefor backward compatibilityastream_chat_with_toolscall to use instance parameterNew Package?
Did I fill in the
tool.llamahubsection in thepyproject.tomland provide a detailed README.md for my new integration or package?Version Bump?
Did I bump the version in the
pyproject.tomlfile of the package I am updating? (Except for thellama-index-corepackage)Type of Change
Please delete options that are not relevant.
How Has This Been Tested?
Your pull-request will likely not be merged unless it is covered by some form of impactful unit testing.
Usage Example
Suggested Checklist:
uv run make format; uv run make lintto appease the lint gods