fix(deepseek): ensure reasoning_content is included in multi-turn tool chains#13203
Open
dixoxib wants to merge 5 commits intovercel:mainfrom
Open
fix(deepseek): ensure reasoning_content is included in multi-turn tool chains#13203dixoxib wants to merge 5 commits intovercel:mainfrom
dixoxib wants to merge 5 commits intovercel:mainfrom
Conversation
…l chains When thinking mode is enabled, include empty reasoning_content in assistant turns that are part of a multi-turn tool chain to avoid 400 errors from DeepSeek API.
fe5895b to
66fc369
Compare
6 tasks
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
When using DeepSeek's thinking mode with multi-turn tool calls, the
reasoning_contentfield was not being properly included in assistant messages. DeepSeek API which expectsreasoning_contentto be present in all assistant messages within the current thinking chain, even if empty, else responding with error 400.Summary
Modified
packages/deepseek/src/chat/convert-to-deepseek-chat-messages.tsto ensurereasoning_contentis included for every assistant message in the current thinking chain when thinking mode is enabled. The fix ensures that when thinking mode is active and tool calls are present, an emptyreasoning_contentstring is provided if no reasoning content exists, maintaining API compatibility with DeepSeek's requirements.Manual Verification
Checklist
pnpm changesetin the project root)Future Work
Fix edge cases on DeepSeek API behavior if there's a need.