fix(anthropic): normalize ParsedTextBlock to avoid Pydantic serialization warnings#2058
Open
Zelys-DFKH wants to merge 1 commit intostrands-agents:mainfrom
Open
fix(anthropic): normalize ParsedTextBlock to avoid Pydantic serialization warnings#2058Zelys-DFKH wants to merge 1 commit intostrands-agents:mainfrom
Zelys-DFKH wants to merge 1 commit intostrands-agents:mainfrom
Conversation
…tion warnings Anthropic SDK >= 0.84.0 returns ParsedTextBlock objects in content_block_start events. ParsedTextBlock is a TextBlock subclass with an extra parsed_output field that is not part of the discriminated union on Message.content. Calling model_dump() on those events triggers PydanticSerializationUnexpectedValue warnings on every agent invocation. Add _normalize_event() to convert ParsedTextBlock back to a plain TextBlock before model_dump(). The conversion preserves all content data (text, type, citations) and is guarded with try/except ImportError for SDK versions that do not ship ParsedTextBlock. Fixes strands-agents#1865
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.
Description
Anthropic SDK >= 0.84.0 returns `ParsedTextBlock` objects in `content_block_start` events. `ParsedTextBlock` is a `TextBlock` subclass with an extra `parsed_output` field that is not part of the discriminated union on `Message.content`. Calling `model_dump()` on those events triggers `PydanticSerializationUnexpectedValue` warnings on every agent invocation (6+ warnings per call), cluttering stderr even though serialization succeeds and results are correct.
The fix adds a `_normalize_event()` static method that converts `ParsedTextBlock` back to a plain `TextBlock` before `model_dump()` is called. This preserves all content data (text, type, citations) and removes the spurious `parsed_output` field that causes the discriminated-union mismatch.
Key details:
Related Issues
Fixes #1865
Documentation PR
N/A
Type of Change
Bug fix
Testing
Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.