This pull request introduces a new validation mechanism for tool messages in the LlmClient. It includes a method validate_tool_message_sequence that ensures that tool result messages have corresponding tool use messages, effectively converting invalid tool messages into regular user messages when no valid tool use ID is found. This validation is integrated into the message processing pipeline before sending requests to the external service. Additionally, unit tests are added to verify that both the validation function and the handling of invalid tool sequences within the Anthropic provider do not raise errors, enhancing the robustness and reliability of the messaging system.
If you have any questions or feedback for the Sentry team about this fix, please email autofix@sentry.io with the Run ID: 1466.
👋 Hi there! This PR was automatically generated by Autofix 🤖
This fix was triggered by Jenn Mueng
Fixes SEER-EC
This pull request introduces a new validation mechanism for tool messages in the LlmClient. It includes a method
validate_tool_message_sequence
that ensures that tool result messages have corresponding tool use messages, effectively converting invalid tool messages into regular user messages when no valid tool use ID is found. This validation is integrated into the message processing pipeline before sending requests to the external service. Additionally, unit tests are added to verify that both the validation function and the handling of invalid tool sequences within the Anthropic provider do not raise errors, enhancing the robustness and reliability of the messaging system.If you have any questions or feedback for the Sentry team about this fix, please email autofix@sentry.io with the Run ID: 1466.