@@ -180,7 +180,7 @@ def get_config(self) -> BedrockConfig:
180180 def _should_include_tool_result_status (self ) -> bool :
181181 """Determine whether to include tool result status based on current config."""
182182 include_status = self .config .get ("include_tool_result_status" , "auto" )
183-
183+
184184 if include_status is True :
185185 return True
186186 elif include_status is False :
@@ -275,6 +275,7 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
275275 """Format messages for Bedrock API compatibility.
276276
277277 This function ensures messages conform to Bedrock's expected format by:
278+ - Filtering out SDK_UNKNOWN_MEMBER content blocks
278279 - Cleaning tool result content blocks by removing additional fields that may be
279280 useful for retaining information in hooks but would cause Bedrock validation
280281 exceptions when presented with unexpected fields
@@ -292,11 +293,17 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
292293 https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolResultBlock.html
293294 """
294295 cleaned_messages = []
296+ filtered_unknown_members = False
295297
296298 for message in messages :
297299 cleaned_content : list [ContentBlock ] = []
298300
299301 for content_block in message ["content" ]:
302+ # Filter out SDK_UNKNOWN_MEMBER content blocks
303+ if "SDK_UNKNOWN_MEMBER" in content_block :
304+ filtered_unknown_members = True
305+ continue
306+
300307 if "toolResult" in content_block :
301308 # Create a new content block with only the cleaned toolResult
302309 tool_result : ToolResult = content_block ["toolResult" ]
@@ -323,6 +330,12 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
323330 # Create new message with cleaned content
324331 cleaned_message : Message = Message (content = cleaned_content , role = message ["role" ])
325332 cleaned_messages .append (cleaned_message )
333+
334+ if filtered_unknown_members :
335+ logger .warning (
336+ "Filtered out SDK_UNKNOWN_MEMBER content blocks from messages, consider upgrading boto3 version"
337+ )
338+
326339 return cleaned_messages
327340
328341 def _has_blocked_guardrail (self , guardrail_data : dict [str , Any ]) -> bool :
0 commit comments