reasoning_content always empty; Azure OpenAI plugin: Responses API “reasoning summary” is not surfaced #790

Closed
opened 2026-02-16 10:20:30 -05:00 by yindo · 3 comments
Owner

Originally created by @jdzgd on GitHub (Nov 10, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.9.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Description
When using the Azure OpenAI provider with reasoning models (e.g., o4-mini) and the Responses API semantics, Azure returns a reasoning summary item in the response. However, in Dify the LLM node exposes no reasoning field (the reasoning_content variable stays empty), and the UI’s “Reasoning” split view shows nothing—so users cannot display the model’s reasoning summary even though Azure provides it. This seems related to #26646 where reasoning_content was not visible in outputs.

Why this matters
Azure/OpenAI reasoning models are designed to provide a reasoning summary (not the full chain-of-thought). Azure docs and the OpenAI Cookbook both document the type: "reasoning" item with a summary array when using the Responses API. Dify’s Azure OpenAI plugin currently doesn’t surface that summary to reasoning_content (or any other field), so the new “reasoning separation” UI cannot show anything even though the backend actually returns a summary.

https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/reasoning

✔️ Expected Behavior

Dify should surface the Responses API reasoning summary to the LLM node outputs, e.g.:
Map to existing reasoning_content, or
Provide a new reasoning_summary variable,
and render it in the “Reasoning” split of the UI (non-empty), similar to models that emit /reasoning_content.

Image

Actual Behavior

reasoning_content is missing or always empty for Azure OpenAI reasoning models.
The Reasoning pane shows nothing, despite Azure returning a type: "reasoning" item with summary via Responses API.

Originally created by @jdzgd on GitHub (Nov 10, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [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 [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.9.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce Description When using the Azure OpenAI provider with reasoning models (e.g., o4-mini) and the Responses API semantics, Azure returns a reasoning summary item in the response. However, in Dify the LLM node exposes no reasoning field (the reasoning_content variable stays empty), and the UI’s “Reasoning” split view shows nothing—so users cannot display the model’s reasoning summary even though Azure provides it. This seems related to #26646 where reasoning_content was not visible in outputs. Why this matters Azure/OpenAI reasoning models are designed to provide a reasoning summary (not the full chain-of-thought). Azure docs and the OpenAI Cookbook both document the type: "reasoning" item with a summary array when using the Responses API. Dify’s Azure OpenAI plugin currently doesn’t surface that summary to reasoning_content (or any other field), so the new “reasoning separation” UI cannot show anything even though the backend actually returns a summary. https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/reasoning ### ✔️ Expected Behavior Dify should surface the Responses API reasoning summary to the LLM node outputs, e.g.: Map to existing reasoning_content, or Provide a new reasoning_summary variable, and render it in the “Reasoning” split of the UI (non-empty), similar to models that emit <think>/reasoning_content. <img width="1001" height="1042" alt="Image" src="https://github.com/user-attachments/assets/374f1740-9759-40c5-a2ae-e7e0279b8f01" /> ### ❌ Actual Behavior reasoning_content is missing or always empty for Azure OpenAI reasoning models. The Reasoning pane shows nothing, despite Azure returning a type: "reasoning" item with summary via Responses API.
yindo added the bug label 2026-02-16 10:20:30 -05:00
yindo closed this issue 2026-02-16 10:20:30 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Nov 10, 2025):

The reason reasoning_content is always empty for Azure OpenAI reasoning models in Dify v1.9.1 is that the backend does not map Azure's Responses API reasoning summary (the type: "reasoning" item with a summary array) to reasoning_content or any other output field. This means the UI's "Reasoning" pane cannot display the summary, even though Azure provides it. This is a known issue and is similar to what happens with other reasoning models like qwen3:30b, where the backend only exposes the content field and discards the reasoning/thinking field, resulting in an empty reasoning pane in the UI (source).

Recent changes in the LLM node (see PR #27089) improved support for structured outputs in streaming mode, but there is still no logic in the Azure OpenAI provider to extract and surface the reasoning summary to reasoning_content. To fix this, the Azure OpenAI provider needs to be updated to parse the Responses API output, extract the reasoning summary, and assign it to reasoning_content (or a new variable), so the UI can render it properly.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Nov 10, 2025): <!-- Answer --> The reason reasoning_content is always empty for Azure OpenAI reasoning models in Dify v1.9.1 is that the backend does not map Azure's Responses API reasoning summary (the type: "reasoning" item with a summary array) to reasoning_content or any other output field. This means the UI's "Reasoning" pane cannot display the summary, even though Azure provides it. This is a known issue and is similar to what happens with other reasoning models like qwen3:30b, where the backend only exposes the content field and discards the reasoning/thinking field, resulting in an empty reasoning pane in the UI [(source)](https://github.com/langgenius/dify-official-plugins/issues/1898). Recent changes in the LLM node (see [PR #27089](https://github.com/langgenius/dify/pull/27089)) improved support for structured outputs in streaming mode, but there is still no logic in the Azure OpenAI provider to extract and surface the reasoning summary to reasoning_content. To fix this, the Azure OpenAI provider needs to be updated to parse the Responses API output, extract the reasoning summary, and assign it to reasoning_content (or a new variable), so the UI can render it properly. <!-- 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/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=other)</sup>&nbsp;&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/2033)
Author
Owner

@fengwk commented on GitHub (Nov 20, 2025):

The reason reasoning_content is always empty for Azure OpenAI reasoning models in Dify v1.9.1 is that the backend does not map Azure's Responses API reasoning summary (the type: "reasoning" item with a summary array) to reasoning_content or any other output field. This means the UI's "Reasoning" pane cannot display the summary, even though Azure provides it. This is a known issue and is similar to what happens with other reasoning models like qwen3:30b, where the backend only exposes the content field and discards the reasoning/thinking field, resulting in an empty reasoning pane in the UI (source).在Dify v1.9.1中,Azure OpenAI推理模型的reasoning_content始终为空,原因是后端没有将Azure的Responses API推理摘要(类型为“reasoning”且包含摘要数组的条目)映射到reasoning_content或任何其他输出字段。这意味着,即使Azure提供了摘要,UI的“推理”面板也无法显示该摘要。这是一个已知问题,与qwen3:30b等其他推理模型的情况类似,在这些模型中,后端只暴露content字段,而丢弃reasoning/thinking字段,导致UI中的推理面板为空(来源)

Recent changes in the LLM node (see PR #27089) improved support for structured outputs in streaming mode, but there is still no logic in the Azure OpenAI provider to extract and surface the reasoning summary to reasoning_content. To fix this, the Azure OpenAI provider needs to be updated to parse the Responses API output, extract the reasoning summary, and assign it to reasoning_content (or a new variable), so the UI can render it properly.LLM节点最近的变更(参见PR #27089)改进了对流式模式下结构化输出的支持,但Azure OpenAI提供程序中仍没有将推理摘要提取并呈现到reasoning_content的逻辑。为解决此问题,需要更新Azure OpenAI提供程序,以解析响应API的输出,提取推理摘要,并将其分配给reasoning_content(或一个新变量),这样用户界面才能正确显示该摘要。

To reply, just mention @dosu. 要回复,只需提及@dosu

How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other我做得怎么样? | 不相关 | 不正确 | 冗长 | 幻觉 | 报告 🐛 | 其他  Join Discord Share on X

I'm using the openai compatible port of gemini 2.5 pro and also found that reasoning_content is empty when I use the OpenAi API-compatible plugin.

I am using Dify version 1.9.2 and OpenAl-API-compatible version 0.0.25.

@fengwk commented on GitHub (Nov 20, 2025): > The reason reasoning_content is always empty for Azure OpenAI reasoning models in Dify v1.9.1 is that the backend does not map Azure's Responses API reasoning summary (the type: "reasoning" item with a summary array) to reasoning_content or any other output field. This means the UI's "Reasoning" pane cannot display the summary, even though Azure provides it. This is a known issue and is similar to what happens with other reasoning models like qwen3:30b, where the backend only exposes the content field and discards the reasoning/thinking field, resulting in an empty reasoning pane in the UI [(source)](https://github.com/langgenius/dify-official-plugins/issues/1898).在Dify v1.9.1中,Azure OpenAI推理模型的reasoning_content始终为空,原因是后端没有将Azure的Responses API推理摘要(类型为“reasoning”且包含摘要数组的条目)映射到reasoning_content或任何其他输出字段。这意味着,即使Azure提供了摘要,UI的“推理”面板也无法显示该摘要。这是一个已知问题,与qwen3:30b等其他推理模型的情况类似,在这些模型中,后端只暴露content字段,而丢弃reasoning/thinking字段,导致UI中的推理面板为空[(来源)](https://github.com/langgenius/dify-official-plugins/issues/1898)。 > > Recent changes in the LLM node (see [PR #27089](https://github.com/langgenius/dify/pull/27089)) improved support for structured outputs in streaming mode, but there is still no logic in the Azure OpenAI provider to extract and surface the reasoning summary to reasoning_content. To fix this, the Azure OpenAI provider needs to be updated to parse the Responses API output, extract the reasoning summary, and assign it to reasoning_content (or a new variable), so the UI can render it properly.LLM节点最近的变更(参见[PR #27089](https://github.com/langgenius/dify/pull/27089))改进了对流式模式下结构化输出的支持,但Azure OpenAI提供程序中仍没有将推理摘要提取并呈现到reasoning_content的逻辑。为解决此问题,需要更新Azure OpenAI提供程序,以解析响应API的输出,提取推理摘要,并将其分配给reasoning_content(或一个新变量),这样用户界面才能正确显示该摘要。 > > _To reply, just mention [@dosu](https://go.dosu.dev/dosubot). 要回复,只需提及[@dosu](https://go.dosu.dev/dosubot)。_ > > How did I do? [Good](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=other)我做得怎么样?[好](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=great_response) | [不相关](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=irrelevant_answer) | [不正确](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=incorrect_sources) | [冗长](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=too_verbose) | [幻觉](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=hallucination) | [报告 🐛](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=bug_report) | [其他](https://app.dosu.dev/response-feedback/5967aec5-9f0b-48df-9673-dc149fd6a47a?feedback_type=other)  [![Join Discord](https://camo.githubusercontent.com/7d2066700925db1e370d956834f9ea0e5bc92cecbe84963fbd2a363e45091b4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6a6f696e2d3538363546323f6c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465266c6162656c3d)](https://go.dosu.dev/discord-bot) [![Share on X](https://camo.githubusercontent.com/a8bd7f3fcf3f5e3bd124eee9ae50ae2ac17b40971726665ac2121d48f9aee155/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f582d73686172652d626c61636b)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/2033) I'm using the openai compatible port of gemini 2.5 pro and also found that reasoning_content is empty when I use the OpenAi API-compatible plugin. I am using Dify version 1.9.2 and OpenAl-API-compatible version 0.0.25.
Author
Owner

@dosubot[bot] commented on GitHub (Dec 7, 2025):

Hi, @jdzgd. I'm Dosu, and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale.

Issue Summary:

  • You reported that in Dify v1.9.1 self-hosted Docker setup, the Azure OpenAI provider does not display the reasoning summary from the Responses API, leaving the reasoning_content empty and the UI's "Reasoning" pane blank.
  • The backend currently does not map Azure's reasoning summary to reasoning_content, which is a known issue also affecting other models like qwen3:30b.
  • Recent improvements in LLM node support structured outputs better (PR #27089), but the Azure provider still lacks the necessary logic to extract and show the reasoning summary.
  • Another user confirmed the issue persists in Dify v1.9.2 with OpenAI-compatible plugins, emphasizing the need for provider updates to properly render reasoning summaries in the UI.

Next Steps:

  • Please let me know if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here to keep the discussion open.
  • If I do not hear back within 5 days, I will automatically close this issue.

Thank you for your understanding and contribution!

@dosubot[bot] commented on GitHub (Dec 7, 2025): Hi, @jdzgd. I'm [Dosu](https://dosu.dev), and I'm helping the dify-official-plugins team manage their backlog and am marking this issue as stale. **Issue Summary:** - You reported that in Dify v1.9.1 self-hosted Docker setup, the Azure OpenAI provider does not display the reasoning summary from the Responses API, leaving the reasoning_content empty and the UI's "Reasoning" pane blank. - The backend currently does not map Azure's reasoning summary to reasoning_content, which is a known issue also affecting other models like qwen3:30b. - Recent improvements in LLM node support structured outputs better (PR #27089), but the Azure provider still lacks the necessary logic to extract and show the reasoning summary. - Another user confirmed the issue persists in Dify v1.9.2 with OpenAI-compatible plugins, emphasizing the need for provider updates to properly render reasoning summaries in the UI. **Next Steps:** - Please let me know if this issue is still relevant with the latest version of the dify-official-plugins repository by commenting here to keep the discussion open. - If I do not hear back within 5 days, I will automatically close this issue. Thank you for your understanding and contribution!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#790