fix(core): ensure InjectedToolCallId
always overrides LLM-generated values
#32766
+24
−8
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 fixes a bug where InjectedToolCallId injection would fail when an LLM generates the parameter that should be automatically injected. Previously, the injection logic would skip injection if the parameter was already present in the tool input, causing tools to receive LLM-generated fake IDs instead of the real tool call ID.
The fix removes the
k not in tool_input
condition check, ensuring that InjectedToolCallId parameters are always injected regardless of whether the LLM has already provided them. This maintains the intended behavior where injected parameters should always override any user-provided values.Issue: Fixes #32729
Dependencies: None