fix(sdk): respect disabled prompt caching - #4559
Open
zora-zi wants to merge 1 commit into
Open
Conversation
Co-authored-by: openhands <openhands@all-hands.dev>
Contributor
|
📁 PR Artifacts Notice This PR contains a |
zora-zi
marked this pull request as ready for review
August 20, 2026 15:11
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.
HUMAN:
I reviewed the changes and test results, and confirmed that disabled prompt caching no longer emits cache_control markers in tool-call messages.
AGENT:
This draft was prepared with AI assistance. The human author reviewed the code changes and verification results before submission.
Why
Message.to_chat_dict()selects list serialization when function calling is enabled. That path previously did not passcache_enabledto_list_serializer(), so content marked withcache_prompt=Truecould still emitcache_controleven when the call-level caching switch was disabled.Summary
cache_enabledsetting into list serialization.Issue Number
#4511
How to Test
Run the focused message serialization tests:
Result on this branch:
I also invoked the public
Message.to_chat_dict()API for tool and user messages withcache_prompt=True,cache_enabled=False, andfunction_calling_enabled=True. The serialized output was:Video/Screenshots
Not applicable; this is a message serialization fix. The end-to-end serialized output is included above.
Design Doc
Not needed for this focused bug fix.
Type
Notes
PR #4512 already addresses the same issue. This draft is intentionally transparent about that overlap and is being submitted to validate this independently tested implementation through the project's CI and review workflow. It adds regression coverage for both tool-role and user-role messages.