[OpenAI-API-compatible] The thinking model will output multiple <think> blocks. #938

Open
opened 2026-02-16 10:21:03 -05:00 by yindo · 5 comments
Owner

Originally created by @ran411285752 on GitHub (Jan 17, 2026).

Self Checks

  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues Dify issues & Dify Official Plugins, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

V1.10.0

Plugin version

V0.0.28-V0.0.30

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

For plugins versions V0.0.28 to V0.0.30, when using the qwen3-next-thinking-FP8 model with vLLM inference, numerous "" labels appear in DIFY during output. This issue does not occur with the same model in version V0.0.27.

Image

✔️ Error log

No response

Originally created by @ran411285752 on GitHub (Jan 17, 2026). ### Self Checks - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [Dify issues](https://github.com/langgenius/dify/issues) & [Dify Official Plugins](https://github.com/langgenius/dify-official-plugins/issues), including closed ones. - [x] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version V1.10.0 ### Plugin version V0.0.28-V0.0.30 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce For plugins versions V0.0.28 to V0.0.30, when using the qwen3-next-thinking-FP8 model with vLLM inference, numerous "<think></think>" labels appear in DIFY during output. This issue does not occur with the same model in version V0.0.27. <img width="805" height="653" alt="Image" src="https://github.com/user-attachments/assets/98b64e5c-fd81-4be9-9437-bab932c63f6f" /> ### ✔️ Error log _No response_
yindo added the bug label 2026-02-16 10:21:03 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jan 17, 2026):

This is a known regression in plugin versions V0.0.28–V0.0.30 when using the qwen3-next-thinking-FP8 model with vLLM inference: extraneous <think></think> tags appear in outputs, which did not happen in V0.0.27. The root cause is that the streaming response includes a reasoning_content field with empty or newline content, which Dify renders as <think> blocks in the output. This is confirmed in user and maintainer discussions and is related to recent changes in how streamed reasoning content is handled in the plugin and Dify core [source].

Dify now supports a reasoning_format setting per workflow node:

  • If set to separated, Dify extracts the content inside <think> tags and exposes it as a separate reasoning_content field.
  • If set to tagged (the default for backward compatibility), it keeps the tags in the main text [source] [source].

To mitigate the issue, you can try:

  • Setting reasoning_format to separated in your workflow node configuration to extract and hide empty <think> tags from the main output.
  • Filtering out <think> tags on the frontend or via post-processing if you want to suppress them entirely.
  • Ensuring that enable_thinking is set to false in your model configuration or API payload (e.g., chat_template_kwargs: {"enable_thinking": false}), though in some plugin versions this may not fully suppress the tags due to the regression [source].

A feature to control reasoning tag handling was merged in PR #23313, which adds a UI toggle and backend support for reasoning format processing [source]. If you are on a version that includes this PR, adjusting the reasoning format should help. If not, you may need to patch the plugin or filter the tags manually as a workaround.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Jan 17, 2026): <!-- Answer --> This is a known regression in plugin versions V0.0.28–V0.0.30 when using the qwen3-next-thinking-FP8 model with vLLM inference: extraneous `<think></think>` tags appear in outputs, which did not happen in V0.0.27. The root cause is that the streaming response includes a `reasoning_content` field with empty or newline content, which Dify renders as `<think>` blocks in the output. This is confirmed in user and maintainer discussions and is related to recent changes in how streamed reasoning content is handled in the plugin and Dify core [[source]](https://github.com/langgenius/dify-official-plugins/issues/849). Dify now supports a `reasoning_format` setting per workflow node: - If set to `separated`, Dify extracts the content inside `<think>` tags and exposes it as a separate `reasoning_content` field. - If set to `tagged` (the default for backward compatibility), it keeps the tags in the main text [[source]](https://github.com/langgenius/dify/issues/27149) [[source]](https://github.com/langgenius/dify/pull/23313). To mitigate the issue, you can try: - Setting `reasoning_format` to `separated` in your workflow node configuration to extract and hide empty `<think>` tags from the main output. - Filtering out `<think>` tags on the frontend or via post-processing if you want to suppress them entirely. - Ensuring that `enable_thinking` is set to `false` in your model configuration or API payload (e.g., `chat_template_kwargs: {"enable_thinking": false}`), though in some plugin versions this may not fully suppress the tags due to the regression [[source]](https://github.com/langgenius/dify-official-plugins/issues/849). A feature to control reasoning tag handling was merged in PR #23313, which adds a UI toggle and backend support for reasoning format processing [[source]](https://github.com/langgenius/dify/pull/23313). If you are on a version that includes this PR, adjusting the reasoning format should help. If not, you may need to patch the plugin or filter the tags manually as a workaround. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/81d6ec61-3a84-4ee1-9ee2-9590b5b5d738?feedback_type=other)</sup> [![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=This%20is%20a%20known%20regression%20in%20plugin%20versions%20V0.0.28%E2%80%93V0.0.30%20when%20using%20the%20qwen3-next-thinking-FP8%20model%20with%20vLLM%20inference%3A%20extraneous%20%60%3Cthink%3E%3C/think%3E%60%20tags%20appear%20in%20outputs%2C%20which%20did%20not%20happen%20in%20V0.0.27.%20The%20root%20cause%20is%20that%20the%20streaming%20response%20includes%20a%20%60reasoning_content%60%20field%20with%20empty%20or%20newline%20content%2C%20which%20Dify%20renders%20as%20%60%3Cthink%3E%60%20blocks%20in%20the%20output.%20This%20is%20confirmed%20in%20user%20and%20maintainer%20discussions%20and%20is%20related%20to%20recent%20changes%20in%20how%20streamed%20reasoning%20content%20is%20handled%20in%20the%20plugin%20and%20Dify%20core%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/849%29.%0A%0ADify%20now%20supports%20a%20%60reasoning_format%60%20setting%20per%20workflow%20node%3A%20%20%0A-%20If%20set%20to%20%60separated%60%2C%20Dify%20extracts%20the%20content%20inside%20%60%3Cthink%3E%60%20tags%20and%20exposes%20it%20as%20a%20separate%20%60reasoning_content%60%20field.%20%20%0A-%20If%20set%20to%20%60tagged%60%20%28the%20default%20for%20backward%20compatibility%29%2C%20it%20keeps%20the%20tags%20in%20the%20main%20text%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/issues/27149%29%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/pull/23313%29.%0A%0ATo%20mitigate%20the%20issue%2C%20you%20can%20try%3A%0A-%20Setting%20%60reasoning_format%60%20to%20%60separated%60%20in%20your%20workflow%20node%20configuration%20to%20extract%20and%20hide%20empty%20%60%3Cthink%3E%60%20tags%20from%20the%20main%20output.%0A-%20Filtering%20out%20%60%3Cthink%3E%60%20tags%20on%20the%20frontend%20or%20via%20post-processing%20if%20you%20want%20to%20suppress%20them%20entirely.%0A-%20Ensuring%20that%20%60enable_thinking%60%20is%20set%20to%20%60false%60%20in%20your%20model%20configuration%20or%20API%20payload%20%28e.g.%2C%20%60chat_template_kwargs%3A%20%7B%22enable_thinking%22%3A%20false%7D%60%29%2C%20though%20in%20some%20plugin%20versions%20this%20may%20not%20fully%20suppress%20the%20tags%20due%20to%20the%20regression%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/849%29.%0A%0AA%20feature%20to%20control%20reasoning%20tag%20handling%20was%20merged%20in%20PR%20%2323313%2C%20which%20adds%20a%20UI%20toggle%20and%20backend%20support%20for%20reasoning%20format%20processing%20%5B%5Bsource%5D%5D%28https%3A//github.com/langgenius/dify/pull/23313%29.%20If%20you%20are%20on%20a%20version%20that%20includes%20this%20PR%2C%20adjusting%20the%20reasoning%20format%20should%20help.%20If%20not%2C%20you%20may%20need%20to%20patch%20the%20plugin%20or%20filter%20the%20tags%20manually%20as%20a%20workaround.)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/2447)
Author
Owner

@ran411285752 commented on GitHub (Jan 17, 2026):

  • separated

reasoning_format Setting it to "separated" ,has not resolved the issue of multiple "deep thinking" labels being displayed on the frontend.

@ran411285752 commented on GitHub (Jan 17, 2026): > * separated reasoning_format Setting it to "separated" ,has not resolved the issue of multiple "deep thinking" labels being displayed on the frontend.
Author
Owner

@dosubot[bot] commented on GitHub (Jan 17, 2026):

Setting reasoning_format to "separated" doesn't resolve the multiple "deep thinking" labels because neither the backend nor the frontend filters out empty or redundant <think> tags or reasoning_content fields—so the frontend just renders every block it receives, even if it's empty or just newlines. This is a known regression in plugin versions V0.0.28–V0.0.30 with the qwen3-next-thinking-FP8 model and vLLM inference, and recent fixes for related issues may not be present in your version [source].

As a workaround, you can manually filter out empty <think> tags or reasoning_content fields on the frontend, or patch the backend/plugin to suppress empty reasoning content before it reaches the UI. Monitoring for plugin or core updates that address this regression is also recommended. If you need, I can provide example code for frontend filtering.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Open in Cursor Join Discord Share on X

@dosubot[bot] commented on GitHub (Jan 17, 2026): <!-- Answer --> Setting `reasoning_format` to "separated" doesn't resolve the multiple "deep thinking" labels because neither the backend nor the frontend filters out empty or redundant `<think>` tags or reasoning_content fields—so the frontend just renders every block it receives, even if it's empty or just newlines. This is a known regression in plugin versions V0.0.28–V0.0.30 with the qwen3-next-thinking-FP8 model and vLLM inference, and recent fixes for related issues may not be present in your version [[source](https://github.com/langgenius/dify-official-plugins/issues/849)]. As a workaround, you can manually filter out empty `<think>` tags or reasoning_content fields on the frontend, or patch the backend/plugin to suppress empty reasoning content before it reaches the UI. Monitoring for plugin or core updates that address this regression is also recommended. If you need, I can provide example code for frontend filtering. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/c441bc09-099f-417e-b3d7-2ce683f6d53f?feedback_type=other)</sup> [![Open in Cursor](https://dosu.dev/dosu-in-cursor.svg)](https://cursor.com/link/prompt?text=Setting%20%60reasoning_format%60%20to%20%22separated%22%20doesn%27t%20resolve%20the%20multiple%20%22deep%20thinking%22%20labels%20because%20neither%20the%20backend%20nor%20the%20frontend%20filters%20out%20empty%20or%20redundant%20%60%3Cthink%3E%60%20tags%20or%20reasoning_content%20fields%E2%80%94so%20the%20frontend%20just%20renders%20every%20block%20it%20receives%2C%20even%20if%20it%27s%20empty%20or%20just%20newlines.%20This%20is%20a%20known%20regression%20in%20plugin%20versions%20V0.0.28%E2%80%93V0.0.30%20with%20the%20qwen3-next-thinking-FP8%20model%20and%20vLLM%20inference%2C%20and%20recent%20fixes%20for%20related%20issues%20may%20not%20be%20present%20in%20your%20version%20%5B%5Bsource%5D%28https%3A//github.com/langgenius/dify-official-plugins/issues/849%29%5D.%0A%0AAs%20a%20workaround%2C%20you%20can%20manually%20filter%20out%20empty%20%60%3Cthink%3E%60%20tags%20or%20reasoning_content%20fields%20on%20the%20frontend%2C%20or%20patch%20the%20backend/plugin%20to%20suppress%20empty%20reasoning%20content%20before%20it%20reaches%20the%20UI.%20Monitoring%20for%20plugin%20or%20core%20updates%20that%20address%20this%20regression%20is%20also%20recommended.%20If%20you%20need%2C%20I%20can%20provide%20example%20code%20for%20frontend%20filtering.)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/2447)
Author
Owner

@utsumi-fj commented on GitHub (Jan 23, 2026):

This might be a duplicate of langgenius/dify-plugin-sdks#277.
@Mairuis Could you please review langgenius/dify-plugin-sdks#278 when you have time? Thank you!

@utsumi-fj commented on GitHub (Jan 23, 2026): This might be a duplicate of langgenius/dify-plugin-sdks#277. @Mairuis Could you please review langgenius/dify-plugin-sdks#278 when you have time? Thank you!
Author
Owner

@crazywoola commented on GitHub (Feb 3, 2026):

Hi @ran411285752, thanks for opening this issue.

Why this is being closed

Dify issue tracking requires English-only issue title and description for consistent collaboration.

Next steps

Please open a new issue in English and include clear details so maintainers can help efficiently.

Thanks for understanding and for your support.

@crazywoola commented on GitHub (Feb 3, 2026): Hi @ran411285752, thanks for opening this issue. ### Why this is being closed Dify issue tracking requires English-only issue title and description for consistent collaboration. ### Next steps Please open a new issue in English and include clear details so maintainers can help efficiently. Thanks for understanding and for your support.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#938