fix(amazon-bedrock): handle empty activeTools with tool conversation history#7600
Merged
fix(amazon-bedrock): handle empty activeTools with tool conversation history#7600
Conversation
lgrammel
reviewed
Jul 28, 2025
packages/amazon-bedrock/src/bedrock-chat-language-model.test.ts
Outdated
Show resolved
Hide resolved
lgrammel
reviewed
Jul 28, 2025
lgrammel
requested changes
Jul 28, 2025
Collaborator
lgrammel
left a comment
There was a problem hiding this comment.
this will impact llm behavior with a fake tool
lgrammel
reviewed
Jul 28, 2025
lgrammel
reviewed
Jul 28, 2025
| ) | ||
| .filter( | ||
| message => message.role === 'system' || message.content.length > 0, | ||
| ) as typeof prompt; |
Collaborator
There was a problem hiding this comment.
why is the type cast needed
Collaborator
Author
There was a problem hiding this comment.
ts can't prove that filtering maintains the exact prompt type structure, so we need the cast to tell it the result still matches LMV2Prompt
lgrammel
reviewed
Jul 28, 2025
Comment on lines
+200
to
+207
| const hasToolContent = prompt.some( | ||
| message => | ||
| 'content' in message && | ||
| Array.isArray(message.content) && | ||
| message.content.some( | ||
| part => part.type === 'tool-call' || part.type === 'tool-result', | ||
| ), | ||
| ); |
Collaborator
There was a problem hiding this comment.
why is this check needed
Collaborator
Author
There was a problem hiding this comment.
messages can contain only tool-call parts (no texts) and then tool messages contain only tool-results parts so after filtertering removes these we would get a empty content: [] array and bedrock rejects that
lgrammel
approved these changes
Jul 28, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
background
Users integrating Amazon Bedrock with multi-step agents hit validation errors when setting
activeTools: []ortoolChoice: 'none'in conversations that previously used tools. Bedrock requires toolConfig to be present when conversation contains tool content, but rejects empty tools arrays.summary
activeTools: []andtoolChoice: 'none'scenariosverification
tasks
future work
related issue #7528