mirror of
https://github.com/langgenius/dify-official-plugins.git
synced 2026-07-21 17:45:23 -04:00
The React strategy in Dify Agent doesn’t support streaming or showing reasoning/tool actions. The Function Calling strategy streams but returns before tools finish, only outputting the tool call content and not the tool’s final results before ending. #775
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bianningtao on GitHub (Nov 4, 2025).
Self Checks
Dify version
Dify CE 1.9.1、Dify EE 3.4.0
Plugin version
0.0.24、0.0.25
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
The React strategy of the Dify Agent strategy plugin does not support streaming output, nor can it output the thought process or the tool's action process. In addition, the Function Calling strategy supports streaming output, but it does not wait for the tool's call result to return; it simply replies with the tool's content quickly, and does not output the content generated by the tool before ending the entire process.
✔️ Error log
No response
@dosubot[bot] commented on GitHub (Nov 4, 2025):
These are known limitations in Dify Agent strategies. The React (ReAct) strategy can't stream output or show reasoning/tool actions because it needs to parse the model's full response before displaying anything, so incremental streaming isn't possible in this mode reference. The Function Calling strategy does stream, but it doesn't wait for tool calls to finish—it outputs the tool call content immediately and ends before the tool's final results are available reference.
Streaming output for agent nodes depends on the model/plugin advertising the
stream-tool-callfeature. If your model or plugin (like Ollama) doesn't declare this in its YAML config, streaming won't work—even if the underlying model supports it elsewhere reference. There is a planned feature to add streaming support for tool calls in a future Dify version, but it will only be available in Function Calling mode, not React mode reference.Workarounds are limited: you can try restructuring workflows to avoid parallel branches, disabling exception handling, or using models/plugins that explicitly support
stream-tool-call(such as Tongyi/Qwen-max in Function Calling mode) reference. Modifying plugin YAML files to addstream-tool-callcan sometimes help, but success depends on backend and agent support and may not work for all plugins reference.There are open pull requests and ongoing development to improve streaming output for workflows and tool calls, but full support is not yet released as of Dify v1.9.1 reference.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

@bianningtao commented on GitHub (Nov 4, 2025):
@dosu.
However, the current Function Calling strategy does not wait for the call result of the MCP tool to be returned, but directly ends the process, especially when a time-consuming tool is configured.
In addition, the model I use is qwen3-235b-a3b-instruct-2507, which supports streaming output.
@dosubot[bot] commented on GitHub (Nov 4, 2025):
This is a known limitation in Dify's Function Calling strategy: it streams tool call content but does not wait for the final result of MCP tools before ending, especially with long-running operations reference. The agent aggregates and returns only the initial tool call output, not the completed result, because the workflow engine and plugin architecture are designed to return the final summary, not intermediate streaming chunks—even if the underlying MCP or plugin supports streaming reference.
There is ongoing development to add streaming support for tool calls via the
stream-tool-callfeature, which will be available in Function Calling mode in future Dify releases reference. For now, workarounds are limited: you can try using models/plugins that explicitly supportstream-tool-call(like Tongyi/Qwen-max), restructure workflows to avoid parallel branches, or redesign long-running logic as workflow tools instead of MCP tools reference.Timeouts for MCP tool calls are often hardcoded (e.g., 10 minutes by default) and must be overridden in the
.envfile and Docker containers to allow longer tool runs reference. There is no UI or API configuration for this in some versions; only code-level changes to MCPTool, MCPClient, or session classes allow timeout adjustments reference.Streaming output for MCP tool calls is planned but not yet fully supported as of Dify v1.9.1. You can track progress in the related issues and pull requests reference.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
